554 Commits

Author SHA1 Message Date
Eric
bd918dd89c
update to websockets addresses for hardhat connection
Also, catch exceptions on JsonRpcProvider.close, which should not need to be done, as this routine should not raise any exceptions.
2025-06-04 16:43:54 +10:00
Eric
fa91a642b9
revert posix-only verbose unittest output
It didn't fix the error with invalid proofs in windows in ci
2025-06-04 16:07:01 +10:00
Eric
99fa6b8a16
fix previous commit compilation 2025-06-04 16:07:00 +10:00
Eric
38a4f864da
try removing verbose output to see if windows ci passes 2025-06-04 16:07:00 +10:00
Eric
86db88ce72
logging: show test setup/teardown in logs 2025-06-04 16:07:00 +10:00
Eric
e8e16729bf
try increasing polling interval to see if this has an effect on windows in ci 2025-06-04 16:07:00 +10:00
Eric
e12426fff7
verbose unittest2 output to stdout 2025-06-04 16:06:15 +10:00
Eric
18a7f5adab
update after rebase 2025-06-04 16:06:14 +10:00
Eric
9dc820d69e
formatting 2025-06-04 16:01:27 +10:00
Eric
6bb7457824
fix compilation errors in windows 2025-06-04 16:01:27 +10:00
Eric
b060c8d520
fix eventually symbol resolution
Because `eventuallySafe` calls the symbol `eventually`, it should be declared before `proc eventually` is declared to avoid ambiguous symbol lookups.
2025-06-04 16:01:27 +10:00
Eric
75047f52be
force kill windows test processes
In situations like timeouts, windows will hang when attempting to close the test process streams. In this case, we have to force kill the test process externally. This is the same process as force killing hardhat nodes after they are already terminated, but windows refuses hangs when closing their process streams. This commit creates a forceKillProcess utility that allows a process to be killed by its process name and matching commandline criteria, like TestId (for test process) or --port (for hardhat)
2025-06-04 16:01:27 +10:00
Eric
cbe3305dc5
Reinstate unittest > unittest2, move eventually to ./asynctest 2025-06-04 16:01:27 +10:00
Eric
67ebe0b3e3
Don't store hardhat logs in memory and do not print to term even if DebugHardhat=true
Hardhat output is logged to file in hardhat.log for each test, and printing to screen is not necessarily needed as it is already logged to file and can create clutter in the output, so stop writing logging output to memory and writing to screen.
2025-06-04 16:01:26 +10:00
Eric
f09c4357c9
re-enable debug logging in codex nodes
Since the HttpClient now supports async, re-enable debug logging in the Codex nodes
2025-06-04 16:01:26 +10:00
Eric
61b45bb921
Remove new implementation of eventuallySafe by overidding the default params of eventually
With this fix in, there is no need to use the asynctest update that sets longer defaults for eventually, so downgrade asynctest
2025-06-04 16:01:26 +10:00
Eric
0fca36344f
safeEventually > eventuallySafe 2025-06-04 16:01:25 +10:00
Eric
e3d0304ef7
fix: forcefully kill windows hardhat processes after termination
On windows, termination of hardhat processes would not actually kill the process, and then closing the process' streams would then hang the calling nim process. To get around this, the process is now killed externally using a script, winkillhardhat.sh. This script first queries open processes by inspecting the command line value of all "node.exe" processes, searching for "vendor/codex-contracts-eth" and for the port parameter it was started with. After querying, the process is killed using the `Stop-Process` powershell command (passing the pid of the windows process).
2025-06-04 16:00:51 +10:00
Arnaud
7006c6c727
Reduce the number of requests for asserts in tests 2025-06-04 16:00:50 +10:00
Eric
385319c63a
formatting 2025-06-04 15:58:33 +10:00
Eric
bedd07303b
attempt to kill windows hardhat process
Windows hangs when attempting to hardhat's process streams, so try to kill the process externally.
TODO: This doesn't actually kill the process, as the pid given by chronos is an msys2 pid, and the command is used to kill a windows process. `ps -ef` in msys2 also doesn't show hardhat running as a process, so the only way to kill the process is to kill it with the windows pid. So we need to figure out a way to get a windows pid from the msys2 pid.
2025-06-04 15:58:33 +10:00
Eric
91b5084047
add new line to stdout/stderr logs when logging lines 2025-06-04 15:58:33 +10:00
Eric
1b47e16405
fix compilation error 2025-06-04 15:58:32 +10:00
Eric
ec40d73d0d
write to stdout/stderr as the stream is read, rearrange node stop logging 2025-06-04 15:58:32 +10:00
Eric
cca846f073
remove unneeded exception from start raises 2025-06-04 15:58:32 +10:00
Eric
ff1acb9391
Add "starting test" log to multinodes logging output for context 2025-06-04 15:58:32 +10:00
Eric
6567a399de
unittest2 > unittest1 2025-06-04 15:58:32 +10:00
Eric
3a486e974d
remove noCancel from node startup in multinodes 2025-06-04 15:58:32 +10:00
Eric
3eb1edceb4
Remove noCancel from captureProcessOutput call 2025-06-04 15:58:31 +10:00
Eric
7610b4e8bf
Continuously read from stdout/stderr to prevent buffers from filling 2025-06-04 15:58:31 +10:00
Eric
2ebf7b1568
reinstate logging after it also failed on windows and ci 2025-06-04 15:58:31 +10:00
Eric
4789f6a879
disable all logging to see if windows passes 2025-06-04 15:58:31 +10:00
Eric
b3162061e8
Move test assertions at end of start so that test.status can be set after timeout 2025-06-04 15:58:31 +10:00
Eric
72e687f828
fix rebase on top of async http client change 2025-06-04 15:58:31 +10:00
Eric
5371aa2c7c
Remove debug from twonodesconfig 2025-06-04 15:58:30 +10:00
Eric
1f859b24fe
Add wait to stdout/stderr stream future 2025-06-04 15:58:30 +10:00
Eric
061ccce403
fix windows issue where reading stdout/stderr hangs forever 2025-06-04 15:58:30 +10:00
Eric
06337a0512
ensure runTests doesn't raise CancelledError
TrackedFutures now only accepts Futures that do not raise any exceptions
2025-06-04 15:58:30 +10:00
Eric
d2734a686e
Remove DebugCodexNodes
- Codex nodes will log to file by default, so this parameter could be removed.
- Add NoCodexLogFilters define, that unsets chronicles' topic filters when logging codex nodes chronicles logs to file
2025-06-04 15:58:30 +10:00
Eric
05ec9e6b9c
do not re-raise CancelledError as convertError not used in async procs 2025-06-04 15:58:30 +10:00
Eric
324035ed27
re-raise CancelledError 2025-06-04 15:58:29 +10:00
Eric
e69319b5a2
readd prevention of hanging when closing process streams on windows 2025-06-04 15:58:29 +10:00
Eric
ee0d2866c8
Add debugging and assertions after test run
Mostly to debug in windows
2025-06-04 15:58:29 +10:00
Eric
18e9dc3529
formatting 2025-06-04 15:56:04 +10:00
Eric
e2706a68b3
formatting 2025-06-04 15:56:04 +10:00
Eric
701421c26c
Fix process hanging after restart 2025-06-04 15:56:03 +10:00
Eric
5ff15da492
refactor: debug and logging
- Move test manager values to config object
- Increase codex port separation (between api and disc ports) in an attempt to prevent overlap across tests (ie Test1: api=8000(tcp), disc=9000(udp), and Test2: api=9000(tcp), disc=10000(udp))
- print stderr when exitcode == 1 if there's < 3 lines of stdout
- Logging:
  - Always write test manager harness chronicles logs to file, ie testmanager.chronicles.log in the root of the `integration/logs/<run name>` dir
  - Always write individual test stdout to file, ie `<test file name>.stdout.log` in the root of the `integration/logs/<run name>/<test file name>` dir
  - On error, print stderr to screen and write stderr to file. Or on failure, if stdout is sufficiently short, write stderr to screen and file in `integration/logs/<run name>/<test file name>/<test file name>.stderr.log`
  - When debugging, ie DebugCodexNodes == true
- Removes DebugTestHarness from controlling anything other than printing chronicles output from the testmanager to the terminal
- Now, if DebugCodexNodes is set to true:
  - Codex node (chronicles) output for multinodesuite tests is logged to file, eg `integration/logs/<run name>/<test file name>/<test name>/<role>_<idx>.log`
  - Codex chronicles output is logged to stdout, which also written to file (see above)
2025-06-04 15:56:03 +10:00
Eric
831ad9170b
enable more logging to file
- test harness chronicles logs to log file
- test process stdout and stderr to log file for each integration test file

Note: does not work when DEBUG=1 is not present in make command
2025-06-04 15:56:03 +10:00
Eric
8f21cacc79
Ensure started tests are torn down properly on timeout 2025-06-04 15:56:03 +10:00
Eric
aacf22a1a0
filter out log topics that are making too much noise
- set disabled topics during codex compilation due to lack of support for disabling chronicles topics at runtime in codex
- ensure that TRACE logs are set for nodes running in multinodesuite when DebugCodexNodes is set
- add TRACE loglevel to testcli
2025-06-04 15:56:03 +10:00