From 258f1b0236a5083780d65be881874301e99c1ed3 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Thu, 11 Sep 2025 17:37:04 +0000 Subject: [PATCH] various testing fixes --- mmgen/proto/eth/daemon.py | 5 +++- test/clean.py | 2 +- test/daemontest_d/exec.py | 38 ++++++++++++++++++++--------- test/include/coin_daemon_control.py | 9 ++++--- test/test-release.d/cfg.sh | 8 +++--- test/test-release.sh | 4 +-- 6 files changed, 43 insertions(+), 23 deletions(-) diff --git a/mmgen/proto/eth/daemon.py b/mmgen/proto/eth/daemon.py index 0e393886..bbb3005c 100755 --- a/mmgen/proto/eth/daemon.py +++ b/mmgen/proto/eth/daemon.py @@ -122,9 +122,11 @@ class geth_daemon(ethereum_daemon): [f'--http.port={self.rpc_port}'], [f'--authrpc.port={self.authrpc_port}'], [f'--port={self.p2p_port}', self.p2p_port], # geth binds p2p port even with --maxpeers=0 + [f'--discovery.port={self.p2p_port}', self.id == 'reth' and self.p2p_port], ['--maxpeers=0', self.id == 'geth' and not self.opt.online], [f'--datadir={self.datadir}', self.non_dfl_datadir], - ['--holesky', self.network=='testnet'], + ['--holesky', self.network=='testnet' and self.id == 'geth'], + ['--chain=holesky', self.network=='testnet' and self.id == 'reth'], ['--dev', self.network=='regtest'], ) @@ -132,6 +134,7 @@ class reth_daemon(geth_daemon): daemon_data = _dd('Reth', 1007000, '1.7.0') version_pat = r'reth/v(\d+)\.(\d+)\.(\d+)' exec_fn = 'reth' + version_info_arg = '--version' datadirs = { 'linux': [gc.home_dir, '.local', 'share', 'reth'], } diff --git a/test/clean.py b/test/clean.py index 945576c9..bed4c7a8 100755 --- a/test/clean.py +++ b/test/clean.py @@ -31,7 +31,7 @@ opts_data = { }, } -cfg = Config(opts_data=opts_data) +cfg = Config(opts_data=opts_data, init_opts={'skip_cfg_file': True}) from test.overlay import get_overlay_tree_dir overlay_tree_dir = get_overlay_tree_dir(repo_root) diff --git a/test/daemontest_d/exec.py b/test/daemontest_d/exec.py index 97a938d5..dfd78bb7 100755 --- a/test/daemontest_d/exec.py +++ b/test/daemontest_d/exec.py @@ -11,7 +11,7 @@ from mmgen.color import orange, red from mmgen.util import fmt_list from mmgen.daemon import CoinDaemon -from ..include.common import cfg, qmsg, qmsg_r, vmsg, msg +from ..include.common import cfg, qmsg, qmsg_r, vmsg, msg, msg_r def test_flags(coin): d = CoinDaemon(cfg, network_id=coin) @@ -64,9 +64,11 @@ class unit_tests: def _pre(self): self.daemon_ctrl_args = ['btc', 'btc_tn', 'btc_rt'] if cfg.no_altcoin_deps else ['all'] - def _test_cmd(self, args_in, message): - qmsg_r(message) - args = ['python3', f'test/{args_in[0]}-coin-daemons.py'] + list(args_in[1:]) + self.daemon_ctrl_args + def _test_cmd(self, args_in, network_ids=[], ok=True): + args = ( + ['python3', f'test/{args_in[0]}-coin-daemons.py'] + + list(args_in[1:]) + + (network_ids or self.daemon_ctrl_args)) vmsg('\n' + orange(f"Running '{' '.join(args)}':")) cp = run(args, stdout=PIPE, stderr=PIPE, text=True) if cp.returncode != 0: @@ -75,7 +77,11 @@ class unit_tests: if cp.stderr: msg(red(cp.stderr)) return False - qmsg('OK') + if cfg.verbose: + msg_r(cp.stderr.strip()) + if ok: + vmsg('') + qmsg('OK') return True def flags(self, name, ut): @@ -101,17 +107,27 @@ class unit_tests: return True def avail(self, name, ut): - return self._test_cmd( - ['start', '--print-version', '--mainnet-only'], 'Testing availability of coin daemons...') + qmsg_r('Testing availability of coin daemons...') + return self._test_cmd(['start', '--print-version', '--mainnet-only']) + + def versions(self, name, ut): + qmsg_r('Displaying coin daemon versions...') + ret1 = self._test_cmd(['start', '--print-version'], ok=False) + ret2 = self._test_cmd(['start', '--print-version', '--mainnet-only']) + return ret1 and ret2 def cmds(self, name, ut): - return self._test_cmd(['start', '--testing'], 'Testing start commands for coin daemons...') + qmsg_r('Testing start commands for coin daemons...') + return self._test_cmd(['start', '--testing']) def start(self, name, ut): - return self._test_cmd(['start'], 'Starting coin daemons...') + qmsg_r('Starting coin daemons...') + return self._test_cmd(['start']) def status(self, name, ut): - return self._test_cmd(['start'], 'Checking status of coin daemons...') + qmsg_r('Checking status of coin daemons...') + return self._test_cmd(['start']) def stop(self, name, ut): - return self._test_cmd(['stop', '--remove-datadir'], 'Stopping coin daemons...') + qmsg_r('Stopping coin daemons...') + return self._test_cmd(['stop', '--remove-datadir']) diff --git a/test/include/coin_daemon_control.py b/test/include/coin_daemon_control.py index ceea7946..01221fcf 100755 --- a/test/include/coin_daemon_control.py +++ b/test/include/coin_daemon_control.py @@ -68,8 +68,8 @@ Valid network IDs: {nid}, {xmrw_nid}, all, no_xmr } class warn_missing_exec(oneshot_warning): - color = 'nocolor' - message = 'daemon executable {!r} not found on this system!' + color = 'yellow' + message = 'missing executable {!r}' def run(network_id=None, proto=None, daemon_id=None, missing_exec_ok=False): @@ -107,7 +107,8 @@ def run(network_id=None, proto=None, daemon_id=None, missing_exec_ok=False): d.get_exec_version_str() except Exception as e: if not cfg.quiet: - msg(str(e)) + if cfg.verbose: + msg(str(e)) warn_missing_exec(div=d.exec_fn, fmt_args=(d.exec_fn,)) return if cfg.print_version: @@ -150,4 +151,4 @@ def main(): for network_id in ids: run(network_id=network_id.lower()) -cfg = Config(opts_data=opts_data) +cfg = Config(opts_data=opts_data, init_opts={'skip_cfg_file': True}) diff --git a/test/test-release.d/cfg.sh b/test/test-release.d/cfg.sh index 20b7a479..e47fa800 100755 --- a/test/test-release.d/cfg.sh +++ b/test/test-release.d/cfg.sh @@ -19,15 +19,15 @@ groups_desc=" " init_groups() { - dfl_tests='dep alt obj color daemon mod hash ref tool tool2 gen help autosign btc btc_tn btc_rt altref altgen bch bch_rt ltc ltc_rt geth reth etc rune xmr' + dfl_tests='dep daemon alt obj color mod hash ref tool tool2 gen help autosign btc btc_tn btc_rt altref altgen bch bch_rt ltc ltc_rt geth reth etc rune xmr' extra_tests='dep dev lint pylint autosign_live ltc_tn bch_tn' - noalt_tests='dep alt obj color daemon mod hash ref tool tool2 gen help autosign btc btc_tn btc_rt' - quick_tests='dep alt obj color daemon mod hash ref tool tool2 gen help autosign btc btc_rt altref altgen geth etc rune xmr' + noalt_tests='dep daemon alt obj color mod hash ref tool tool2 gen help autosign btc btc_tn btc_rt' + quick_tests='dep daemon alt obj color mod hash ref tool tool2 gen help autosign btc btc_rt altref altgen geth etc rune xmr' qskip_tests='lint btc_tn bch bch_rt ltc ltc_rt' noalt_ok_tests='lint' [ "$MSYS2" ] && SKIP_LIST='autosign autosign_live' - [ "$ARM32" -o "$ARM64" -o "$SKIP_PARITY" ] && SKIP_LIST+=' etc' + [ "$SKIP_PARITY" ] && SKIP_LIST+=' etc' true } diff --git a/test/test-release.sh b/test/test-release.sh index ed558e17..a6c810b4 100755 --- a/test/test-release.sh +++ b/test/test-release.sh @@ -379,8 +379,8 @@ do esac done -in_nix_environment && parity --help >/dev/null 2>&1 || SKIP_PARITY=1 -[ "$RISCV64" ] && SKIP_PARITY=1 +in_nix_environment && SKIP_PARITY=1 +[ "$SOC" ] && SKIP_PARITY=1 [ "$MMGEN_DISABLE_COLOR" -o ! -t 1 ] || { GRAY="\e[30;1m"