gcovr > 5.1 (which is included in the latest Debian CI image) fails an
assertion because two different functions with the same name end up on
different lines because they are #ifdef'ed
The offending code is this:
G_DEFINE_TYPE_WITH_CODE
(CallsDummyProvider, calls_dummy_provider, CALLS_TYPE_PROVIDER,
G_IMPLEMENT_INTERFACE (CALLS_TYPE_MESSAGE_SOURCE,
calls_dummy_provider_message_source_interface_init))
G_DEFINE_DYNAMIC_TYPE_EXTENDED
(CallsDummyProvider, calls_dummy_provider, CALLS_TYPE_PROVIDER, 0,
G_IMPLEMENT_INTERFACE_DYNAMIC (CALLS_TYPE_MESSAGE_SOURCE,
calls_dummy_provider_message_source_interface_init))
There is already a gcovr issue here:
https://github.com/gcovr/gcovr/issues/586
The failed assertion looks like this:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/gcovr/workers.py", line 78, in worker
work(*args, **kwargs)
File "/usr/lib/python3/dist-packages/gcovr/gcov.py", line 337, in process_datafile
done = run_gcov_and_process_files(
File "/usr/lib/python3/dist-packages/gcovr/gcov.py", line 514, in run_gcov_and_process_files
process_gcov_data(fname, covdata, abs_filename, options)
File "/usr/lib/python3/dist-packages/gcovr/gcov.py", line 165, in process_gcov_data
insert_file_coverage(covdata, coverage)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 159, in insert_file_coverage
return _insert_coverage_item(target, file.filename, file, merge_file, options)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 135, in _insert_coverage_item
merged_item = merge_item(target_dict[key], new_item, options)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 178, in merge_file
left.functions = _merge_dict(
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 99, in _merge_dict
_insert_coverage_item(left, key, right_item, merge_item, options)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 135, in _insert_coverage_item
merged_item = merge_item(target_dict[key], new_item, options)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 268, in merge_function
assert left.lineno == right.lineno
AssertionError