mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-10 21:53:57 +08:00
19f76b66c1
runc ps requires cgroup, but all the tests but one required root. Let's fix this. 1. Add rootless cgroup requirement to setup() to avoid repetition. 2. Add set_cgroups_path to setup() for rootless containers because there is no default cgroup path. 3. Modify output checks to use $output rather than $lines because in case of rootless the first line of output contains the following warning: > runc ps may fail if you don't have the full access to cgroups 4. While at it, move the common part of every test (creating the container and making sure it's running) to setup(). Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
54 lines
1.0 KiB
Bash
54 lines
1.0 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load helpers
|
|
|
|
function setup() {
|
|
# ps requires cgroups
|
|
[ $EUID -ne 0 ] && requires rootless_cgroup
|
|
|
|
setup_busybox
|
|
|
|
# Rootless does not have default cgroup path.
|
|
[ $EUID -ne 0 ] && set_cgroups_path
|
|
|
|
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
|
|
[ "$status" -eq 0 ]
|
|
testcontainer test_busybox running
|
|
}
|
|
|
|
function teardown() {
|
|
teardown_bundle
|
|
}
|
|
|
|
@test "ps" {
|
|
runc ps test_busybox
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ UID\ +PID\ +PPID\ +C\ +STIME\ +TTY\ +TIME\ +CMD+ ]]
|
|
[[ "$output" == *"$(id -un 2>/dev/null)"*[0-9]* ]]
|
|
}
|
|
|
|
@test "ps -f json" {
|
|
runc ps -f json test_busybox
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ [0-9]+ ]]
|
|
}
|
|
|
|
@test "ps -e -x" {
|
|
runc ps test_busybox -e -x
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" =~ \ +PID\ +TTY\ +STAT\ +TIME\ +COMMAND+ ]]
|
|
[[ "$output" =~ [0-9]+ ]]
|
|
}
|
|
|
|
@test "ps after the container stopped" {
|
|
runc ps test_busybox
|
|
[ "$status" -eq 0 ]
|
|
|
|
runc kill test_busybox KILL
|
|
[ "$status" -eq 0 ]
|
|
wait_for_container 10 1 test_busybox stopped
|
|
|
|
runc ps test_busybox
|
|
[ "$status" -eq 0 ]
|
|
}
|