diff options
author | Brad King <brad.king@kitware.com> | 2022-02-11 14:14:08 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-02-11 14:14:15 (GMT) |
commit | 551b0af1e525ba4568f7787287cf4fc793ad233f (patch) | |
tree | 36221faf6706b937ef7b24e7e4c109d505783139 /Tests | |
parent | e9e8b48576fe339a59fcb9431c6793631bffa952 (diff) | |
parent | 8e1e97cccab4da8907cf9403e2c13514a4c285d3 (diff) | |
download | CMake-551b0af1e525ba4568f7787287cf4fc793ad233f.zip CMake-551b0af1e525ba4568f7787287cf4fc793ad233f.tar.gz CMake-551b0af1e525ba4568f7787287cf4fc793ad233f.tar.bz2 |
Merge topic 'trace-line-range'
8e1e97ccca Trace: include `line_end` field in json-v1 format
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6968
Diffstat (limited to 'Tests')
-rwxr-xr-x | Tests/RunCMake/CommandLine/trace-json-v1-check.py | 37 | ||||
-rw-r--r-- | Tests/RunCMake/CommandLine/trace-json-v1.cmake | 6 |
2 files changed, 32 insertions, 11 deletions
diff --git a/Tests/RunCMake/CommandLine/trace-json-v1-check.py b/Tests/RunCMake/CommandLine/trace-json-v1-check.py index 995cfad..2ef1495 100755 --- a/Tests/RunCMake/CommandLine/trace-json-v1-check.py +++ b/Tests/RunCMake/CommandLine/trace-json-v1-check.py @@ -30,6 +30,8 @@ required_traces = [ { 'args': ['STATUS', 'JSON-V1 str', 'spaces'], 'cmd': 'message', + 'line': 1, + 'line_end': 5 }, { 'args': ['ASDF', 'fff', 'sss', ' SPACES !!! '], @@ -57,6 +59,24 @@ required_traces = [ } ] +def assert_fields_look_good(line): + expected_fields = {'args', 'cmd', 'file', 'frame', 'global_frame','line', 'time'} + if "line_end" in line: + assert isinstance(line['line_end'], int) + assert line['line'] != line['line_end'] + expected_fields.add("line_end") + + assert set(line.keys()) == expected_fields + + assert isinstance(line['args'], list) + assert isinstance(line['cmd'], unicode) + assert isinstance(line['file'], unicode) + assert isinstance(line['frame'], int) + assert isinstance(line['global_frame'], int) + assert isinstance(line['line'], int) + assert isinstance(line['time'], float) + + with open(trace_file, 'r') as fp: # Check for version (must be the first document) vers = json.loads(fp.readline()) @@ -67,18 +87,15 @@ with open(trace_file, 'r') as fp: for i in fp.readlines(): line = json.loads(i) - assert sorted(line.keys()) == ['args', 'cmd', 'file', 'frame', 'global_frame','line', 'time'] - assert isinstance(line['args'], list) - assert isinstance(line['cmd'], unicode) - assert isinstance(line['file'], unicode) - assert isinstance(line['frame'], int) - assert isinstance(line['global_frame'], int) - assert isinstance(line['line'], int) - assert isinstance(line['time'], float) - + assert_fields_look_good(line) for j in required_traces: # Compare the subset of required keys with line - if {k: line[k] for k in j} == j: + subset = { + k: line[k] + for k in j + if k in line + } + if subset == j: required_traces.remove(j) assert not required_traces diff --git a/Tests/RunCMake/CommandLine/trace-json-v1.cmake b/Tests/RunCMake/CommandLine/trace-json-v1.cmake index 871746d..4ed6160 100644 --- a/Tests/RunCMake/CommandLine/trace-json-v1.cmake +++ b/Tests/RunCMake/CommandLine/trace-json-v1.cmake @@ -1,4 +1,8 @@ -message(STATUS "JSON-V1 str" "spaces") +message( + STATUS + "JSON-V1 str" + "spaces" + ) set(ASDF fff sss " SPACES !!! ") set(FOO 42) set(BAR " space in string!") |