Skip to content
  • Evangelos Ribeiro Tzaras's avatar
    gcovr: Exclude sip-provider.c and dummy-provider.c · d3a93bd6
    Evangelos Ribeiro Tzaras authored
    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
    d3a93bd6