|
18 | 18 |
|
19 | 19 | __script_dir = os.path.dirname(os.path.abspath(__file__)) |
20 | 20 |
|
21 | | -__ERR_A = ('%s:10:14: error: Division by zero. [zerodiv]\n' |
| 21 | +__ERR_A = ('%s:14:14: error: Division by zero. [zerodiv]\n' |
22 | 22 | ' return x / 0;\n' |
23 | 23 | ' ^\n') % os.path.join('props-dirs', 'ProjA', 'a.cpp') |
24 | | -__ERR_B = ('%s:10:14: error: Division by zero. [zerodiv]\n' |
| 24 | +__ERR_B = ('%s:14:14: error: Division by zero. [zerodiv]\n' |
25 | 25 | ' return y / 0;\n' |
26 | 26 | ' ^\n') % os.path.join('props-dirs', 'ProjB', 'b.cpp') |
27 | 27 |
|
@@ -65,14 +65,29 @@ def test_props_dirs_defines_and_standard(): |
65 | 65 | with open(dump_b, 'rt') as f: |
66 | 66 | dump_b_content = f.read() |
67 | 67 |
|
68 | | - # ProjA imports shared/shared.props (which itself imports common/common.props), and |
69 | | - # also sets its own PROJA_DEFINE - all three must be present, most specific first |
70 | | - assert 'cfg="_WIN32=1;_WIN64=1;PROJA_DEFINE=1;SHARED_DEFINE=1;COMMON_DEFINE=1;_MSC_VER=1900"' in dump_a_content |
| 68 | + # ProjA imports shared/shared.props (-> common/common.props) and shared/shared2.props |
| 69 | + # (-> common/common2.props), and sets its own PROJA_DEFINE. |
| 70 | + # v143 toolset -> _MSC_VER=1930/_MSC_FULL_VER=193000000; common.props sets stdcpp17 |
| 71 | + # -> _MSVC_LANG=201703L. |
| 72 | + assert '_WIN32=1' in dump_a_content |
| 73 | + assert '_WIN64=1' in dump_a_content |
| 74 | + assert '_M_X64=100' in dump_a_content |
| 75 | + assert '_MSC_VER=1930' in dump_a_content |
| 76 | + assert '_MSC_FULL_VER=193000000' in dump_a_content |
| 77 | + assert '_MSVC_LANG=201703L' in dump_a_content |
| 78 | + assert 'PROJA_DEFINE=1' in dump_a_content |
| 79 | + assert 'SHARED_DEFINE=1' in dump_a_content |
| 80 | + assert 'COMMON_DEFINE=1' in dump_a_content |
71 | 81 | assert '<cpp version="c++17"/>' in dump_a_content |
72 | 82 |
|
73 | | - # ProjB imports common/common.props directly - it must see COMMON_DEFINE, but neither |
74 | | - # PROJA_DEFINE nor SHARED_DEFINE, which only ever applied to ProjA |
75 | | - assert 'cfg="_WIN32=1;_WIN64=1;COMMON_DEFINE=1;_MSC_VER=1900"' in dump_b_content |
| 83 | + # ProjB imports common/common.props and common/common2.props directly - it must see |
| 84 | + # COMMON2_DEFINE and COMMON_DEFINE, but none of ProjA's or shared's defines. |
| 85 | + assert '_MSC_VER=1930' in dump_b_content |
| 86 | + assert '_MSC_FULL_VER=193000000' in dump_b_content |
| 87 | + assert '_MSVC_LANG=201703L' in dump_b_content |
| 88 | + assert 'COMMON2_DEFINE=1' in dump_b_content |
| 89 | + assert 'COMMON_DEFINE=1' in dump_b_content |
76 | 90 | assert '<cpp version="c++17"/>' in dump_b_content |
77 | 91 | assert 'PROJA_DEFINE' not in dump_b_content |
78 | 92 | assert 'SHARED_DEFINE' not in dump_b_content |
| 93 | + assert 'SHARED2_DEFINE' not in dump_b_content |
0 commit comments