553 Commits

Author SHA1 Message Date
Eric
7c00329d90
try removing verbose output to see if windows ci passes 2025-06-05 15:58:12 +10:00
Eric
8f4dae1b60
logging: show test setup/teardown in logs 2025-06-05 15:58:12 +10:00
Eric
348764550b
try increasing polling interval to see if this has an effect on windows in ci 2025-06-05 15:58:12 +10:00
Eric
eebeb8abbf
verbose unittest2 output to stdout 2025-06-05 15:58:12 +10:00
Eric
b8b93d7981
update after rebase 2025-06-05 15:58:12 +10:00
Eric
9d605a554e
formatting 2025-06-05 15:58:11 +10:00
Eric
98a828e620
fix compilation errors in windows 2025-06-05 15:58:11 +10:00
Eric
8fcd97738d
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-05 15:58:11 +10:00
Eric
cff38a7eee
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-05 15:58:11 +10:00
Eric
e99dc1dc9c
Reinstate unittest > unittest2, move eventually to ./asynctest 2025-06-05 15:58:11 +10:00
Eric
660a0e27b5
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-05 15:58:10 +10:00
Eric
ebc71838b8
re-enable debug logging in codex nodes
Since the HttpClient now supports async, re-enable debug logging in the Codex nodes
2025-06-05 15:58:10 +10:00
Eric
6e1e8a0e5e
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-05 15:58:10 +10:00
Eric
8b192df271
safeEventually > eventuallySafe 2025-06-05 15:58:10 +10:00
Eric
cb20b54213
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-05 15:58:10 +10:00
Arnaud
9005522633
Reduce the number of requests for asserts in tests 2025-06-05 15:58:10 +10:00
Eric
c16f8d38a2
formatting 2025-06-05 15:58:09 +10:00
Eric
91570b46ae
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-05 15:58:09 +10:00
Eric
3b51d24b09
add new line to stdout/stderr logs when logging lines 2025-06-05 15:58:09 +10:00
Eric
84de0abf67
fix compilation error 2025-06-05 15:58:09 +10:00
Eric
ac588b99ce
write to stdout/stderr as the stream is read, rearrange node stop logging 2025-06-05 15:58:09 +10:00
Eric
817c2bc82d
remove unneeded exception from start raises 2025-06-05 15:58:09 +10:00
Eric
e1cc23d4fd
Add "starting test" log to multinodes logging output for context 2025-06-05 15:58:08 +10:00
Eric
a8c573e8aa
unittest2 > unittest1 2025-06-05 15:58:08 +10:00
Eric
a3db38d779
remove noCancel from node startup in multinodes 2025-06-05 15:58:08 +10:00
Eric
41eca535e4
Remove noCancel from captureProcessOutput call 2025-06-05 15:58:08 +10:00
Eric
114a46afa2
Continuously read from stdout/stderr to prevent buffers from filling 2025-06-05 15:58:08 +10:00
Eric
a9b094ae86
reinstate logging after it also failed on windows and ci 2025-06-05 15:58:08 +10:00
Eric
a52a53ba52
disable all logging to see if windows passes 2025-06-05 15:58:07 +10:00
Eric
9084dd7b14
Move test assertions at end of start so that test.status can be set after timeout 2025-06-05 15:58:07 +10:00
Eric
4f2f000a93
fix rebase on top of async http client change 2025-06-05 15:58:07 +10:00
Eric
3ec35dc788
Remove debug from twonodesconfig 2025-06-05 15:58:07 +10:00
Eric
6bef231297
Add wait to stdout/stderr stream future 2025-06-05 15:58:07 +10:00
Eric
daa23f4ffb
fix windows issue where reading stdout/stderr hangs forever 2025-06-05 15:58:07 +10:00
Eric
9d8dbee9aa
ensure runTests doesn't raise CancelledError
TrackedFutures now only accepts Futures that do not raise any exceptions
2025-06-05 15:58:06 +10:00
Eric
f93112dc28
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-05 15:58:06 +10:00
Eric
4da5c8c372
do not re-raise CancelledError as convertError not used in async procs 2025-06-05 15:58:06 +10:00
Eric
fa772f7ac6
re-raise CancelledError 2025-06-05 15:58:06 +10:00
Eric
139aa6eef8
readd prevention of hanging when closing process streams on windows 2025-06-05 15:58:06 +10:00
Eric
e7a9adab21
Add debugging and assertions after test run
Mostly to debug in windows
2025-06-05 15:58:06 +10:00
Eric
67719ee395
formatting 2025-06-05 15:58:05 +10:00
Eric
e648954eea
formatting 2025-06-05 15:58:05 +10:00
Eric
357840db4d
Fix process hanging after restart 2025-06-05 15:58:05 +10:00
Eric
eb77643405
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-05 15:58:05 +10:00
Eric
0a4369d0cd
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-05 15:58:04 +10:00
Eric
595e1d3fdb
Ensure started tests are torn down properly on timeout 2025-06-05 15:58:04 +10:00
Eric
b9e3e07dc1
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-05 15:58:04 +10:00
Eric
40c243a080
Colorise stdout from test runs
Adds terminal colour to [OK], [FAILED], and [Suite]

# Conflicts:
#	tests/integration/testmanager.nim
2025-06-05 15:58:04 +10:00
Eric
72d2931183
Refactor process launch
Refactor to keep a process handle so that the processes can be stopped on timeout.
2025-06-05 15:58:04 +10:00
Eric
bc5fdd49be
run tests async from start so that stop can cancel all tracked futures 2025-06-05 15:58:03 +10:00