After the missed-unobfuscation snafu of #6777, I realized that we don't have comprehensive coverage of the RPC commands, nor do we have a method of determining which RPC calls are or aren't covered. I'd like to start writing more RPC tests, but first I'd like to have an easy way of figuring out which tests to write.
In this PR I've provided a basic method of getting a binary coverage report for each RPC command, which should be useful to guide adding tests until we have full coverage of the RPC interface. After we're exercising every RPC command, we can possibly gate builds on that full-coverage invariant using a mechanism like this, if that's preferable.
The report looks as follows:
$ ./qa/pull-tester/rpc-tests.py --coverage
Initialized coverage directory at /tmp/coverageAHqCbm
Running testscript wallet.py...
Initializing test directory /tmp/testSAwNV3
[ tests run... ]
Tests successful
Uncovered RPC commands:
- dumpprivkey
- estimatefee
- estimatepriority
- getaccount
- getaddednodeinfo
- getaddressesbyaccount
- getblockchaininfo
- getblockheader
- getblocktemplate
- getconnectioncount
- getdifficulty
- getgenerate
- getinfo
- getmempoolinfo
- getmininginfo
- getnettotals
- getnetworkhashps
- getrawchangeaddress
- getreceivedbyaccount
- getreceivedbyaddress
- gettxout
- gettxoutsetinfo
- getunconfirmedbalance
- importprivkey
- keypoolrefill
- listaccounts
- listaddressgroupings
- listlockunspent
- listreceivedbyaccount
- listreceivedbyaddress
- listsinceblock
- lockunspent
- move
- ping
- prioritisetransaction
- setaccount
- setgenerate
- signmessage
- submitblock
- verifychain
- verifymessage
Cleaning up coverage data
