Files
dragonx/qa/rpc-tests
DanS 4cc7e0491a qa: finish the python3 port far enough to build the shared test chain
Follow-up to 5e0a70683, which got start_node() working. Three more
defects sat behind it:

- initialize_chain() builds the 4-node cache with its own daemon
  invocation, which 5e0a70683 did not touch. It therefore still omitted
  -regtest (so those cache nodes ran on MAINNET) and -asmap (so they
  refused to start at all). Every test that uses the cache -- which is
  most of the wallet suite -- died there.

- reindex.py and getblocktemplate_longpoll.py each carried a single
  python2 print statement, which is the whole reason they would not even
  parse under python3. Shebangs updated to match.

The suite still does not pass: initialize_chain hits a remaining py2
str+int concatenation, and getblocktemplate.py reaches a real test
assertion. Both are beyond this commit, but the harness now gets far
enough to start nodes, answer RPC and begin building the shared chain,
which it could not do before.
2026-08-30 21:29:08 -05:00
..
2014-02-28 15:24:31 -05:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2025-08-22 21:26:05 -04:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00
2024-02-27 23:59:59 +01:00

Regression tests of RPC interface

test_framework/test_framework.py

Base class for RPC regression tests.

test_framework/util.py

Generally useful functions.

Notes

You can run a single test by calling qa/pull-tester/rpc-tests.sh <testname>.

Run all possible tests with qa/pull-tester/rpc-tests.sh -extended.

Possible options:

-h, --help       show this help message and exit
  --nocleanup      Leave binaries and test.* datadir on exit or error
  --noshutdown     Don't stop full node after the test execution
  --srcdir=SRCDIR  Source directory containing dragonxd/dragonx-cli (default: ../../src)
  --tmpdir=TMPDIR  Root directory for datadirs
  --tracerpc       Print out all RPC calls as they are made

If you set the environment variable PYTHON_DEBUG=1 you will get some debug output (example: PYTHON_DEBUG=1 qa/pull-tester/rpc-tests.sh wallet).

A 200-block -regtest blockchain and wallets for four nodes is created the first time a regression test is run and is stored in the cache/ directory. Each node has the miner subsidy from 25 mature blocks in its wallet. The exact amount in DRAGONX depends on the per-test -ac_reward (regtest subsidy), so it is not a fixed figure across tests.

After the first run, the cache/ blockchain and wallets are copied into a temporary directory and used as the initial test state.

If you get into a bad state, you should be able to recover with:

rm -rf cache
killall dragonxd

but beware that could kill various other processes you might not want to kill!