Skip to content

Commit

Permalink
gcov: properly handle gard and pflash code coverage
Browse files Browse the repository at this point in the history
We end up with a bit of a nasty hack to count the libflash symlinks
in gard and pflash as part of libflash code coverage, but it does
work and is unlikely to break anytime soon.

Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
  • Loading branch information
stewartsmith committed Jul 19, 2017
1 parent 22abfd2 commit 36698d1
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
13 changes: 12 additions & 1 deletion Makefile.main
Original file line number Diff line number Diff line change
Expand Up @@ -255,8 +255,18 @@ extract-gcov: extract-gcov.c
coverage-report: skiboot.info
genhtml --branch-coverage -q -o $@ $<

skiboot.info: coverage
# A rather nasty hack here that relies on the lcov file format
external/pflash/pflash.info: coverage
(cd external/pflash; lcov -q -c -d . -o pflash.info --rc lcov_branch_coverage=1; sed -i -e 's%external/pflash/libflash%libflash%; s%external/pflash/ccan%ccan%' pflash.info)
external/gard/gard.info: coverage
(cd external/gard; lcov -q -c -d . -o gard.info --rc lcov_branch_coverage=1; sed -i -e 's%external/gard/libflash%libflash%; s%external/gard/ccan%ccan%' gard.info)

skiboot.info: coverage external/pflash/pflash.info external/gard/gard.info
lcov -q -c -d . $(LCOV_DIRS) -o $@ --rc lcov_branch_coverage=1
lcov -q -r $@ 'external/pflash/*' -o $@
lcov -q -r $@ 'external/gard/*' -o $@
lcov -q -a $@ -a external/pflash/pflash.info -o $@
lcov -q -a $@ -a external/gard/gard.info -o $@
lcov -q -r $@ $(LCOV_EXCLUDE) -o $@ --rc lcov_branch_coverage=1

tags:
Expand All @@ -274,6 +284,7 @@ clean:
$(RM) *.[odsa] $(SUBDIRS:%=%/*.[odsa])
$(RM) *.elf $(TARGET).lid *.map $(TARGET).lds $(TARGET).lid.xz
$(RM) include/asm-offsets.h version.c .version
$(RM) skiboot.info external/gard/gard.info external/pflash/pflash.info
$(RM) extract-gcov $(TARGET).lid.stb $(TARGET).lid.xz.stb

distclean: clean
Expand Down
8 changes: 7 additions & 1 deletion external/gard/test/Makefile.check
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,20 @@ check: check-gard
#make clean before checking. If not, .o files for different
#architectures might be lying around and clean once done to
#avoid the opposite
check-gard: gard-test-clean
check-gard: gard-test-clean gard
$(call QTEST, RUN-TEST , make CC=$(HOSTCC) CROSS='' CROSS_COMPILE='' -C external/gard/ check, $@)
$(call QTEST, CLEANUP , make CC=$(HOSTCC) CROSS='' CROSS_COMPILE='' -C external/gard/ clean, $@)

.PHONY: check-gard

clean: gard-test-clean

.PHONY: gard-coverage

coverage: gard-coverage

gard-coverage: check-gard

gard-test-clean:
$(call QTEST, CLEANUP , make -C external/gard clean, $@)

Expand Down

0 comments on commit 36698d1

Please sign in to comment.