Filter subtrees and and benchmarks from coverage report
Remove leveldb baseline coverage gathering. Added filter rules to remove all of the subtress (leveldb, secp256k1, ctaes, univalue) and benchmarking from the coverage report. These items are unnecessary as we do not test for any of the subtrees and benchmark coverage is unneeded.
This commit is contained in:
parent
405b86a92a
commit
d5711f4a2d
2 changed files with 16 additions and 26 deletions
35
Makefile.am
35
Makefile.am
|
@ -59,10 +59,10 @@ OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_FANCY_PLIST) $(OSX_INSTALLER_ICONS) \
|
||||||
$(top_srcdir)/contrib/macdeploy/detached-sig-apply.sh \
|
$(top_srcdir)/contrib/macdeploy/detached-sig-apply.sh \
|
||||||
$(top_srcdir)/contrib/macdeploy/detached-sig-create.sh
|
$(top_srcdir)/contrib/macdeploy/detached-sig-create.sh
|
||||||
|
|
||||||
COVERAGE_INFO = baseline_filtered_combined.info baseline.info \
|
COVERAGE_INFO = baseline.info \
|
||||||
leveldb_baseline.info test_bitcoin_filtered.info total_coverage.info \
|
test_bitcoin_filtered.info total_coverage.info \
|
||||||
baseline_filtered.info functional_test.info functional_test_filtered.info \
|
baseline_filtered.info functional_test.info functional_test_filtered.info \
|
||||||
leveldb_baseline_filtered.info test_bitcoin_coverage.info test_bitcoin.info
|
test_bitcoin_coverage.info test_bitcoin.info
|
||||||
|
|
||||||
dist-hook:
|
dist-hook:
|
||||||
-$(GIT) archive --format=tar HEAD -- src/clientversion.cpp | $(AMTAR) -C $(top_distdir) -xf -
|
-$(GIT) archive --format=tar HEAD -- src/clientversion.cpp | $(AMTAR) -C $(top_distdir) -xf -
|
||||||
|
@ -166,49 +166,38 @@ $(BITCOIN_CLI_BIN): FORCE
|
||||||
$(MAKE) -C src $(@F)
|
$(MAKE) -C src $(@F)
|
||||||
|
|
||||||
if USE_LCOV
|
if USE_LCOV
|
||||||
|
LCOV_FILTER_PATTERN=-p "/usr/include/" -p "src/leveldb/" -p "src/bench/" -p "src/univalue" -p "src/crypto/ctaes" -p "src/secp256k1"
|
||||||
|
|
||||||
baseline.info:
|
baseline.info:
|
||||||
$(LCOV) -c -i -d $(abs_builddir)/src -o $@
|
$(LCOV) -c -i -d $(abs_builddir)/src -o $@
|
||||||
|
|
||||||
baseline_filtered.info: baseline.info
|
baseline_filtered.info: baseline.info
|
||||||
$(abs_builddir)/contrib/filter-lcov.py "/usr/include/" $< $@
|
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
|
||||||
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
||||||
|
|
||||||
leveldb_baseline.info: baseline_filtered.info
|
test_bitcoin.info: baseline_filtered.info
|
||||||
$(LCOV) -c -i -d $(abs_builddir)/src/leveldb -b $(abs_builddir)/src/leveldb -o $@
|
|
||||||
|
|
||||||
leveldb_baseline_filtered.info: leveldb_baseline.info
|
|
||||||
$(abs_builddir)/contrib/filter-lcov.py "/usr/include/" $< $@
|
|
||||||
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
|
||||||
|
|
||||||
baseline_filtered_combined.info: leveldb_baseline_filtered.info baseline_filtered.info
|
|
||||||
$(LCOV) -a $(LCOV_OPTS) leveldb_baseline_filtered.info -a baseline_filtered.info -o $@
|
|
||||||
|
|
||||||
test_bitcoin.info: baseline_filtered_combined.info
|
|
||||||
$(MAKE) -C src/ check
|
$(MAKE) -C src/ check
|
||||||
$(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src -t test_bitcoin -o $@
|
$(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src -t test_bitcoin -o $@
|
||||||
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src
|
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src
|
||||||
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src/leveldb
|
|
||||||
|
|
||||||
test_bitcoin_filtered.info: test_bitcoin.info
|
test_bitcoin_filtered.info: test_bitcoin.info
|
||||||
$(abs_builddir)/contrib/filter-lcov.py "/usr/include/" $< $@
|
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
|
||||||
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
||||||
|
|
||||||
functional_test.info: test_bitcoin_filtered.info
|
functional_test.info: test_bitcoin_filtered.info
|
||||||
-@TIMEOUT=15 test/functional/test_runner.py $(EXTENDED_FUNCTIONAL_TESTS)
|
-@TIMEOUT=15 test/functional/test_runner.py $(EXTENDED_FUNCTIONAL_TESTS)
|
||||||
$(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src --t functional-tests -o $@
|
$(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src --t functional-tests -o $@
|
||||||
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src
|
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src
|
||||||
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src/leveldb
|
|
||||||
|
|
||||||
functional_test_filtered.info: functional_test.info
|
functional_test_filtered.info: functional_test.info
|
||||||
$(abs_builddir)/contrib/filter-lcov.py "/usr/include/" $< $@
|
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
|
||||||
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
||||||
|
|
||||||
test_bitcoin_coverage.info: baseline_filtered_combined.info test_bitcoin_filtered.info
|
test_bitcoin_coverage.info: baseline_filtered.info test_bitcoin_filtered.info
|
||||||
$(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -o $@
|
$(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -o $@
|
||||||
|
|
||||||
total_coverage.info: baseline_filtered_combined.info test_bitcoin_filtered.info functional_test_filtered.info
|
total_coverage.info: test_bitcoin_filtered.info functional_test_filtered.info
|
||||||
$(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -a functional_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt
|
$(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -a functional_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt
|
||||||
|
|
||||||
test_bitcoin.coverage/.dirstamp: test_bitcoin_coverage.info
|
test_bitcoin.coverage/.dirstamp: test_bitcoin_coverage.info
|
||||||
$(GENHTML) -s $(LCOV_OPTS) $< -o $(@D)
|
$(GENHTML) -s $(LCOV_OPTS) $< -o $(@D)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Remove the coverage data from a tracefile for all files matching the pattern.')
|
parser = argparse.ArgumentParser(description='Remove the coverage data from a tracefile for all files matching the pattern.')
|
||||||
parser.add_argument('pattern', help='the pattern of files to remove')
|
parser.add_argument('--pattern', '-p', action='append', help='the pattern of files to remove', required=True)
|
||||||
parser.add_argument('tracefile', help='the tracefile to remove the coverage data from')
|
parser.add_argument('tracefile', help='the tracefile to remove the coverage data from')
|
||||||
parser.add_argument('outfile', help='filename for the output to be written to')
|
parser.add_argument('outfile', help='filename for the output to be written to')
|
||||||
|
|
||||||
|
@ -16,8 +16,9 @@ in_remove = False
|
||||||
with open(tracefile, 'r') as f:
|
with open(tracefile, 'r') as f:
|
||||||
with open(outfile, 'w') as wf:
|
with open(outfile, 'w') as wf:
|
||||||
for line in f:
|
for line in f:
|
||||||
if line.startswith("SF:") and pattern in line:
|
for p in pattern:
|
||||||
in_remove = True
|
if line.startswith("SF:") and p in line:
|
||||||
|
in_remove = True
|
||||||
if not in_remove:
|
if not in_remove:
|
||||||
wf.write(line)
|
wf.write(line)
|
||||||
if line == 'end_of_record\n':
|
if line == 'end_of_record\n':
|
||||||
|
|
Loading…
Reference in a new issue