summaryrefslogtreecommitdiff
path: root/testing/embedding/add1.py
blob: 6f89ae9213565ffa2b51ad3855e08b61b941dd18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import cffi

ffi = cffi.FFI()

ffi.embedding_api("""
    int add1(int, int);
""")

ffi.embedding_init_code(r"""
    import sys, time
    sys.stdout.write("preparing")
    for i in range(3):
        sys.stdout.flush()
        # Windows: sometimes time.sleep() doesn't sleep at all.
        # This appears to occur on recent versions of python only.
        t_end = time.time() + 0.19
        while time.time() < t_end:
            time.sleep(0.2)
        sys.stdout.write(".")
    sys.stdout.write("\n")

    from _add1_cffi import ffi

    int(ord("A"))    # check that built-ins are there

    @ffi.def_extern()
    def add1(x, y):
        sys.stdout.write("adding %d and %d\n" % (x, y))
        sys.stdout.flush()
        return x + y
""")

ffi.set_source("_add1_cffi", """
""")

fn = ffi.compile(verbose=True)
print('FILENAME: %s' % (fn,))