A workbench designed to run advanced tests (integration, smoke, functional, fuzzing and performance) against our suite of dd-trace libraries.
bash
, docker
and python3.12
.
We recommend to install python3.12 via pyenv: pyenv. Pyenv is a tool for managing multiple python versions and keeping system tests dependencies isolated to their virtual environment. If you don't wish to install pyenv, instructions for downloading python 3.12 on your machine can be found below:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12 python3.12-distutils python3.12-venv python3.12-dev
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.12 get-pip.py
./build.sh -i runner
TODO
For Homebrew users :
brew install python@3.12
pip3.12 install virtualenv
Run a test according to the run documentation; note that if you're running an end to end test, you will need to build the test infrastructure according to the build documentation before you can run the test.
Tests will only run if they are not disabled; see how tests are disabled in skip-tests.md and how tests are enabled in enable-test.md. Alternatively, you can force a disabled test to execute according to the force-execute documentation.
Refer to the edit docs.
System-tests supports various scenarios for running tests; read more about the different kinds of tests that this repo covers in scenarios/README.md.
Understand the test architecture at the architectural overview.
flowchart TD
BUILDNODE[./build.sh nodejs] --> BUILT
BUILDDOTNET[./build.sh dotnet] --> BUILT
BUILDJAVA[./build.sh java] --> BUILT
BUILDGO[./build.sh golang] --> BUILT
BUILDPHP[./build.sh php] --> BUILT
BUILDPY[./build.sh python] --> BUILT
BUILDRUBY[./build.sh ruby] --> BUILT
BUILT[Build complete] --> RUNDEFAULT
RUNDEFAULT[./run.sh] -->|wait| FINISH
FINISH[Tests complete] --> LOGS
FINISH[Tests complete] --> OUTPUT
OUTPUT[Test output in bash]
LOGS[Logs directory per scenario]