summaryrefslogtreecommitdiff
path: root/integrationtests/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'integrationtests/README.md')
-rw-r--r--integrationtests/README.md27
1 files changed, 24 insertions, 3 deletions
diff --git a/integrationtests/README.md b/integrationtests/README.md
index be65499..0036019 100644
--- a/integrationtests/README.md
+++ b/integrationtests/README.md
@@ -8,33 +8,54 @@ harness asserts the captured `.ior.zst` output matches expectations.
- Built `ior` binary (`mage all`)
- Root privileges or `CAP_BPF` (required for BPF tracepoint attachment)
+- Local `libbpfgo` checkout pinned to `v0.9.2-libbpf-1.5.1` and rebuilt with
+ `git -C ../libbpfgo submodule update --init --recursive && make -C ../libbpfgo libbpfgo-static`
The binary embeds its default BPF object. Set `IOR_BPF_OBJECT=/path/to/ior.bpf.o`
only when you explicitly want to override the embedded object during testing.
+The harness runs `ior` in the legacy compatibility mode that writes aggregated
+`.ior.zst` output via `-flamegraph -name <scenario>`; this is kept specifically
+for integration coverage and rollback validation.
## Running
```bash
-mage integrationTest
+env GOTOOLCHAIN=auto mage integrationTest
```
This builds everything (ior, ioworkload) and runs integration tests in parallel.
Default parallelism is `NumCPU * 2` (minimum `1`).
+Validated upgrade checks:
+
+```bash
+env GOTOOLCHAIN=auto mage world
+env GOTOOLCHAIN=auto mage integrationTest
+```
+
Tests automatically skip with `t.Skip` when not running as root.
To run serially (useful for debugging/flaky triage):
```bash
-mage integrationTestSerial
+env GOTOOLCHAIN=auto INTEGRATION_PARALLEL=1 mage integrationTest
```
Tune parallelism by setting `INTEGRATION_PARALLEL`, for example:
```bash
-INTEGRATION_PARALLEL=4 mage integrationTest
+env GOTOOLCHAIN=auto INTEGRATION_PARALLEL=4 mage integrationTest
```
+If the suite fails before tracing starts, check for these common causes:
+
+- The local `libbpfgo` checkout is not pinned to `v0.9.2-libbpf-1.5.1` or was
+ rebuilt without `git submodule update --init --recursive`.
+- `ior` was not rebuilt after pulling the compatibility fix for `-flamegraph`
+ / `-name`.
+- The run is missing root privileges, in which case the suite will skip or fail
+ before BPF attach.
+
## Structure
- `cmd/ioworkload/` — Standalone binary performing known I/O patterns