-
Notifications
You must be signed in to change notification settings - Fork 101
Expand file tree
/
Copy pathintegration_test.py
More file actions
131 lines (87 loc) · 4.28 KB
/
integration_test.py
File metadata and controls
131 lines (87 loc) · 4.28 KB
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
## test with python -m pytest integration_test.py
import os
from testutils import simplecpp, format_include_path_arg, format_include
def __test_relative_header_create_header(dir, with_pragma_once=True):
header_file = os.path.join(dir, 'test.h')
with open(header_file, 'wt') as f:
f.write(f"""
{"#pragma once" if with_pragma_once else ""}
#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED
#else
#error header_was_already_included
#endif
""")
return header_file, "error: #error header_was_already_included"
def __test_relative_header_create_source(dir, include1, include2, is_include1_sys=False, is_include2_sys=False):
src_file = os.path.join(dir, 'test.c')
with open(src_file, 'wt') as f:
f.write(f"""
#undef TEST_H_INCLUDED
#include {format_include(include1, is_include1_sys)}
#include {format_include(include2, is_include2_sys)}
""")
return src_file
def test_relative_header_0_rel(tmpdir):
_, double_include_error = __test_relative_header_create_header(tmpdir, with_pragma_once=False)
test_file = __test_relative_header_create_source(tmpdir, "test.h", "test.h")
args = [test_file]
_, _, stderr = simplecpp(args, cwd=tmpdir)
assert double_include_error in stderr
def test_relative_header_0_sys(tmpdir):
_, double_include_error = __test_relative_header_create_header(tmpdir, with_pragma_once=False)
test_file = __test_relative_header_create_source(tmpdir, "test.h", "test.h", is_include1_sys=True, is_include2_sys=True)
args = [format_include_path_arg(tmpdir), test_file]
_, _, stderr = simplecpp(args)
assert double_include_error in stderr
def test_relative_header_1_rel(tmpdir):
__test_relative_header_create_header(tmpdir)
test_file = __test_relative_header_create_source(tmpdir, "test.h", "test.h")
args = [test_file]
_, _, stderr = simplecpp(args, cwd=tmpdir)
assert stderr == ''
def test_relative_header_1_sys(tmpdir):
__test_relative_header_create_header(tmpdir)
test_file = __test_relative_header_create_source(tmpdir, "test.h", "test.h", is_include1_sys=True, is_include2_sys=True)
args = [format_include_path_arg(tmpdir), test_file]
_, _, stderr = simplecpp(args)
assert stderr == ''
## TODO: the following tests should pass after applying simplecpp#362
def test_relative_header_2(tmpdir):
header_file, _ = __test_relative_header_create_header(tmpdir)
test_file = __test_relative_header_create_source(tmpdir, "test.h", header_file)
args = [test_file]
_, _, stderr = simplecpp(args, cwd=tmpdir)
assert stderr == ''
def test_relative_header_3(tmpdir):
test_subdir = os.path.join(tmpdir, "test_subdir")
os.mkdir(test_subdir)
header_file, _ = __test_relative_header_create_header(test_subdir)
test_file = __test_relative_header_create_source(tmpdir, "test_subdir/test.h", header_file)
args = [test_file]
_, _, stderr = simplecpp(args, cwd=tmpdir)
assert stderr == ''
def test_relative_header_3_inv(tmpdir):
test_subdir = os.path.join(tmpdir, "test_subdir")
os.mkdir(test_subdir)
header_file, _ = __test_relative_header_create_header(test_subdir)
test_file = __test_relative_header_create_source(tmpdir, header_file, "test_subdir/test.h")
args = [test_file]
_, _, stderr = simplecpp(args, cwd=tmpdir)
assert stderr == ''
def test_relative_header_4(tmpdir):
test_subdir = os.path.join(tmpdir, "test_subdir")
os.mkdir(test_subdir)
header_file, _ = __test_relative_header_create_header(test_subdir)
test_file = __test_relative_header_create_source(tmpdir, header_file, "test.h", is_include2_sys=True)
args = [format_include_path_arg(test_subdir), test_file]
_, _, stderr = simplecpp(args, cwd=tmpdir)
assert stderr == ''
def test_relative_header_5(tmpdir):
test_subdir = os.path.join(tmpdir, "test_subdir")
os.mkdir(test_subdir)
__test_relative_header_create_header(test_subdir)
test_file = __test_relative_header_create_source(tmpdir, "test.h", "test_subdir/test.h", is_include1_sys=True)
args = [format_include_path_arg(test_subdir), test_file]
_, _, stderr = simplecpp(args, cwd=tmpdir)
assert stderr == ''