Skip to content

Commit af84e45

Browse files
author
Tal Hadad
committed
add integration tests
1 parent fff0025 commit af84e45

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

integration_test.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ def __test_relative_header_create_header(dir, with_pragma_once=True):
1414
#else
1515
#error header_was_already_included
1616
#endif
17+
const int dummy = 1;
1718
""")
1819
return header_file, "error: #error header_was_already_included"
1920

@@ -48,33 +49,43 @@ def test_relative_header_1(tmpdir, with_pragma_once, is_sys):
4849
assert double_include_error in stderr
4950

5051
@pytest.mark.parametrize("inv", (False, True))
51-
def test_relative_header_2(tmpdir, inv):
52+
@pytest.mark.parametrize("source_relative", (False, True))
53+
def test_relative_header_2(tmpdir, inv, source_relative):
5254
header_file, _ = __test_relative_header_create_header(tmpdir)
5355

5456
test_file = __test_relative_header_create_source(tmpdir, "test.h", header_file, inv=inv)
5557

56-
args = [test_file]
58+
args = ["test.c" if source_relative else test_file]
5759

58-
_, _, stderr = simplecpp(args, cwd=tmpdir)
60+
_, stdout, stderr = simplecpp(args, cwd=tmpdir)
5961
assert stderr == ''
62+
if source_relative and not inv:
63+
assert '#line 8 "test.h"' in stdout
64+
else:
65+
assert f'#line 8 "{tmpdir}/test.h"' in stdout
6066

6167
@pytest.mark.parametrize("is_sys", (False, True))
6268
@pytest.mark.parametrize("inv", (False, True))
63-
def test_relative_header_3(tmpdir, is_sys, inv):
69+
@pytest.mark.parametrize("source_relative", (False, True))
70+
def test_relative_header_3(tmpdir, is_sys, inv, source_relative):
6471
test_subdir = os.path.join(tmpdir, "test_subdir")
6572
os.mkdir(test_subdir)
6673
header_file, _ = __test_relative_header_create_header(test_subdir)
6774

6875
test_file = __test_relative_header_create_source(tmpdir, "test_subdir/test.h", header_file, is_include1_sys=is_sys, inv=inv)
6976

70-
args = [test_file]
77+
args = ["test.c" if source_relative else test_file]
7178

72-
_, _, stderr = simplecpp(args, cwd=tmpdir)
79+
_, stdout, stderr = simplecpp(args, cwd=tmpdir)
7380

7481
if is_sys:
7582
assert "missing header: Header not found" in stderr
7683
else:
7784
assert stderr == ''
85+
if source_relative and not inv:
86+
assert '#line 8 "test_subdir/test.h"' in stdout
87+
else:
88+
assert f'#line 8 "{test_subdir}/test.h"' in stdout
7889

7990
@pytest.mark.parametrize("use_short_path", (False, True))
8091
@pytest.mark.parametrize("is_sys", (False, True))

0 commit comments

Comments
 (0)