Support gathering of code coverage data for RPC tests
The RPC tests (via `qa/pull-tester/rpc-tests.py`) are now executed, when gathering code coverage data, for example with `make cov`. Generating coverage data requires `lcov`, which can installed with: sudo apt-get install lcov To also use the BitcoinJ tests, get the test tool: TOOL_URL=https://github.com/theuni/bitcoind-comparisontool/raw/master/pull-tests-8c6666f.jar TOOL_HASH=a865332b3827abcde684ab79f5f43c083b0b6a4c97ff5508c79f29fee24f11cd wget $TOOL_URL -O ./share/BitcoindComparisonTool.jar echo "$TOOL_HASH ./share/BitcoindComparisonTool.jar" | shasum --algorithm 256 --check The coverage data can be generated with: ./autogen.sh ./configure --enable-lcov --with-comparison-tool=./share/BitcoindComparisonTool.jar make make cov Optionally the options `--enable-extended-rpc-tests` and `--enable-comparison-tool-reorg-tests` may be used to enable more time consuming tests. It then runs the tests and generates two HTML reports: - test_bitcoin.coverage/index.html - total.coverage/index.html
This commit is contained in:
parent
e3b5e6c39c
commit
d80e3cbece
15
Makefile.am
15
Makefile.am
@ -39,7 +39,7 @@ OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_FANCY_PLIST) $(OSX_INSTALLER_ICONS) $
|
||||
|
||||
COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \
|
||||
leveldb_baseline.info test_bitcoin_filtered.info total_coverage.info \
|
||||
baseline_filtered.info block_test_filtered.info \
|
||||
baseline_filtered.info block_test_filtered.info rpc_test.info rpc_test_filtered.info \
|
||||
leveldb_baseline_filtered.info test_bitcoin_coverage.info test_bitcoin.info
|
||||
|
||||
dist-hook:
|
||||
@ -178,11 +178,20 @@ block_test.info: test_bitcoin_filtered.info
|
||||
block_test_filtered.info: block_test.info
|
||||
$(LCOV) -r $< "/usr/include/*" -o $@
|
||||
|
||||
rpc_test.info: test_bitcoin_filtered.info
|
||||
-@TIMEOUT=15 python qa/pull-tester/rpc-tests.py $(EXTENDED_RPC_TESTS)
|
||||
$(LCOV) -c -d $(abs_builddir)/src --t rpc-tests -o $@
|
||||
$(LCOV) -z -d $(abs_builddir)/src
|
||||
$(LCOV) -z -d $(abs_builddir)/src/leveldb
|
||||
|
||||
rpc_test_filtered.info: rpc_test.info
|
||||
$(LCOV) -r $< "/usr/include/*" -o $@
|
||||
|
||||
test_bitcoin_coverage.info: baseline_filtered_combined.info test_bitcoin_filtered.info
|
||||
$(LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -o $@
|
||||
|
||||
total_coverage.info: baseline_filtered_combined.info test_bitcoin_filtered.info block_test_filtered.info
|
||||
$(LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -a block_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt
|
||||
total_coverage.info: baseline_filtered_combined.info test_bitcoin_filtered.info block_test_filtered.info rpc_test_filtered.info
|
||||
$(LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -a block_test_filtered.info -a rpc_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt
|
||||
|
||||
test_bitcoin.coverage/.dirstamp: test_bitcoin_coverage.info
|
||||
$(GENHTML) -s $< -o $(@D)
|
||||
|
Loading…
Reference in New Issue
Block a user