#!/usr/bin/env bash # # gen-cgroup-testdata - Generate cgroup testdata by running # bin/snapshot-cgroup inside Docker containers with known resource limits. # # Usage: gen-cgroup-testdata # # Prerequisites: Docker on a host running cgroup v2. # # Each testdata directory contains: # expected.json - {"cpu_quota": , "memory_limit": } # proc/ - snapshot of /proc/self/cgroup # sys/ - snapshot of cgroup control files set -euo pipefail cd "$(dirname "$0")/.." testdata="cgroup/testdata" snapshot_script="bin/snapshot-cgroup" generate() { local name="$1" cpu_quota="$2" memory_limit="$3" shift 3 local outdir="$testdata/$name" echo "Generating $name..." rm -rf "$outdir" mkdir -p "$outdir" docker run --rm \ --user "$(id -u):$(id -g)" \ "$@" \ -v "$PWD/$snapshot_script:/snapshot:ro" \ -v "$PWD/$outdir:/out" \ debian:bookworm-slim \ /snapshot /out cat > "$outdir/expected.json" <