This directory contains functional tests. These tests are executed in a Docker container. In this container there are:
- One SPIRE server
- One SPIRE agent
- Multiple workloads running in parallel
- A tool that coordinates the workloads
Each workload simply requests an SVID and waits for its TTL to expire to request a new one and then repeats the loop.
The objective is to test SPIRE under heavy load and make sure everything works as expected.
- Try very short TTLs (<5 seconds)
- Try a high number of workloads (100? 1000?)
- Verify memory consumption (i.e. no leaks) and other resources
- Verify API response time
- Validate returned SVIDs (e.g. not expired)
You can adjust several parameters in file functional/Makefile:
Configuration | Description |
---|---|
WORKLOADS | Number of workloads to run in parallel |
TIMEOUT | Total time in seconds the tests wil run |
TTL | TTL to use to register entries |
Functional tests are run with make functional
in the root directory.
Upon completion the result of each workload can be seen.
Log files are dropped in the functional/
. There will be logs for agent and server, and also one log per workload.