forked from google/fscrypt
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgen-cgroup-testdata
More file actions
executable file
·48 lines (39 loc) · 1.27 KB
/
gen-cgroup-testdata
File metadata and controls
executable file
·48 lines (39 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/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": <float>, "memory_limit": <int>}
# 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" <<EOF
{"cpu_quota": $cpu_quota, "memory_limit": $memory_limit}
EOF
}
generate "v2-two-cores-256m" 2.0 268435456 --cpus=2 --memory=256m
generate "v2-quarter-core-64m" 0.25 67108864 --cpus=0.25 --memory=64m
generate "v2-no-limit" null null
echo "v2 testdata generated successfully."