Skip to content

Commit

Permalink
Merge pull request opencontainers#3826 from kolyshkin/ps-rootless
Browse files Browse the repository at this point in the history
tests/int/ps: enable for rootless
  • Loading branch information
lifubang authored Jul 17, 2023
2 parents c99e6c6 + f92057a commit b338acc
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 47 deletions.
7 changes: 6 additions & 1 deletion tests/integration/helpers.bash
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,12 @@ function set_parent_systemd_properties() {
}

# Randomize cgroup path(s), and update cgroupsPath in config.json.
# This function sets a few cgroup-related variables.
# This function also sets a few cgroup-related variables that are used
# by other cgroup-related functions.
#
# If this function is not called (and cgroupsPath is not set in config),
# runc uses default container's cgroup path derived from the container's name
# (except for rootless containers, that have no default cgroup path).
#
# Optional parameter $1 is a pod/parent name. If set, a parent/pod cgroup is
# created, and variables $REL_PARENT_PATH and $SD_PARENT_NAME can be used to
Expand Down
61 changes: 15 additions & 46 deletions tests/integration/ps.bats
Original file line number Diff line number Diff line change
Expand Up @@ -3,75 +3,44 @@
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" {
# ps is not supported, it requires cgroups
requires root

# start busybox detached
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
[ "$status" -eq 0 ]

# check state
testcontainer test_busybox running

runc ps test_busybox
[ "$status" -eq 0 ]
[[ ${lines[0]} =~ UID\ +PID\ +PPID\ +C\ +STIME\ +TTY\ +TIME\ +CMD+ ]]
[[ "${lines[1]}" == *"$(id -un 2>/dev/null)"*[0-9]* ]]
[[ "$output" =~ UID\ +PID\ +PPID\ +C\ +STIME\ +TTY\ +TIME\ +CMD+ ]]
[[ "$output" == *"$(id -un 2>/dev/null)"*[0-9]* ]]
}

@test "ps -f json" {
# ps is not supported, it requires cgroups
requires root

# start busybox detached
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
[ "$status" -eq 0 ]

# check state
testcontainer test_busybox running

runc ps -f json test_busybox
[ "$status" -eq 0 ]
[[ ${lines[0]} =~ [0-9]+ ]]
[[ "$output" =~ [0-9]+ ]]
}

@test "ps -e -x" {
# ps is not supported, it requires cgroups
requires root

# start busybox detached
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
[ "$status" -eq 0 ]

# check state
testcontainer test_busybox running

runc ps test_busybox -e -x
[ "$status" -eq 0 ]
[[ ${lines[0]} =~ \ +PID\ +TTY\ +STAT\ +TIME\ +COMMAND+ ]]
[[ "${lines[1]}" =~ [0-9]+ ]]
[[ "$output" =~ \ +PID\ +TTY\ +STAT\ +TIME\ +COMMAND+ ]]
[[ "$output" =~ [0-9]+ ]]
}

@test "ps after the container stopped" {
# ps requires cgroups
[ $EUID -ne 0 ] && requires rootless_cgroup
set_cgroups_path

# start busybox detached
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
[ "$status" -eq 0 ]

# check state
testcontainer test_busybox running

runc ps test_busybox
[ "$status" -eq 0 ]

Expand Down

0 comments on commit b338acc

Please sign in to comment.