From d00dc7987b35f3ab4af6e929f596a574b98760dc Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sat, 7 Aug 2021 13:54:57 +0000 Subject: [PATCH] unit_tests.py rpc: test all configured daemon_ids --- test/unit_tests_d/ut_rpc.py | 38 +++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/test/unit_tests_d/ut_rpc.py b/test/unit_tests_d/ut_rpc.py index b1d030c9..79a6aff0 100755 --- a/test/unit_tests_d/ut_rpc.py +++ b/test/unit_tests_d/ut_rpc.py @@ -33,34 +33,30 @@ def do_msg(rpc): class init_test: - async def btc(proto,backend): - rpc = await rpc_init(proto,backend) + async def btc(proto,backend,daemon): + rpc = await rpc_init(proto,backend,daemon) do_msg(rpc) bh = (await rpc.call('getblockchaininfo',timeout=300))['bestblockhash'] await rpc.gathered_call('getblock',((bh,),(bh,1)),timeout=300) await rpc.gathered_call(None,(('getblock',(bh,)),('getblock',(bh,1))),timeout=300) - async def bch(proto,backend): - rpc = await rpc_init(proto,backend) + async def bch(proto,backend,daemon): + rpc = await rpc_init(proto,backend,daemon) do_msg(rpc) ltc = bch - async def eth(proto,backend): - rpc = await rpc_init(proto,backend) + async def eth(proto,backend,daemon): + rpc = await rpc_init(proto,backend,daemon) do_msg(rpc) await rpc.call('eth_blockNumber',timeout=300) etc = eth -def run_test(network_ids,test_cf_auth): # TODO: run all available networks simultaneously +def run_test(network_ids,test_cf_auth=False,daemon_ids=None): - for network_id in network_ids: - - proto = init_proto(network_id=network_id) - - d = CoinDaemon(proto=proto,test_suite=True) + def do(d): if not opt.no_daemon_stop: d.stop() @@ -70,16 +66,25 @@ def run_test(network_ids,test_cf_auth): # TODO: run all available networks simul d.start() for backend in g.autoset_opts['rpc_backend'].choices: - run_session(getattr(init_test,proto.coin.lower())(proto,backend),backend=backend) + test = getattr(init_test,d.proto.coin.lower()) + run_session(test(d.proto,backend,d),backend=backend) if not opt.no_daemon_stop: d.stop() if test_cf_auth and g.platform != 'win': - cfg_file_auth_test(proto,d) + cfg_file_auth_test(d.proto,d) qmsg('') + for network_id in network_ids: + proto = init_proto(network_id=network_id) + daemon_ids = (lambda x: + set(daemon_ids) & set(x) if daemon_ids else x + )(CoinDaemon.coins[proto.coin].daemon_ids) + for daemon_id in daemon_ids: + do( CoinDaemon(proto=proto,test_suite=True,daemon_id=daemon_id) ) + return True class unit_tests: @@ -96,10 +101,11 @@ class unit_tests: return run_test(['bch','bch_tn'],test_cf_auth=True) def eth(self,name,ut): - return run_test(['eth'],test_cf_auth=False) + run_test(['eth','eth_tn','eth_rt'],daemon_ids=['openethereum','erigon']) + return run_test(['eth_tn','eth_rt'],daemon_ids=['geth']) # mainnet returns EIP-155 error on empty blockchain def etc(self,name,ut): - return run_test(['etc'],test_cf_auth=False) + return run_test(['etc']) def xmrwallet(self,name,ut):