554 Commits

Author SHA1 Message Date
Eric
1051e464e0
Colorise stdout from test runs
Adds terminal colour to [OK], [FAILED], and [Suite]

# Conflicts:
#	tests/integration/testmanager.nim
2025-06-04 15:55:18 +10:00
Eric
ca62539e9c
Refactor process launch
Refactor to keep a process handle so that the processes can be stopped on timeout.
2025-06-04 15:55:17 +10:00
Eric
0309cfd063
run tests async from start so that stop can cancel all tracked futures 2025-06-04 15:55:17 +10:00
Eric
bd68388d2a
Add proper async exception tracking to multinodesuite 2025-06-04 15:55:17 +10:00
Eric
c1f0888096
formatting 2025-06-04 15:55:17 +10:00
Eric
fc63ee188e
clean up 2025-06-04 15:55:16 +10:00
Eric
9cd9f5e29f
increase port gap by 1000 to avoid clashes in windows 2025-06-04 15:55:16 +10:00
Eric
c51103165b
lock codex port selection in multinodesuites
Codex api/disc ports were clashing in windows because `lastUsedCodexApiPort` and `lastUsedCodeexDiscPort` were not locked when read and written, while client and provider nodes were started concurrently (async).
2025-06-04 15:55:16 +10:00
Eric
9ac24ff2fa
add test name to datadir path
avoids reusing datadirs between tests
2025-06-04 15:55:15 +10:00
Eric
c196920d20
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-06-04 15:55:15 +10:00
Eric
405eb370b3
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-06-04 15:54:29 +10:00
Eric
eb50409356
fix: hardhot not being stopped when test times out 2025-06-04 15:54:29 +10:00
Eric
43fd465ec9
Allow parallel integration tests to be disabled
Disable with `make ENABLE_PARALLEL_TESTS=0 testIntegration`
2025-06-04 15:54:28 +10:00
Eric
055744a0c7
fix: use the last used port instead of the globally defined port 2025-06-04 15:54:28 +10:00
Eric
9f83213757
Increase hardhat, codex api, and codex discovery ports for each subsequent test
Previously, each test would start with a port specified by a global const and overwritable using `define` cli flag. This seems to be causing some port clashes that `nextFreePort` is not picking up. Instead of relying on `nextFreePort`, do not reuse port numbers for any of the tests.
2025-06-04 15:54:28 +10:00
Eric
b1fe15f6ac
enable debug logs for testpurchasing since the failure in ci 2025-06-04 15:54:28 +10:00
Eric
9cc5baef09
fix waiting for hardhat node process exit on windows 2025-06-04 15:54:28 +10:00
Eric
6d9cac3892
handle cancellations for race and allFutures 2025-06-04 15:54:27 +10:00
Eric
5ddccb6523
fix hardhat running on windows
Solution was two-fold:
1. Run the hardhat.cmd script instead of hardhat
2. Use the absolute path to the script executable instead of relative to the working directory
2025-06-04 15:54:27 +10:00
Eric
bf3775270a
Bubble errors from hardhat start
- bubble errors from hardhatprocess.start (instead of just logging)
- push raises: [] in all nodeprocess procs/methods to avoid leaking `Exception` exception types in method overrides
2025-06-04 15:54:27 +10:00
Eric
09ccdfaa2b
nil check hardhat process before stopping 2025-06-04 15:54:27 +10:00
Eric
809558e9a7
fix exit status 2025-06-04 15:54:26 +10:00
Eric
a6214d693b
indicate with exit code 1 if the tests failed 2025-06-04 15:54:26 +10:00
Eric
e8d28499b6
fix: pass show continuous updates into test manager instance 2025-06-04 15:54:26 +10:00
Eric
034bbc7672
undo changes done for CI debugging 2025-06-04 15:50:47 +10:00
Eric
b20b12a232
Back off port inc in the hopes that this is causing issues with CI 2025-06-04 15:49:17 +10:00
Eric
a7fd01c3de
formatting
trying to make nph happy
2025-06-04 15:49:17 +10:00
Eric
910af93dab
formatting 2025-06-04 15:49:16 +10:00
Eric
985d1243be
clean up 2025-06-04 15:49:16 +10:00
Eric
d2be32f7b0
use tracked futures for showContinuousStatusUpdates 2025-06-04 15:49:16 +10:00
Eric
d0c3da654c
formatting 2025-06-04 15:49:16 +10:00
Eric
13ad7d0014
format info blurbs 2025-06-04 15:49:15 +10:00
Eric
034a6ade74
allow test parameters to be set from make testIntegration command 2025-06-04 15:49:15 +10:00
Eric
3564b7afeb
DIsable continuous updates by default (for CI) 2025-06-04 15:47:41 +10:00
Eric
5f3a2b70f1
fix rebase, formatting 2025-06-04 15:47:41 +10:00
Eric
528f27245d
fix rebase 2025-06-04 15:47:40 +10:00
Eric
f1c5daad9d
Use absolute path for binary when checking for existence 2025-06-04 15:47:40 +10:00
Eric
6987aefc84
fail early with message when hardhat binary not found
# Conflicts:
#	tests/integration/hardhatprocess.nim
2025-06-04 15:47:40 +10:00
Eric
7a855f0f2b
remove unneeded sleep 2025-06-04 15:47:40 +10:00
Eric
e35fe07c2a
make onoutputline callback gcsafe 2025-06-04 15:47:40 +10:00
Eric
0ab4ec2678
increase port distance per test run 2025-06-04 15:47:40 +10:00
Eric
44537f8285
add constructor param for continuous status update in terminal
# Conflicts:
#	tests/testIntegration.nim
2025-06-04 15:47:40 +10:00
Eric
b58d4c6aef
fix nodeprocess not exiting 2025-06-04 15:47:39 +10:00
Eric
a83142bfc2
ensure timeouts work
Work around the AsyncProcess timeout not working correctly
2025-06-04 15:47:39 +10:00
Eric
7dfd5e5f3e
continually show test status updates
allows user to know which tests are still running
2025-06-04 15:47:39 +10:00
Eric
77b0bbc11e
cleanup
# Conflicts:
#	tests/testIntegration.nim
2025-06-04 15:47:39 +10:00
Eric
0c55913ff9
lock hardhat start to avoid intermittent start failures 2025-06-04 15:47:39 +10:00
Eric
aa1a52eb4f
clean up 2025-06-04 15:47:39 +10:00
Eric
f3f9e6c791
print hardhat testmanager errors and hardhat stdout when there is an error starting hardhat 2025-06-04 15:47:38 +10:00
Eric
90bb75bb85
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-06-04 15:47:38 +10:00