46 Commits

Author SHA1 Message Date
Eric
2d8783f49e
disable all logging to see if windows passes 2025-11-04 20:16:03 +11:00
Eric
c22cc10d48
Move test assertions at end of start so that test.status can be set after timeout 2025-11-04 20:16:03 +11:00
Eric
828fcf6edb
Add wait to stdout/stderr stream future 2025-11-04 20:16:02 +11:00
Eric
8eb5013b5a
fix windows issue where reading stdout/stderr hangs forever 2025-11-04 20:16:02 +11:00
Eric
6d1b924c41
ensure runTests doesn't raise CancelledError
TrackedFutures now only accepts Futures that do not raise any exceptions
2025-11-04 20:16:02 +11:00
Eric
338ee181d3
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-11-04 20:16:02 +11:00
Eric
1dc20de0c2
Add debugging and assertions after test run
Mostly to debug in windows
2025-11-04 20:16:01 +11:00
Eric
dff1ca961f
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-11-04 20:16:01 +11:00
Eric
a1ea23007f
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-11-04 20:16:00 +11:00
Eric
e83a692b03
Ensure started tests are torn down properly on timeout 2025-11-04 20:15:16 +11:00
Eric
ff62751cce
Colorise stdout from test runs
Adds terminal colour to [OK], [FAILED], and [Suite]

# Conflicts:
#	tests/integration/testmanager.nim
2025-11-04 20:12:44 +11:00
Eric
53a3a2ae18
Refactor process launch
Refactor to keep a process handle so that the processes can be stopped on timeout.
2025-11-04 20:12:44 +11:00
Eric
8a8030c298
run tests async from start so that stop can cancel all tracked futures 2025-11-04 20:12:44 +11:00
Eric
afe31d7319
clean up 2025-11-04 20:12:42 +11:00
Eric
7c2254a249
increase port gap by 1000 to avoid clashes in windows 2025-11-04 20:12:11 +11:00
Eric
1188360197
update Make flag to simply debug
DEBUG -> enables DebugCodexNodes, DebugTestHarness, and ShowContinuousStatusUpdates
DEBUG_HARDHAT -> enables DebugHardhat
PARALLEL -> enables EnableParallelTests

Additionally, when DEBUG is enabled, all integration tests debug configs are enabled for Codex nodes, the Codex node output is printed with the test output (not interleaved), and the Codex node output is logged to file in `tests/integrations/logs/<starttime>__IntegrationTests/<integration_test_name>/<suite_name>/<testname>/<role>_<idx>.log`.
When DEBUG_HARDHAT is enabled, all hardhat output is printed with the test output (not interleaved), and the output is also written to a log file in `tests/integrations/logs/<starttime>__IntegrationTests/<integration_test_name>/hardhat.log
2025-11-04 20:12:11 +11:00
Eric
33c33d5210
cancel processes soon
Windows really does not like to terminate processes, so if we try to cancel the process, we will hang in Windows.
2025-11-04 20:12:11 +11:00
Eric
84589ebd64
fix: hardhot not being stopped when test times out 2025-11-04 20:12:10 +11:00
Eric
0b25406241
handle cancellations for race and allFutures 2025-11-04 20:10:34 +11:00
Eric
d3b5d3b1e6
nil check hardhat process before stopping 2025-11-04 20:08:18 +11:00
Eric
b73c91b129
fix exit status 2025-11-04 20:08:18 +11:00
Eric
91f3f85ccd
indicate with exit code 1 if the tests failed 2025-11-04 20:07:48 +11:00
Eric
477c1409d1
fix: pass show continuous updates into test manager instance 2025-11-04 20:07:48 +11:00
Eric
d60c6f7ff1
undo changes done for CI debugging 2025-11-04 20:06:47 +11:00
Eric
84d3d5ad9a
Back off port inc in the hopes that this is causing issues with CI 2025-11-04 20:06:27 +11:00
Eric
ace3644f2d
use tracked futures for showContinuousStatusUpdates 2025-11-04 20:02:28 +11:00
Eric
0e9b42fa39
formatting 2025-11-04 20:02:28 +11:00
Eric
cb0b3023c8
remove unneeded sleep 2025-11-04 20:02:26 +11:00
Eric
63e4236ee0
increase port distance per test run 2025-11-04 20:02:26 +11:00
Eric
37d5443be6
add constructor param for continuous status update in terminal
# Conflicts:
#	tests/testIntegration.nim
2025-11-04 20:02:26 +11:00
Eric
431cd524c2
ensure timeouts work
Work around the AsyncProcess timeout not working correctly
2025-11-04 20:02:25 +11:00
Eric
69ad29a9b8
continually show test status updates
allows user to know which tests are still running
2025-11-04 20:02:25 +11:00
Eric
aeb651fcb7
cleanup
# Conflicts:
#	tests/testIntegration.nim
2025-11-04 20:02:25 +11:00
Eric
4b3dc2bf83
lock hardhat start to avoid intermittent start failures 2025-11-04 20:02:25 +11:00
Eric
92ee0cb81c
clean up 2025-11-04 20:02:25 +11:00
Eric
110764f7f4
print hardhat testmanager errors and hardhat stdout when there is an error starting hardhat 2025-11-04 20:02:25 +11:00
Eric
3ede65f661
hang manager off IntegrationTest, cleanup
- add a TestManager property to IntegrationTest, so manager does not need to be passed into all functions
- cleanup:
  - remove unneeded stopHardhat function
  - add hardhat instance to manager outside of startHardhat
2025-11-04 20:02:24 +11:00
Eric
8904044fc2
reinstate removed types 2025-11-04 20:02:24 +11:00
Eric
f493b4c197
Add additional logging info print outs
# Conflicts:
#	tests/integration/testcli.nim
2025-11-04 20:02:24 +11:00
Eric
6c577f3461
stop hardhat and show logs
# Conflicts:
#	tests/integration/hardhatprocess.nim
2025-11-04 20:02:24 +11:00
Eric
a2e74dc4a1
default test name to the filename of the integration test
# Conflicts:
#	tests/testIntegration.nim
2025-11-04 20:02:23 +11:00
Eric
887d6e9962
print start/finish stderr/stdout markers
# Conflicts:
#	tests/testIntegration.nim
2025-11-04 20:02:23 +11:00
Eric
525aa59fe1
clean up 2025-11-04 20:02:23 +11:00
Eric
321921894d
stdout formatting for test results
# Conflicts:
#	tests/testIntegration.nim
2025-11-04 20:02:23 +11:00
Eric
34d4f781c3
test summary formatting 2025-11-04 20:02:23 +11:00
Eric
9ef61aedc4
parallel tests running
- need to test with longer tests to ensure the parallelisation is truly happening
- is the +10 hardhat port needed?
- try with more integration tests

# Conflicts:
#	tests/integration/hardhatprocess.nim
#	tests/integration/multinodes.nim
#	tests/integration/testcli.nim
#	tests/testIntegration.nim
2025-11-04 20:02:22 +11:00