summaryrefslogtreecommitdiff
path: root/tests/build/depfile_package_cython.srctree
blob: 5a6674a3df8630922a41d65d10e1a9d382bf7c37 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
"""
PYTHON -c 'import os; os.makedirs("builddir/pkg/sub")'
CYTHON -M pkg/test.pyx -o builddir/pkg/test.c
CYTHON --depfile pkg/sub/test.pyx -o builddir/pkg/sub/test.c
PYTHON check.py
"""

######## check.py ########

import os.path

def pkgpath(*args):
    return os.path.join('pkg', *args)

with open(os.path.join("builddir", "pkg", "test.c.dep"), "r") as f:
    contents = f.read().replace("\\\n", " ").replace("\n", " ")

assert sorted(contents.split()) == sorted([os.path.join('builddir', 'pkg', 'test.c:'), pkgpath('sub', 'incl.pxi'), pkgpath('test.pxd'), pkgpath('test.pyx')]), contents


with open(os.path.join("builddir", "pkg", "sub", "test.c.dep"), "r") as f:
    contents = f.read().replace("\\\n", " ").replace("\n", " ")

contents = [os.path.relpath(entry, '.')
            if os.path.isabs(entry) else entry for entry in contents.split()]
assert sorted(contents) == sorted([os.path.join('builddir', 'pkg', 'sub', 'test.c:'), pkgpath('sub', 'incl.pxi'), pkgpath('sub', 'test.pyx')]), contents  # last is really one level up

######## pkg/__init__.py ########


######## pkg/test.pyx ########

TEST = "pkg.test"

include "sub/incl.pxi"

cdef object get_str():
   return TEST


######## pkg/test.pxd ########

cdef object get_str()


######## pkg/sub/__init__.py ########


######## pkg/sub/test.pyx ########
# cython: language_level=3

from ..test cimport get_str

include 'incl.pxi'

TEST = 'pkg.sub.test'


######## pkg/sub/incl.pxi ########

pass