cs-codex-dist-tests/Tests/CodexContinuousTests
benbierens ad05dc07f0
wip report for november
2023-12-05 08:31:28 +01:00
..
Tests Adds test for routing table checks. 2023-11-12 10:36:48 +01:00
reports wip report for november 2023-12-05 08:31:28 +01:00
CodexContinuousTests.csproj
Configuration.cs Target duration now supports timespan string format. 2023-11-17 14:51:32 +01:00
ContinuousTest.cs Cleanup 2023-10-04 09:36:59 +02:00
ContinuousTestRunner.cs Target duration now supports timespan string format. 2023-11-17 14:51:32 +01:00
ElasticSearchLogDownloader.cs Cleanup of kubernetesWorkflow assembly. 2023-11-12 10:07:23 +01:00
EntryPointFactory.cs Bumps k8s operation timeout for continuous test runner. 2023-10-04 09:26:11 +02:00
NodeRunner.cs Cleanup of kubernetesWorkflow assembly. 2023-11-12 10:07:23 +01:00
Program.cs Catching exceptions in task-factory. 2023-11-14 13:28:50 +01:00
README.md Updates READMEs 2023-09-29 10:19:59 +02:00
SingleTestRun.cs Catching exceptions in task-factory. 2023-11-14 13:28:50 +01:00
StartupChecker.cs Enable debug logging from single environment variable or static field. 2023-11-08 09:24:39 +01:00
TaskFactory.cs Catching exceptions in task-factory. 2023-11-14 13:28:50 +01:00
TestFactory.cs
TestHandle.cs
TestLoop.cs Catching exceptions in task-factory. 2023-11-14 13:28:50 +01:00
TestMomentAttribute.cs
deploy-and-run.sh Locks up deploy-and-run script after tests are started. 2023-11-01 10:27:31 +01:00
run.sh Automate Continuous Tests using GitHub Actions (#69) 2023-11-06 15:09:51 +02:00

README.md

Codex Continuous Tests

This CLI tool runs tests in an endless loop, using a network of Codex nodes in a kubernetes cluster. Run dotnet run -- --help to view all CLI options.

Choosing tests

By default, all tests in the CodexContinuousTests/Tests folder will be used. If you want to limit your test run to a subset of tests, please delete or disable the other test code files. TODO: We'd like a CLI option for selecting tests. Similar to dotnet test --filter, maybe?

Where do I get a codex-deployment.json

See THIS

Output

The test runner will produce a folder with all the test logs. They are sorted by timestamp and reflect the names of the tests. When a test fails, the log file for that specific test will be postfixed with _FAILED.

Pass and fail conditions

While individual tests can pass or fail for a number of times and/or over a length of time as configurable with the CLI argument, the test run entirely is not considered passed or failed until either of the following conditions are met:

  1. Failed: The number of test failures has reached the specifid number, or the test runner was manually cancelled.
  2. Passed: The failed condition was not reached within the time specified by the target-duration option.

Transient nodes

The continuous tests runner is designed to use a network of Codex nodes deployed in a kubernetes cluster. The runner will not influence or manage the lifecycle of the nodes in this deployment. However, some test cases require transient nodes. A transient node is a node started and managed by the test runner on behalf of a specific test. The runner facilitates the tests to start and stop transient nodes, as well as bootstrap those nodes against (permanent) nodes from the deployed network. The test runner makes sure that the transient nodes use the same docker image as the permanent nodes, to avoid version conflicts. However, the image used for transient nodes can be overwritten by setting the CODEXDOCKERIMAGE environment variable. The use of a local Codex repository for building override images is not supported for transient nodes.