Skip to content

Coverage CI multi-threaded tests #98

@qualand

Description

@qualand

Coverage CI does not work with any multi-threaded tests. Currently, these tests are turned off for coverage CI.

Original error:

geninfo: ERROR: Unexpected negative count '-1744992' for /home/runner/work/SolTrace/SolTrace/coretrace/simulation_runner/native_runner/treemesh.cpp:256.
	Perhaps you need to compile with '-fprofile-update=atomic
	(use "geninfo --ignore-errors negative ..." to bypass this error)

Adding -fprofile-update=atomic to the cmake CXX_FLAGS

        -DCMAKE_CXX_FLAGS="--coverage -fprofile-update=atomic"

Results in a mismatch error

geninfo: ERROR: mismatched end line for _ZN54HeliostatFieldSimulation_singleFacet_SlantFocused_Test8TestBodyEv at /home/runner/work/SolTrace/SolTrace/google-tests/unit-tests/simulation_data/cst-templates/heliostat_field_test.cpp:875: 875 -> 887
	(use "geninfo --ignore-errors mismatch ..." to bypass this error)

Adding --ignore-errors mismatch results in multiple warnings about mismatch and unexecuted block and eventually errors out with negative count.

geninfo: WARNING: ('mismatch') mismatched end line for _ZN48SolarPositionCalculator_CrossValidationTest_TestD2Ev at /home/runner/work/SolTrace/SolTrace/google-tests/unit-tests/simulation_data/sun_position_test.cpp:306: 444 -> 306
	(use "geninfo --ignore-errors mismatch,mismatch ..." to suppress this warning)
geninfo: WARNING: /usr/include/c++/13/bits/alloc_traits.h:482: unexecuted block on non-branch line with non-zero hit count.  Use "geninfo --rc geninfo_unexecuted_blocks=1 to set count to zero.
	(use "geninfo --ignore-errors gcov,gcov ..." to suppress this warning)
geninfo: ERROR: Unexpected negative count '-17103' for /usr/include/c++/13/bits/stl_vector.h:1292.
	Perhaps you need to compile with '-fprofile-update=atomic
	(use "geninfo --ignore-errors negative ..." to bypass this error)

It would be nice for coverage to handle multi-thread tests.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions