Skip to content

Fix issue with overlapping basic blocks - #513

Open
rlalik wants to merge 1 commit into
linux-test-project:masterfrom
rlalik:fix_start_line_issue
Open

Fix issue with overlapping basic blocks#513
rlalik wants to merge 1 commit into
linux-test-project:masterfrom
rlalik:fix_start_line_issue

Conversation

@rlalik

@rlalik rlalik commented Jul 21, 2026

Copy link
Copy Markdown

Following discussion #468 and my problem with inconsistent data, I would like propose this approach to the problem.

Starting from the source of the problem:

lcov: ERROR: lcov: ERROR: (inconsistent) mismatched end line for _ZN32TestGeriSmx_UplinkFrameType_Test8TestBodyEv at /home/rafal/cbm/software/src/sts/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:5: 5 -> 19 while capturing from /home/rafal/cbm/software/src/sts/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors inconsistent ..." to bypass this error)

what happens is that, gtest macro TEST() (and perhaps TEST_F() - didn't test it) creates a class object, with constructor, destructor and *_TestBody() function, which all occupy the same line in the source code, see for example this report from gcov:

       3*:    5:TEST(TestGeriSmx, UplinkFrameType)
        -:    6:{
       1*:    7:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x000000), geri::smx::UPLINK_FRAME_TYPE::dummy_hit);
       1*:    8:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x00f800), geri::smx::UPLINK_FRAME_TYPE::hit);
        -:    9:
       1*:   10:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0xc00000), geri::smx::UPLINK_FRAME_TYPE::ts_msb);
        -:   11:
       1*:   12:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0xa00000), geri::smx::UPLINK_FRAME_TYPE::rdata_ack);
        -:   13:
       1*:   14:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x880000), geri::smx::UPLINK_FRAME_TYPE::ack);
       1*:   15:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x900000), geri::smx::UPLINK_FRAME_TYPE::nack);
       1*:   16:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x980000), geri::smx::UPLINK_FRAME_TYPE::alert_ack);
        -:   17:
       2*:   18:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x800000), geri::smx::UPLINK_FRAME_TYPE::seq_error);
        -:   19:}
------------------
_ZN32TestGeriSmx_UplinkFrameType_TestC2Ev:
    #####:    5:TEST(TestGeriSmx, UplinkFrameType)
------------------
_ZN32TestGeriSmx_UplinkFrameType_TestD0Ev:
        1:    5:TEST(TestGeriSmx, UplinkFrameType)
------------------
_ZN32TestGeriSmx_UplinkFrameType_TestD2Ev:
    #####:    5:TEST(TestGeriSmx, UplinkFrameType)
------------------
_ZN32TestGeriSmx_UplinkFrameType_Test8TestBodyEv:
        1:    5:TEST(TestGeriSmx, UplinkFrameType)
        -:    6:{
       1*:    7:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x000000), geri::smx::UPLINK_FRAME_TYPE::dummy_hit);
       1*:    8:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x00f800), geri::smx::UPLINK_FRAME_TYPE::hit);
        -:    9:
       1*:   10:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0xc00000), geri::smx::UPLINK_FRAME_TYPE::ts_msb);
        -:   11:
       1*:   12:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0xa00000), geri::smx::UPLINK_FRAME_TYPE::rdata_ack);
        -:   13:
       1*:   14:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x880000), geri::smx::UPLINK_FRAME_TYPE::ack);
       1*:   15:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x900000), geri::smx::UPLINK_FRAME_TYPE::nack);
       1*:   16:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x980000), geri::smx::UPLINK_FRAME_TYPE::alert_ack);
        -:   17:
       2*:   18:    ASSERT_EQ(geri::smx::get_uplink_frame_type(0x800000), geri::smx::UPLINK_FRAME_TYPE::seq_error);
        -:   19:}

In my solutions, I introduced a new error ERROR_MUTIPLE_BASIC_BLOCKS which is set when the second and the next function is created at the same start line. The error is of a type of ignorable_warning thus is not fatal, and should be not.

Here is the output for the same case like above:

lcov: WARNING: (multiple) another block for _ZN32TestGeriSmx_UplinkFrameType_Test8TestBodyEv overlaps with _ZN32TestGeriSmx_UplinkFrameType_TestC2Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:5 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN32TestGeriSmx_UplinkFrameType_TestD0Ev overlaps with _ZN32TestGeriSmx_UplinkFrameType_TestC2Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:5 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN32TestGeriSmx_UplinkFrameType_TestD2Ev overlaps with _ZN32TestGeriSmx_UplinkFrameType_TestC2Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:5 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN35TestGeriSmx_HitDecodingEmptyTS_Test8TestBodyEv overlaps with _ZN35TestGeriSmx_HitDecodingEmptyTS_TestC2Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:21 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN35TestGeriSmx_HitDecodingEmptyTS_TestD2Ev overlaps with _ZN35TestGeriSmx_HitDecodingEmptyTS_TestC2Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:21 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN35TestGeriSmx_HitDecodingEmptyTS_TestD0Ev overlaps with _ZN35TestGeriSmx_HitDecodingEmptyTS_TestC2Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:21 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN35TestGeriSmx_HitDecodingValidTS_Test8TestBodyEv overlaps with _ZN35TestGeriSmx_HitDecodingValidTS_TestD0Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:36 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN35TestGeriSmx_HitDecodingValidTS_TestC2Ev overlaps with _ZN35TestGeriSmx_HitDecodingValidTS_TestD0Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:36 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN36TestGeriSmx_HitDecodingMismatch_Test8TestBodyEv overlaps with _ZN36TestGeriSmx_HitDecodingMismatch_TestD0Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:51 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN36TestGeriSmx_HitDecodingMismatch_TestC2Ev overlaps with _ZN36TestGeriSmx_HitDecodingMismatch_TestD0Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:51 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN30TestGeriSmx_TsMsbDecoding_Test8TestBodyEv overlaps with _ZN30TestGeriSmx_TsMsbDecoding_TestC2Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:63 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
lcov: WARNING: (multiple) another block for _ZN28TestGeri_GbtFrameStruct_Test8TestBodyEv overlaps with _ZN28TestGeri_GbtFrameStruct_TestC2Ev at /tmp/geri-smx-decoder/test/source/geri-smx-decoder_test.cpp:73 while capturing from /tmp/geri-smx-decoder/build/coverage/test/CMakeFiles/geri-smx-decoder_test.dir/source/geri-smx-decoder_test.cpp.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)

@henry2cox

Copy link
Copy Markdown
Collaborator

There are a few issues with this PR:

  • need a regression test or tests, to verify that the behaviour is correct/is as expected.
  • need to distinguish this case: legitimate case of two or more different functions at the same location from the similar case: two or more aliases of a single function at the same location.
    I did not check the logs, but I think that the regression fails we see are down to this issue.

I'm also curious what you see with your actual testcase, if you run with LLVM rather than gcc - if you see similar location issues, and if you see similar issues with both the 'gcov' and 'profdata' paths.

Thanks for your contribution!

Henry

@rlalik

rlalik commented Jul 22, 2026

Copy link
Copy Markdown
Author

Thanks for feedback, I'll look into that.

About the tests, I realized that many of the tests were failing already after I made fork. For example:

For example first on the list genhtml/simple/script.sh test faisl with (taken from test artifact):

lcov: ERROR: (package) package Memory::Process is required to control memory consumption during parallel operations: lcov: ERROR: Can't locate Memory/Process.pm in @INC (you may need to install the Memory::Process module) (@INC entries checked: /home/runner/work/lcov/lcov/bin/../lib /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.38.2 /usr/local/share/perl/5.38.2 /usr/lib/x86_64-linux-gnu/perl5/5.38 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.38 /usr/share/perl/5.38 /usr/local/lib/site_perl)
    	(use "lcov --ignore-errors package ..." to bypass this error)

This is not related to my changes. Do you think you can fix the tests before I go with mine?

@rlalik
rlalik force-pushed the fix_start_line_issue branch from bf634cd to 50401f4 Compare July 22, 2026 13:39
@henry2cox

Copy link
Copy Markdown
Collaborator

From the actions tab - we see that the regressions all seem to pass before this change - so the situation might be a bit more complicated. What happens when you run them locally?
There should also be fallback such that - if memory::process is not available (and the platform is not windows): we try another way. Have not looked at this code recently - might be misremembering how it worked.

@rlalik

rlalik commented Jul 22, 2026

Copy link
Copy Markdown
Author

I updated the fork and rebased the code, now, locally, only lcov/errs/errs.sh test fails, the same like in the actions.

@rlalik

rlalik commented Jul 23, 2026

Copy link
Copy Markdown
Author

I also created some simple test to test the modification. It works with gcc, g++, clang, clang++. The commit is here: master...rlalik:lcov:multiple_basic_blocks_tests

Here is the test result:

$ for cc in gcc g++ clang clang++; do echo -n "====== "; echo $cc; CC=$cc ./basic_blocks.sh; ./basic_blocks.sh --clean ; done
====== gcc
Capturing coverage data from test1
geninfo cmd: '/home/rafal/projects/lcov/bin/geninfo test1 --toolname lcov --call-from-lcov --output-filename test1.info'
Found gcov version: 16.1.1
Using intermediate gcov format
Recording 'internal' directories:
        /home/rafal/projects/lcov/tests/lcov/basic_blocks/rundir/test1
        test1
Writing temporary data to /tmp/geninfo_datCE5L
Scanning test1 for .gcda files ...
Found 1 data files in test1
using: chunkSize: 1, nchunks:1, intervalLength:0
lcov: WARNING: (multiple) another block for main overlaps with a at /home/rafal/projects/lcov/tests/lcov/basic_blocks/inputs/test1.c:1 while capturing from test1/test-test1.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
Finished processing 1 GCDA file
Apply filtering..
Finished filter file processing
Finished .info-file creation
Summary coverage rate:
  source files: 1
  lines.......: 100.0% (2 of 2 lines)
  functions...: 100.0% (3 of 3 functions)
Message summary:
  1 warning message:
    multiple: 1
Capturing coverage data from test2
geninfo cmd: '/home/rafal/projects/lcov/bin/geninfo test2 --toolname lcov --call-from-lcov --output-filename test2.info'
Found gcov version: 16.1.1
Using intermediate gcov format
Recording 'internal' directories:
        /home/rafal/projects/lcov/tests/lcov/basic_blocks/rundir/test2
        test2
Writing temporary data to /tmp/geninfo_datxsPh
Scanning test2 for .gcda files ...
Found 1 data files in test2
using: chunkSize: 1, nchunks:1, intervalLength:0
Finished processing 1 GCDA file
Apply filtering..
Finished filter file processing
Finished .info-file creation
Summary coverage rate:
  source files: 1
  lines.......: 100.0% (3 of 3 lines)
  functions...: 100.0% (3 of 3 functions)
Message summary:
  no messages were reported
Tests passed
====== g++
Capturing coverage data from test1
geninfo cmd: '/home/rafal/projects/lcov/bin/geninfo test1 --toolname lcov --call-from-lcov --output-filename test1.info'
Found gcov version: 16.1.1
Using intermediate gcov format
Recording 'internal' directories:
        /home/rafal/projects/lcov/tests/lcov/basic_blocks/rundir/test1
        test1
Writing temporary data to /tmp/geninfo_datg7fd
Scanning test1 for .gcda files ...
Found 1 data files in test1
using: chunkSize: 1, nchunks:1, intervalLength:0
lcov: WARNING: (multiple) another block for main overlaps with _Z1ai at /home/rafal/projects/lcov/tests/lcov/basic_blocks/inputs/test1.c:1 while capturing from test1/test-test1.gcda
        (use "lcov --ignore-errors multiple,multiple ..." to suppress this warning)
Finished processing 1 GCDA file
Apply filtering..
Finished filter file processing
Finished .info-file creation
Summary coverage rate:
  source files: 1
  lines.......: 100.0% (2 of 2 lines)
  functions...: 100.0% (3 of 3 functions)
Message summary:
  1 warning message:
    multiple: 1
Capturing coverage data from test2
geninfo cmd: '/home/rafal/projects/lcov/bin/geninfo test2 --toolname lcov --call-from-lcov --output-filename test2.info'
Found gcov version: 16.1.1
Using intermediate gcov format
Recording 'internal' directories:
        /home/rafal/projects/lcov/tests/lcov/basic_blocks/rundir/test2
        test2
Writing temporary data to /tmp/geninfo_datJYIE
Scanning test2 for .gcda files ...
Found 1 data files in test2
using: chunkSize: 1, nchunks:1, intervalLength:0
Finished processing 1 GCDA file
Apply filtering..
Finished filter file processing
Finished .info-file creation
Summary coverage rate:
  source files: 1
  lines.......: 100.0% (3 of 3 lines)
  functions...: 100.0% (3 of 3 functions)
Message summary:
  no messages were reported
Tests passed
====== clang
Capturing coverage data from test1
geninfo cmd: '/home/rafal/projects/lcov/bin/geninfo test1 --toolname lcov --call-from-lcov --output-filename test1.info --gcov-tool llvm-cov --gcov-tool gcov'
Found LLVM gcov version 22.1.8, which emulates gcov version 4.2.0
Using intermediate gcov format
Recording 'internal' directories:
        /home/rafal/projects/lcov/tests/lcov/basic_blocks/rundir/test1
        test1
Writing temporary data to /tmp/geninfo_datY2hc
Scanning test1 for .gcda files ...
Found 1 data files in test1
using: chunkSize: 1, nchunks:1, intervalLength:0
Finished processing 1 GCDA file
Apply filtering..
lcov: WARNING: (unsupported) Function begin/end line exclusions not supported with this version of GCC/gcov; require gcc/9 or newer: attempting to derive function end lines - see lcovrc man entry for 'derive_function_end_line'.
        (use "lcov --ignore-errors unsupported,unsupported ..." to suppress this warning)
Finished filter file processing
Finished .info-file creation
Summary coverage rate:
  source files: 1
  lines.......: 100.0% (2 of 2 lines)
  functions...: 100.0% (3 of 3 functions)
Message summary:
  1 warning message:
    unsupported: 1
Capturing coverage data from test2
geninfo cmd: '/home/rafal/projects/lcov/bin/geninfo test2 --toolname lcov --call-from-lcov --output-filename test2.info --gcov-tool llvm-cov --gcov-tool gcov'
Found LLVM gcov version 22.1.8, which emulates gcov version 4.2.0
Using intermediate gcov format
Recording 'internal' directories:
        /home/rafal/projects/lcov/tests/lcov/basic_blocks/rundir/test2
        test2
Writing temporary data to /tmp/geninfo_datyxBh
Scanning test2 for .gcda files ...
Found 1 data files in test2
using: chunkSize: 1, nchunks:1, intervalLength:0
Finished processing 1 GCDA file
Apply filtering..
lcov: WARNING: (unsupported) Function begin/end line exclusions not supported with this version of GCC/gcov; require gcc/9 or newer: attempting to derive function end lines - see lcovrc man entry for 'derive_function_end_line'.
        (use "lcov --ignore-errors unsupported,unsupported ..." to suppress this warning)
Finished filter file processing
Finished .info-file creation
Summary coverage rate:
  source files: 1
  lines.......: 100.0% (3 of 3 lines)
  functions...: 100.0% (3 of 3 functions)
Message summary:
  1 warning message:
    unsupported: 1
Tests passed
====== clang++
clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
Capturing coverage data from test1
geninfo cmd: '/home/rafal/projects/lcov/bin/geninfo test1 --toolname lcov --call-from-lcov --output-filename test1.info --gcov-tool llvm-cov --gcov-tool gcov'
Found LLVM gcov version 22.1.8, which emulates gcov version 4.2.0
Using intermediate gcov format
Recording 'internal' directories:
        /home/rafal/projects/lcov/tests/lcov/basic_blocks/rundir/test1
        test1
Writing temporary data to /tmp/geninfo_datsfie
Scanning test1 for .gcda files ...
Found 1 data files in test1
using: chunkSize: 1, nchunks:1, intervalLength:0
Finished processing 1 GCDA file
Apply filtering..
lcov: WARNING: (unsupported) Function begin/end line exclusions not supported with this version of GCC/gcov; require gcc/9 or newer: attempting to derive function end lines - see lcovrc man entry for 'derive_function_end_line'.
        (use "lcov --ignore-errors unsupported,unsupported ..." to suppress this warning)
Finished filter file processing
Finished .info-file creation
Summary coverage rate:
  source files: 1
  lines.......: 100.0% (2 of 2 lines)
  functions...: 100.0% (3 of 3 functions)
Message summary:
  1 warning message:
    unsupported: 1
Capturing coverage data from test2
geninfo cmd: '/home/rafal/projects/lcov/bin/geninfo test2 --toolname lcov --call-from-lcov --output-filename test2.info --gcov-tool llvm-cov --gcov-tool gcov'
Found LLVM gcov version 22.1.8, which emulates gcov version 4.2.0
Using intermediate gcov format
Recording 'internal' directories:
        /home/rafal/projects/lcov/tests/lcov/basic_blocks/rundir/test2
        test2
Writing temporary data to /tmp/geninfo_datqsF4
Scanning test2 for .gcda files ...
Found 1 data files in test2
using: chunkSize: 1, nchunks:1, intervalLength:0
Finished processing 1 GCDA file
Apply filtering..
lcov: WARNING: (unsupported) Function begin/end line exclusions not supported with this version of GCC/gcov; require gcc/9 or newer: attempting to derive function end lines - see lcovrc man entry for 'derive_function_end_line'.
        (use "lcov --ignore-errors unsupported,unsupported ..." to suppress this warning)
Finished filter file processing
Finished .info-file creation
Summary coverage rate:
  source files: 1
  lines.......: 100.0% (3 of 3 lines)
  functions...: 100.0% (3 of 3 functions)
Message summary:
  1 warning message:
    unsupported: 1
Tests passed

If you wish, I could add this commit to this PR.

BTW, I also run simialr compiler-dependent test on the main test suite with following results.

$ for cc in gcc g++ clang clang++; do echo -e "================\nCC=$cc\n"; make CC=$cc; make clean; done
================
CC=gcc

Starting tests (serial)
genhtml/simple/part1.sh ............ [pass] (time 13.0s, mem 92.1MB)
genhtml/simple/part2.sh ............ [pass] (time 15.1s, mem 92.1MB)
genhtml/simple/part3.sh ............ [pass] (time 8.8s, mem 92.1MB)
genhtml/simple/part4.sh ............ [pass] (time 16.2s, mem 92.2MB)
genhtml/errs/msgtest1.sh ........... [pass] (time 8.3s, mem 92.2MB)
genhtml/errs/msgtest2.sh ........... [pass] (time 10.4s, mem 92.2MB)
genhtml/errs/msgtest3.sh ........... [pass] (time 8.2s, mem 92.2MB)
genhtml/errs/msgtest4.sh ........... [pass] (time 14.5s, mem 92.2MB)
...ml/insensitive/insensitive.sh ... [pass] (time 6.0s, mem 92.2MB)
genhtml/synthesize/synthesize.sh ... [pass] (time 5.7s, mem 92.2MB)
genhtml/relative/relative.sh ....... [pass] (time 0.5s, mem 92.2MB)
genhtml/lambda/lambda.sh ........... [pass] (time 3.1s, mem 136.7MB)
genhtml/exception/exception.sh ..... [pass] (time 5.0s, mem 136.7MB)
genhtml/filter/filter.pl ........... [pass] (time 0.3s, mem 136.7MB)
genhtml/function/function.sh ....... [pass] (time 12.3s, mem 136.7MB)
genhtml/full.sh .................... [pass] (time 0.9s, mem 136.7MB)
genhtml/zero.sh .................... [pass] (time 0.7s, mem 136.7MB)
genhtml/demangle.sh ................ [pass] (time 1.7s, mem 136.7MB)
scripts/gitblame_test.sh ........... [pass] (time 1.1s, mem 136.7MB)
scripts/gitdiff_test.sh ............ [pass] (time 1.3s, mem 136.7MB)
scripts/gitversion_test.sh ......... [pass] (time 1.4s, mem 136.7MB)
scripts/batchgitversion_test.sh .... [pass] (time 2.0s, mem 136.7MB)
scripts/p4annotate_test.sh ......... [pass] (time 1.9s, mem 136.7MB)
scripts/p4udiff_test.sh ............ [pass] (time 5.2s, mem 136.7MB)
scripts/p4version_test.sh .......... [pass] (time 2.1s, mem 136.7MB)
lcov/add/prune.sh .................. [pass] (time 2.2s, mem 136.7MB)
lcov/add/track.sh .................. [pass] (time 0.4s, mem 136.7MB)
lcov/misc/help.sh .................. [pass] (time 0.4s, mem 136.7MB)
lcov/misc/version.sh ............... [pass] (time 0.4s, mem 136.7MB)
lcov/summary/zero.sh ............... [pass] (time 0.5s, mem 136.7MB)
lcov/summary/full.sh ............... [pass] (time 0.5s, mem 136.7MB)
lcov/extract/extract1.sh ........... [pass] (time 10.1s, mem 136.7MB)
lcov/extract/extract2.sh ........... [pass] (time 23.8s, mem 136.7MB)
lcov/demangle/demangle.sh .......... [pass] (time 7.3s, mem 136.7MB)
lcov/exception/exception.sh ........ [pass] (time 5.7s, mem 136.7MB)
lcov/gcov-tool/path.sh ............. [pass] (time 7.1s, mem 136.7MB)
lcov/branch/branch.sh .............. [pass] (time 3.6s, mem 136.7MB)
lcov/merge/merge.sh ................ [pass] (time 2.9s, mem 136.7MB)
lcov/format/format.sh .............. [pass] (time 2.2s, mem 136.7MB)
lcov/errs/errs.sh .................. [fail] (time 2.2s, mem 136.7MB)
lcov/multiple/multiple.sh .......... [pass] (time 1.8s, mem 136.7MB)
lcov/follow/follow.sh .............. [pass] (time 1.9s, mem 136.7MB)
lcov/initializer/initializer.sh .... [pass] (time 1.7s, mem 136.7MB)
lcov/lambda/lambda.sh .............. [pass] (time 0.5s, mem 136.7MB)
lcov/mcdc/mcdc.sh .................. [pass] (time 9.3s, mem 136.7MB)
lcov/coverage/coverage.sh .......... [pass] (time 4.5s, mem 136.7MB)
lcov/coverage/geninfo.sh ........... [pass] (time 5.6s, mem 136.7MB)
.../basic_blocks/basic_blocks.sh ... [pass] (time 1.5s, mem 136.7MB)
llvm2lcov/llvm2lcov.sh ............. [pass] (time 3.2s, mem 136.7MB)
py2lcov/py2lcov.sh ................. [pass] (time 6.1s, mem 136.7MB)
perl2lcov/perltest1.sh ............. [pass] (time 12.1s, mem 136.7MB)
xml2lcov/xml2lcov.sh ............... [pass] (time 2.0s, mem 136.7MB)
52 tests executed, 51 passed, 1 failed, 0 skipped
Result log stored in /home/rafal/projects/lcov/tests/test.log
make: *** [common.mak:121: check] Błąd 1
  CLEAN   lcov/tests
================
CC=g++

Creating coverage files (2 tests, 5 source files)
  Source tree ......... done (950 lines, 50 functions, 3428 branches)
  Full coverage ....... done
  Target coverage ..... done
  Partial coverage .... done
  Zero coverage ....... done
Starting tests (serial)
genhtml/simple/part1.sh ............ [pass] (time 16.9s, mem 91.9MB)
genhtml/simple/part2.sh ............ [pass] (time 17.7s, mem 92.0MB)
genhtml/simple/part3.sh ............ [pass] (time 12.4s, mem 92.0MB)
genhtml/simple/part4.sh ............ [pass] (time 30.2s, mem 92.2MB)
genhtml/errs/msgtest1.sh ........... [pass] (time 8.3s, mem 92.2MB)
genhtml/errs/msgtest2.sh ........... [pass] (time 11.1s, mem 92.2MB)
genhtml/errs/msgtest3.sh ........... [pass] (time 9.4s, mem 92.2MB)
genhtml/errs/msgtest4.sh ........... [pass] (time 11.5s, mem 92.2MB)
...ml/insensitive/insensitive.sh ... [pass] (time 4.6s, mem 92.2MB)
genhtml/synthesize/synthesize.sh ... [pass] (time 4.2s, mem 92.2MB)
genhtml/relative/relative.sh ....... [pass] (time 0.3s, mem 92.2MB)
genhtml/lambda/lambda.sh ........... [pass] (time 2.1s, mem 136.6MB)
genhtml/exception/exception.sh ..... [pass] (time 3.7s, mem 136.6MB)
genhtml/filter/filter.pl ........... [pass] (time 0.2s, mem 136.6MB)
genhtml/function/function.sh ....... [pass] (time 8.5s, mem 136.6MB)
genhtml/full.sh .................... [pass] (time 0.5s, mem 136.6MB)
genhtml/zero.sh .................... [pass] (time 0.6s, mem 136.6MB)
genhtml/demangle.sh ................ [pass] (time 1.2s, mem 136.6MB)
scripts/gitblame_test.sh ........... [pass] (time 0.8s, mem 136.6MB)
scripts/gitdiff_test.sh ............ [pass] (time 0.9s, mem 136.6MB)
scripts/gitversion_test.sh ......... [pass] (time 1.0s, mem 136.6MB)
scripts/batchgitversion_test.sh .... [pass] (time 1.4s, mem 136.6MB)
scripts/p4annotate_test.sh ......... [pass] (time 1.3s, mem 136.6MB)
scripts/p4udiff_test.sh ............ [pass] (time 3.6s, mem 136.6MB)
scripts/p4version_test.sh .......... [pass] (time 1.5s, mem 136.6MB)
lcov/add/prune.sh .................. [pass] (time 1.4s, mem 136.6MB)
lcov/add/track.sh .................. [pass] (time 0.3s, mem 136.6MB)
lcov/misc/help.sh .................. [pass] (time 0.2s, mem 136.6MB)
lcov/misc/version.sh ............... [pass] (time 0.2s, mem 136.6MB)
lcov/summary/zero.sh ............... [pass] (time 0.3s, mem 136.6MB)
lcov/summary/full.sh ............... [pass] (time 0.3s, mem 136.6MB)
lcov/extract/extract1.sh ........... [pass] (time 7.0s, mem 136.6MB)
lcov/extract/extract2.sh ........... [pass] (time 15.9s, mem 136.6MB)
lcov/demangle/demangle.sh .......... [pass] (time 5.0s, mem 136.6MB)
lcov/exception/exception.sh ........ [pass] (time 4.1s, mem 136.6MB)
lcov/gcov-tool/path.sh ............. [pass] (time 4.9s, mem 136.6MB)
lcov/branch/branch.sh .............. [pass] (time 2.6s, mem 136.6MB)
lcov/merge/merge.sh ................ [pass] (time 2.1s, mem 136.6MB)
lcov/format/format.sh .............. [pass] (time 1.6s, mem 136.6MB)
lcov/errs/errs.sh .................. [fail] (time 1.6s, mem 136.6MB)
lcov/multiple/multiple.sh .......... [pass] (time 1.3s, mem 136.6MB)
lcov/follow/follow.sh .............. [pass] (time 1.4s, mem 136.6MB)
lcov/initializer/initializer.sh .... [pass] (time 1.2s, mem 136.6MB)
lcov/lambda/lambda.sh .............. [pass] (time 0.3s, mem 136.6MB)
lcov/mcdc/mcdc.sh .................. [pass] (time 7.0s, mem 136.6MB)
lcov/coverage/coverage.sh .......... [pass] (time 3.5s, mem 136.6MB)
lcov/coverage/geninfo.sh ........... [pass] (time 4.3s, mem 136.6MB)
.../basic_blocks/basic_blocks.sh ... [pass] (time 1.1s, mem 136.6MB)
llvm2lcov/llvm2lcov.sh ............. [pass] (time 2.2s, mem 136.6MB)
py2lcov/py2lcov.sh ................. [pass] (time 4.3s, mem 136.6MB)
perl2lcov/perltest1.sh ............. [pass] (time 7.8s, mem 136.6MB)
xml2lcov/xml2lcov.sh ............... [pass] (time 1.2s, mem 136.6MB)
52 tests executed, 51 passed, 1 failed, 0 skipped
Result log stored in /home/rafal/projects/lcov/tests/test.log
make: *** [common.mak:121: check] Błąd 1
  CLEAN   lcov/tests
================
CC=clang

Creating coverage files (2 tests, 5 source files)
  Source tree ......... done (950 lines, 50 functions, 3428 branches)
  Full coverage ....... done
  Target coverage ..... done
  Partial coverage .... done
  Zero coverage ....... done
Starting tests (serial)
genhtml/simple/part1.sh ............ [pass] (time 12.0s, mem 92.0MB)
genhtml/simple/part2.sh ............ [pass] (time 11.5s, mem 92.1MB)
genhtml/simple/part3.sh ............ [pass] (time 8.8s, mem 92.1MB)
genhtml/simple/part4.sh ............ [pass] (time 16.8s, mem 92.2MB)
genhtml/errs/msgtest1.sh ........... [pass] (time 8.3s, mem 92.2MB)
genhtml/errs/msgtest2.sh ........... [pass] (time 10.5s, mem 92.2MB)
genhtml/errs/msgtest3.sh ........... [pass] (time 8.5s, mem 92.2MB)
genhtml/errs/msgtest4.sh ........... [pass] (time 11.4s, mem 92.2MB)
...ml/insensitive/insensitive.sh ... [pass] (time 4.7s, mem 92.2MB)
genhtml/synthesize/synthesize.sh ... [pass] (time 4.2s, mem 92.2MB)
genhtml/relative/relative.sh ....... [pass] (time 0.3s, mem 92.2MB)
genhtml/lambda/lambda.sh ........... [pass] (time 2.1s, mem 136.4MB)
genhtml/exception/exception.sh ..... [pass] (time 3.6s, mem 136.4MB)
genhtml/filter/filter.pl ........... [pass] (time 0.2s, mem 136.4MB)
genhtml/function/function.sh ....... [pass] (time 8.5s, mem 136.4MB)
genhtml/full.sh .................... [pass] (time 0.5s, mem 136.4MB)
genhtml/zero.sh .................... [pass] (time 0.5s, mem 136.4MB)
genhtml/demangle.sh ................ [pass] (time 1.2s, mem 136.4MB)
scripts/gitblame_test.sh ........... [pass] (time 0.8s, mem 136.4MB)
scripts/gitdiff_test.sh ............ [pass] (time 1.0s, mem 136.4MB)
scripts/gitversion_test.sh ......... [pass] (time 1.0s, mem 136.4MB)
scripts/batchgitversion_test.sh .... [pass] (time 1.4s, mem 136.4MB)
scripts/p4annotate_test.sh ......... [pass] (time 1.3s, mem 136.4MB)
scripts/p4udiff_test.sh ............ [pass] (time 3.8s, mem 136.4MB)
scripts/p4version_test.sh .......... [pass] (time 1.7s, mem 136.4MB)
lcov/add/prune.sh .................. [pass] (time 1.6s, mem 136.4MB)
lcov/add/track.sh .................. [pass] (time 0.3s, mem 136.4MB)
lcov/misc/help.sh .................. [pass] (time 0.2s, mem 136.4MB)
lcov/misc/version.sh ............... [pass] (time 0.2s, mem 136.4MB)
lcov/summary/zero.sh ............... [pass] (time 0.3s, mem 136.4MB)
lcov/summary/full.sh ............... [pass] (time 0.5s, mem 136.4MB)
lcov/extract/extract1.sh ........... [fail] (time 0.8s, mem 136.4MB)
lcov/extract/extract2.sh ........... [fail] (time 0.5s, mem 136.4MB)
lcov/demangle/demangle.sh .......... [pass] (time 5.0s, mem 136.4MB)
lcov/exception/exception.sh ........ [pass] (time 4.1s, mem 136.4MB)
lcov/gcov-tool/path.sh ............. [fail] (time 0.5s, mem 136.4MB)
lcov/branch/branch.sh .............. [pass] (time 2.6s, mem 136.4MB)
lcov/merge/merge.sh ................ [pass] (time 2.1s, mem 136.4MB)
lcov/format/format.sh .............. [pass] (time 1.7s, mem 136.4MB)
lcov/errs/errs.sh .................. [fail] (time 1.7s, mem 136.4MB)
lcov/multiple/multiple.sh .......... [fail] (time 0.6s, mem 136.4MB)
lcov/follow/follow.sh .............. [fail] (time 0.6s, mem 136.4MB)
lcov/initializer/initializer.sh .... [pass] (time 1.2s, mem 136.4MB)
lcov/lambda/lambda.sh .............. [pass] (time 0.4s, mem 136.4MB)
lcov/mcdc/mcdc.sh .................. [pass] (time 7.1s, mem 136.4MB)
lcov/coverage/coverage.sh .......... [fail] (time 2.7s, mem 136.4MB)
lcov/coverage/geninfo.sh ........... [fail] (time 1.8s, mem 136.4MB)
.../basic_blocks/basic_blocks.sh ... [pass] (time 1.3s, mem 136.4MB)
llvm2lcov/llvm2lcov.sh ............. [pass] (time 2.2s, mem 136.4MB)
py2lcov/py2lcov.sh ................. [pass] (time 4.4s, mem 136.4MB)
perl2lcov/perltest1.sh ............. [pass] (time 7.9s, mem 136.4MB)
xml2lcov/xml2lcov.sh ............... [pass] (time 1.3s, mem 136.4MB)
52 tests executed, 44 passed, 8 failed, 0 skipped
Result log stored in /home/rafal/projects/lcov/tests/test.log
make: *** [common.mak:121: check] Błąd 1
  CLEAN   lcov/tests
================
CC=clang++

Creating coverage files (2 tests, 5 source files)
  Source tree ......... done (950 lines, 50 functions, 3428 branches)
  Full coverage ....... done
  Target coverage ..... done
  Partial coverage .... done
  Zero coverage ....... done
Starting tests (serial)
genhtml/simple/part1.sh ............ [pass] (time 12.2s, mem 91.9MB)
genhtml/simple/part2.sh ............ [pass] (time 11.2s, mem 92.0MB)
genhtml/simple/part3.sh ............ [pass] (time 8.3s, mem 92.1MB)
genhtml/simple/part4.sh ............ [pass] (time 15.9s, mem 92.1MB)
genhtml/errs/msgtest1.sh ........... [pass] (time 8.0s, mem 92.1MB)
genhtml/errs/msgtest2.sh ........... [pass] (time 10.7s, mem 92.1MB)
genhtml/errs/msgtest3.sh ........... [pass] (time 8.3s, mem 92.1MB)
genhtml/errs/msgtest4.sh ........... [pass] (time 12.3s, mem 92.1MB)
...ml/insensitive/insensitive.sh ... [pass] (time 7.3s, mem 92.1MB)
genhtml/synthesize/synthesize.sh ... [pass] (time 6.8s, mem 92.1MB)
genhtml/relative/relative.sh ....... [pass] (time 0.5s, mem 92.1MB)
genhtml/lambda/lambda.sh ........... [pass] (time 3.0s, mem 136.1MB)
genhtml/exception/exception.sh ..... [pass] (time 5.4s, mem 136.1MB)
genhtml/filter/filter.pl ........... [pass] (time 0.3s, mem 136.1MB)
genhtml/function/function.sh ....... [pass] (time 13.7s, mem 136.1MB)
genhtml/full.sh .................... [pass] (time 0.7s, mem 136.1MB)
genhtml/zero.sh .................... [pass] (time 0.8s, mem 136.1MB)
genhtml/demangle.sh ................ [pass] (time 1.8s, mem 136.1MB)
scripts/gitblame_test.sh ........... [pass] (time 1.3s, mem 136.1MB)
scripts/gitdiff_test.sh ............ [pass] (time 1.7s, mem 136.1MB)
scripts/gitversion_test.sh ......... [pass] (time 1.5s, mem 136.1MB)
scripts/batchgitversion_test.sh .... [pass] (time 2.2s, mem 136.1MB)
scripts/p4annotate_test.sh ......... [pass] (time 1.9s, mem 136.1MB)
scripts/p4udiff_test.sh ............ [pass] (time 5.3s, mem 136.1MB)
scripts/p4version_test.sh .......... [pass] (time 2.2s, mem 136.1MB)
lcov/add/prune.sh .................. [pass] (time 2.2s, mem 136.1MB)
lcov/add/track.sh .................. [pass] (time 0.3s, mem 136.1MB)
lcov/misc/help.sh .................. [pass] (time 0.3s, mem 136.1MB)
lcov/misc/version.sh ............... [pass] (time 0.4s, mem 136.1MB)
lcov/summary/zero.sh ............... [pass] (time 0.4s, mem 136.1MB)
lcov/summary/full.sh ............... [pass] (time 0.5s, mem 136.1MB)
lcov/extract/extract1.sh ........... [fail] (time 1.0s, mem 136.1MB)
lcov/extract/extract2.sh ........... [fail] (time 0.6s, mem 136.1MB)
lcov/demangle/demangle.sh .......... [pass] (time 6.8s, mem 136.1MB)
lcov/exception/exception.sh ........ [pass] (time 5.3s, mem 136.1MB)
lcov/gcov-tool/path.sh ............. [fail] (time 0.6s, mem 136.1MB)
lcov/branch/branch.sh .............. [pass] (time 3.4s, mem 136.1MB)
lcov/merge/merge.sh ................ [pass] (time 2.8s, mem 136.1MB)
lcov/format/format.sh .............. [pass] (time 2.0s, mem 136.1MB)
lcov/errs/errs.sh .................. [fail] (time 2.1s, mem 136.1MB)
lcov/multiple/multiple.sh .......... [fail] (time 0.6s, mem 136.1MB)
lcov/follow/follow.sh .............. [fail] (time 0.8s, mem 136.1MB)
lcov/initializer/initializer.sh .... [pass] (time 1.7s, mem 136.1MB)
lcov/lambda/lambda.sh .............. [pass] (time 0.5s, mem 136.1MB)
lcov/mcdc/mcdc.sh .................. [pass] (time 9.9s, mem 136.1MB)
lcov/coverage/coverage.sh .......... [fail] (time 3.3s, mem 136.1MB)
lcov/coverage/geninfo.sh ........... [fail] (time 2.6s, mem 136.1MB)
.../basic_blocks/basic_blocks.sh ... [pass] (time 1.9s, mem 136.1MB)
llvm2lcov/llvm2lcov.sh ............. [pass] (time 3.4s, mem 136.1MB)
py2lcov/py2lcov.sh ................. [pass] (time 6.0s, mem 136.1MB)
perl2lcov/perltest1.sh ............. [pass] (time 14.2s, mem 136.1MB)
xml2lcov/xml2lcov.sh ............... [pass] (time 1.9s, mem 136.1MB)
52 tests executed, 44 passed, 8 failed, 0 skipped
Result log stored in /home/rafal/projects/lcov/tests/test.log
make: *** [common.mak:121: check] Błąd 1
  CLEAN   lcov/tests

Perhaps on could work on having the tests also working for LLVM? As some of the tests are completely compiler-independent, the test suite could be separated into compiler-dependent and compiler-independent, and the latter one run once, and the former one for separate compilers? I could open separate issue for this if you like.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants