test/others: Run compression benchmark in CI

The benchmark and its five data generators otherwise remain standalone
tooling, so normal CI would not notice broken integrity checks,
statistics accounting, or compression configuration.

Add a bounded smoke run for zero, mixed, pseudorandom, text, and
ELF-derived mappings. Compare uncompressed, per-page LZ4, and 64 KiB
region images with one warmup and one measured iteration, print the
results, and fail on checksum, accounting, or configuration errors.

Run the helper tests first, then build the pycriu bindings needed by the
live benchmark. Leave the host page cache untouched and enforce a
five-minute timeout. Gate the run on compression support.

Assisted-by: Codex:GPT-5
Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
This commit is contained in:
Radostin Stoyanov 2026-07-11 12:16:23 +01:00
parent deeb0f8a82
commit 56aecf2594
3 changed files with 38 additions and 1 deletions

View file

@ -349,6 +349,15 @@ run_non_shardable_tests() {
echo "Skipping memory compression ZDTM tests"
fi
# Run a small checksum-verified compression benchmark. The full benchmark
# remains available under contrib/compression-benchmark for performance
# runs; this CI wrapper avoids dropping the host page cache.
if criu/criu check --feature compress; then
make -C test/others/compression/benchmark run
else
echo "Skipping compression benchmark test"
fi
if criu/criu check --feature compress; then
# Hugetlb mappings are not premapped. Their blocks must remain
# self-contained raw/zero fallbacks for PIE restore.