Skip to content

Commit 8c5bb7d

Browse files
committed
CA-387574: Fix build time coverage gathering
Directing the profile-dir to an out of tree location results in gcc 12 creating paths with the separators of the absolute source path converted to # characters. When subsequently using gcov or lcov to analyse the coverage this produces errors and no coverage data is produced. As the collect-test-results.sh pulls these files back into the build tree and published them from there it isn't necessary to write them elsewhere and this avoids the decorated paths being created. Signed-off-by: Mark Syms <[email protected]>
1 parent 6296684 commit 8c5bb7d

File tree

13 files changed

+14
-21
lines changed

13 files changed

+14
-21
lines changed

cbt/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
AM_CFLAGS = -Wall
22
AM_CFLAGS += -Werror
3-
AM_CFLAGS += $(if $(GCOV),-fprofile-dir=/tmp/coverage/blktap/cbt -fprofile-arcs -ftest-coverage)
3+
AM_CFLAGS += $(if $(GCOV),-fprofile-arcs -ftest-coverage)
44

55
AM_CPPFLAGS = -I$(top_srcdir)/include
66

collect-test-results.sh

+2-9
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,9 @@ fi
1111

1212
mkdir -p $OUTPUT_DIR
1313

14-
find . -name \*.gcda -exec rm {} \;
15-
16-
lcov --capture --initial --directory . --rc lcov_branch_coverage=1 --no-external --output-file $OUTPUT_DIR/coverage_base.info
17-
18-
(cd /tmp/coverage/blktap; tar cf - `find . -name \*.gcda`) | tar xf -
19-
20-
lcov --capture --directory . --rc lcov_branch_coverage=1 --no-external --output-file $OUTPUT_DIR/coverage_test.info
21-
lcov --rc lcov_branch_coverage=1 --add-tracefile $OUTPUT_DIR/coverage_base.info --add-tracefile $OUTPUT_DIR/coverage_test.info --output-file $OUTPUT_DIR/coverage.info
14+
lcov --capture --directory . --rc lcov_branch_coverage=1 --no-external --output-file $OUTPUT_DIR/coverage.info
2215
genhtml $OUTPUT_DIR/coverage.info --rc lcov_branch_coverage=1 --output-directory $OUTPUT_DIR/coverage-html
2316
tar cf $OUTPUT_DIR/test-results.tar `find mockatests -name \*.log`
2417
tar cf $OUTPUT_DIR/gcov-files.tar `find . -name \*.gcda -or -name \*.gcno`
2518

26-
lcov -l $OUTPUT_DIR/coverage.info
19+
lcov --rc lcov_branch_coverage=1 -l $OUTPUT_DIR/coverage.info

control/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
AM_CFLAGS = -Wall
33
AM_CFLAGS += -Werror
4-
AM_CFLAGS += $(if $(GCOV),-fprofile-dir=/tmp/coverage/blktap/control -fprofile-arcs -ftest-coverage)
4+
AM_CFLAGS += $(if $(GCOV),-fprofile-arcs -ftest-coverage)
55
AM_CFLAGS += -g
66

77
AM_CPPFLAGS = -D_GNU_SOURCE

cpumond/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
AM_CFLAGS = -Wall
33
AM_CFLAGS += -Werror
4-
AM_CFLAGS += $(if $(GCOV),-fprofile-dir=/tmp/coverage/blktap/cpumond -fprofile-arcs -ftest-coverage)
4+
AM_CFLAGS += $(if $(GCOV),-fprofile-arcs -ftest-coverage)
55

66
AM_CPPFLAGS = -D_GNU_SOURCE
77
AM_CPPFLAGS += -I$(top_srcdir)/include

drivers/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
SUBDIRS = crypto
22
AM_CFLAGS = -Wall
33
AM_CFLAGS += -Werror
4-
AM_CFLAGS += $(if $(GCOV),-fprofile-dir=/tmp/coverage/blktap/drivers -fprofile-arcs -ftest-coverage)
4+
AM_CFLAGS += $(if $(GCOV),-fprofile-arcs -ftest-coverage)
55
# TODO add -Wextra
66

77
AM_CPPFLAGS = -D_GNU_SOURCE

lvm/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
AM_CFLAGS = -Wall
33
AM_CFLAGS += -Werror
4-
AM_CFLAGS += $(if $(GCOV),-fprofile-dir=/tmp/coverage/blktap/lvm -fprofile-arcs -ftest-coverage)
4+
AM_CFLAGS += $(if $(GCOV),-fprofile-arcs -ftest-coverage)
55

66
sbin_PROGRAMS = lvm-util
77

mockatests/cbt/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
AM_CFLAGS = -Wall
22
AM_CFLAGS += -Werror
3-
AM_CFLAGS += -fprofile-dir=/tmp/coverage/blktap/mockatests/cbt -fprofile-arcs -ftest-coverage
3+
AM_CFLAGS += -fprofile-arcs -ftest-coverage
44
AM_CFLAGS += -Og -fno-inline-functions -g
55

66
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/cbt -I../include

mockatests/control/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
AM_CFLAGS = -Wall
22
AM_CFLAGS += -Werror
3-
AM_CFLAGS += -fprofile-dir=/tmp/coverage/blktap/mockatests/control -fprofile-arcs -ftest-coverage
3+
AM_CFLAGS += -fprofile-arcs -ftest-coverage
44
AM_CFLAGS += -Og -fno-inline -g
55

66
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/control -I../include

mockatests/drivers/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
AM_CFLAGS = -Wall
22
AM_CFLAGS += -Werror
3-
AM_CFLAGS += -fprofile-dir=/tmp/coverage/blktap/mockatests/drivers -fprofile-arcs -ftest-coverage
3+
AM_CFLAGS += -fprofile-arcs -ftest-coverage
44
AM_CFLAGS += -Og -fno-inline-functions -g
55

66
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/drivers -I../include

mockatests/vhd/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
AM_CFLAGS = -Wall
22
AM_CFLAGS += -Werror
3-
AM_CFLAGS += -fprofile-dir=/tmp/coverage/blktap/mockatests/vhd -fprofile-arcs -ftest-coverage
3+
AM_CFLAGS += -fprofile-arcs -ftest-coverage
44
AM_CFLAGS += -Og -fno-inline-functions -g
55
AM_CFLAGS += -Doff64_t=__off64_t
66

tapback/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
AM_CFLAGS = -Wall
22
AM_CFLAGS += -Werror
33
AM_CFLAGS += -Wextra
4-
AM_CFLAGS += $(if $(GCOV),-fprofile-dir=/tmp/coverage/blktap/tapback -fprofile-arcs -ftest-coverage)
4+
AM_CFLAGS += $(if $(GCOV),-fprofile-arcs -ftest-coverage)
55

66
AM_CPPFLAGS = -D_GNU_SOURCE # required by vasprintf
77
AM_CPPFLAGS += -I$(top_srcdir)/include

vhd/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ SUBDIRS = lib
33

44
AM_CFLAGS = -Wall
55
AM_CFLAGS += -Werror
6-
AM_CFLAGS += $(if $(GCOV),-fprofile-dir=/tmp/coverage/blktap/vhd -fprofile-arcs -ftest-coverage)
6+
AM_CFLAGS += $(if $(GCOV),-fprofile-arcs -ftest-coverage)
77

88
AM_CPPFLAGS = -D_GNU_SOURCE
99
AM_CPPFLAGS += -I$(top_srcdir)/include

vhd/lib/Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ SUBDIRS = . $(MAYBE_test)
33

44
AM_CFLAGS = -Wall
55
AM_CFLAGS += -Werror
6-
AM_CFLAGS += $(if $(GCOV),-fprofile-dir=/tmp/coverage/blktap/vhd/lib -fprofile-arcs -ftest-coverage)
6+
AM_CFLAGS += $(if $(GCOV),-fprofile-arcs -ftest-coverage)
77

88
AM_CPPFLAGS = -D_GNU_SOURCE
99
AM_CPPFLAGS += -I$(top_srcdir)/include

0 commit comments

Comments
 (0)