Go to file
benbierens 365032978b
better status logging, faster revisiting
2024-11-01 11:14:07 +01:00
.github/workflows Removes rest server 2024-09-12 14:42:19 +02:00
Framework Merge branch 'master' into feature/block-retransmit 2024-10-22 12:54:22 +02:00
ProjectPlugins Implements folder-storing 2024-10-30 11:09:13 +01:00
Tests Loops in metrics from Giuliano's async profiler 2024-10-24 16:10:07 +02:00
Tools better status logging, faster revisiting 2024-11-01 11:14:07 +01:00
docker Bumps containers to dotnet 8.0 2024-10-10 11:54:42 +02:00
docs Bumps containers to dotnet 8.0 2024-10-10 11:54:42 +02:00
.dockerignore setup 2024-08-21 11:00:47 +02:00
.gitattributes Add .gitattributes for line endings in .bat, .cmd and .sh scripts (#103) 2024-10-05 23:08:49 +03:00
.gitignore Using raw version of purchase-status call. API doesn't line up 2024-04-01 21:09:24 +02:00
CONTRIBUTINGPLUGINS.MD Overdue readme updates 2024-03-27 15:01:32 +01:00
CONTRIBUTINGTESTS.MD fix Continous typo 2023-10-26 20:27:44 +08:00
README.md Bumps containers to dotnet 8.0 2024-10-10 11:54:42 +02:00
codexnode-manifest.yml Use codexstorage/nim-codex Docker images 2023-05-30 22:45:41 +03:00
cs-codex-dist-testing.sln nice csv outputs 2024-10-18 08:45:54 +02:00

README.md

Distributed System Tests

This project allows you to write tools and tests that control and interact with container-based applications to form a distributed system in a controlled, reproducible environment.

Dotnet: v8.0
Kubernetes: v1.25.4
Dotnet-kubernetes SDK: v10.1.4 https://github.com/kubernetes-client/csharp
Nethereum: v4.14.0

Currently, this project is mainly used for distributed testing of Nim-Codex. However, its plugin-structure allows for other projects to be on-boarded (relatively) easily. (See 'contribute a plugin`.)

Tests/DistTestCore

Library with generic distributed-testing functionality. Uses NUnit3. Reference this project to build unit-test style scenarios: setup, run test, teardown. The DistTestCore responds to the following env-vars:

  • LOGPATH = Path where log files will be written.
  • DATAFILEPATH = Path where (temporary) data files will be stored.
  • ALWAYS_LOGS = When set, DistTestCore will always download all container logs at the end of a test run. By default, logs are only downloaded on test failure.

Tests/CodexTests and Tests/CodexLongTests

These are test assemblies that use DistTestCore to perform tests against transient Codex nodes. Read more HERE

Tests/ContinuousTests

A console application that runs tests in an endless loop against a persistent deployment of Codex nodes. Read more HERE

Tools/CodexNetDeployer

A console application that can deploy Codex nodes. Read more HERE

Framework architecture

The framework is designed to be extended by project-specific plugins. These plugins contribute functionality and abstractions to the framework. Users of the framework use these to perform tasks such as testing and deploying. Architecture

How to contribute a plugin

If you want to add support for your project to the testing framework, follow the steps HERE

How to contribute tests

If you want to contribute tests, please follow the steps HERE.

Run the tests on your machine

Creating tests is much easier when you can debug them on your local system. This is possible, but requires some set-up. If you want to be able to run the tests on your local system, follow the steps HERE. Please note that tests which require explicit node locations cannot be executed locally. (Well, you could comment out the location statements and then it would probably work. But that might impact the validity/usefulness of the test.)

Missing functionality

Surely the test-infra doesn't do everything we'll need it to do. If you're running into a limitation and would like to request a new feature for the test-infra, please create an issue.