aboutsummaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authordexX7 <dexx@bitwatch.co>2015-10-11 18:29:42 +0200
committerdexX7 <dexx@bitwatch.co>2015-10-23 22:09:24 +0200
commitd80e3cbece857b293a4903ef49c4d543bb2cfb7f (patch)
treefd7b4b18ce0f93ee84cbdbc3bd20b5768bba4162 /Makefile.am
parente3b5e6c39c5a6e56bdc21d307ac5cb6c80b737dd (diff)
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
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am15
1 files changed, 12 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index 8b298619f7..f0961c64ec 100644
--- a/Makefile.am
+++ b/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)