Skip to content

Commit d5711f4

Browse files
committed
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.
1 parent 405b86a commit d5711f4

File tree

2 files changed

+16
-26
lines changed

2 files changed

+16
-26
lines changed

Makefile.am

+12-23
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_FANCY_PLIST) $(OSX_INSTALLER_ICONS) \
5959
$(top_srcdir)/contrib/macdeploy/detached-sig-apply.sh \
6060
$(top_srcdir)/contrib/macdeploy/detached-sig-create.sh
6161

62-
COVERAGE_INFO = baseline_filtered_combined.info baseline.info \
63-
leveldb_baseline.info test_bitcoin_filtered.info total_coverage.info \
62+
COVERAGE_INFO = baseline.info \
63+
test_bitcoin_filtered.info total_coverage.info \
6464
baseline_filtered.info functional_test.info functional_test_filtered.info \
65-
leveldb_baseline_filtered.info test_bitcoin_coverage.info test_bitcoin.info
65+
test_bitcoin_coverage.info test_bitcoin.info
6666

6767
dist-hook:
6868
-$(GIT) archive --format=tar HEAD -- src/clientversion.cpp | $(AMTAR) -C $(top_distdir) -xf -
@@ -166,49 +166,38 @@ $(BITCOIN_CLI_BIN): FORCE
166166
$(MAKE) -C src $(@F)
167167

168168
if USE_LCOV
169+
LCOV_FILTER_PATTERN=-p "/usr/include/" -p "src/leveldb/" -p "src/bench/" -p "src/univalue" -p "src/crypto/ctaes" -p "src/secp256k1"
169170

170171
baseline.info:
171172
$(LCOV) -c -i -d $(abs_builddir)/src -o $@
172173

173174
baseline_filtered.info: baseline.info
174-
$(abs_builddir)/contrib/filter-lcov.py "/usr/include/" $< $@
175+
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
175176
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
176177

177-
leveldb_baseline.info: baseline_filtered.info
178-
$(LCOV) -c -i -d $(abs_builddir)/src/leveldb -b $(abs_builddir)/src/leveldb -o $@
179-
180-
leveldb_baseline_filtered.info: leveldb_baseline.info
181-
$(abs_builddir)/contrib/filter-lcov.py "/usr/include/" $< $@
182-
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
183-
184-
baseline_filtered_combined.info: leveldb_baseline_filtered.info baseline_filtered.info
185-
$(LCOV) -a $(LCOV_OPTS) leveldb_baseline_filtered.info -a baseline_filtered.info -o $@
186-
187-
test_bitcoin.info: baseline_filtered_combined.info
178+
test_bitcoin.info: baseline_filtered.info
188179
$(MAKE) -C src/ check
189180
$(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src -t test_bitcoin -o $@
190181
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src
191-
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src/leveldb
192182

193183
test_bitcoin_filtered.info: test_bitcoin.info
194-
$(abs_builddir)/contrib/filter-lcov.py "/usr/include/" $< $@
184+
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
195185
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
196186

197187
functional_test.info: test_bitcoin_filtered.info
198188
-@TIMEOUT=15 test/functional/test_runner.py $(EXTENDED_FUNCTIONAL_TESTS)
199189
$(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src --t functional-tests -o $@
200190
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src
201-
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src/leveldb
202191

203192
functional_test_filtered.info: functional_test.info
204-
$(abs_builddir)/contrib/filter-lcov.py "/usr/include/" $< $@
193+
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
205194
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
206195

207-
test_bitcoin_coverage.info: baseline_filtered_combined.info test_bitcoin_filtered.info
208-
$(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -o $@
196+
test_bitcoin_coverage.info: baseline_filtered.info test_bitcoin_filtered.info
197+
$(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -o $@
209198

210-
total_coverage.info: baseline_filtered_combined.info test_bitcoin_filtered.info functional_test_filtered.info
211-
$(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
199+
total_coverage.info: test_bitcoin_filtered.info functional_test_filtered.info
200+
$(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
212201

213202
test_bitcoin.coverage/.dirstamp: test_bitcoin_coverage.info
214203
$(GENHTML) -s $(LCOV_OPTS) $< -o $(@D)

contrib/filter-lcov.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import argparse
44

55
parser = argparse.ArgumentParser(description='Remove the coverage data from a tracefile for all files matching the pattern.')
6-
parser.add_argument('pattern', help='the pattern of files to remove')
6+
parser.add_argument('--pattern', '-p', action='append', help='the pattern of files to remove', required=True)
77
parser.add_argument('tracefile', help='the tracefile to remove the coverage data from')
88
parser.add_argument('outfile', help='filename for the output to be written to')
99

@@ -16,8 +16,9 @@
1616
with open(tracefile, 'r') as f:
1717
with open(outfile, 'w') as wf:
1818
for line in f:
19-
if line.startswith("SF:") and pattern in line:
20-
in_remove = True
19+
for p in pattern:
20+
if line.startswith("SF:") and p in line:
21+
in_remove = True
2122
if not in_remove:
2223
wf.write(line)
2324
if line == 'end_of_record\n':

0 commit comments

Comments
 (0)