mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
tests/int: remove $ROOTLESS, use $EUID
The variable $ROOTLESS, as set by helpers.bash and used in many places, provides the same value as $EUID which is always set by bash. Since we are using bash, we can rely on $EUID being omnipresent. Modify all uses accordingly, and since the value is known to be a number, omit the quoting. Similarly, replace all uses of $(id -u) to $EUID. Do some trivial cleanups along the way, such as - simplify some if A; then B; to A && B; - do not use [[ instead of [ where not necessary. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
@@ -37,7 +37,7 @@ function setup() {
|
||||
}
|
||||
|
||||
@test "runc create (limits + cgrouppath + permission on the cgroup dir) succeeds" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
set_resources_limit
|
||||
@@ -46,11 +46,11 @@ function setup() {
|
||||
[ "$status" -eq 0 ]
|
||||
if [ -v CGROUP_V2 ]; then
|
||||
if [ -v RUNC_USE_SYSTEMD ]; then
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
if [ $EUID -eq 0 ]; then
|
||||
check_cgroup_value "cgroup.controllers" "$(cat /sys/fs/cgroup/machine.slice/cgroup.controllers)"
|
||||
else
|
||||
# Filter out hugetlb and misc as systemd is unable to delegate them.
|
||||
check_cgroup_value "cgroup.controllers" "$(sed -e 's/ hugetlb//' -e 's/ misc//' </sys/fs/cgroup/user.slice/user-"$(id -u)".slice/cgroup.controllers)"
|
||||
check_cgroup_value "cgroup.controllers" "$(sed -e 's/ hugetlb//' -e 's/ misc//' </sys/fs/cgroup/user.slice/user-${EUID}.slice/cgroup.controllers)"
|
||||
fi
|
||||
else
|
||||
check_cgroup_value "cgroup.controllers" "$(cat /sys/fs/cgroup/cgroup.controllers)"
|
||||
@@ -59,7 +59,7 @@ function setup() {
|
||||
}
|
||||
|
||||
@test "runc exec (limits + cgrouppath + permission on the cgroup dir) succeeds" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
set_resources_limit
|
||||
@@ -133,7 +133,7 @@ function setup() {
|
||||
|
||||
@test "runc run (blkio weight)" {
|
||||
requires cgroups_v2
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
update_config '.linux.resources.blockIO |= {"weight": 750}'
|
||||
@@ -270,7 +270,7 @@ function setup() {
|
||||
|
||||
@test "runc run (cgroupv2 mount inside container)" {
|
||||
requires cgroups_v2
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
|
||||
@@ -305,10 +305,8 @@ function setup() {
|
||||
}
|
||||
|
||||
@test "runc exec should refuse a paused container" {
|
||||
if [[ "$ROOTLESS" -ne 0 ]]; then
|
||||
requires rootless_cgroup
|
||||
fi
|
||||
requires cgroups_freezer
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
|
||||
@@ -324,10 +322,8 @@ function setup() {
|
||||
}
|
||||
|
||||
@test "runc exec --ignore-paused" {
|
||||
if [[ "$ROOTLESS" -ne 0 ]]; then
|
||||
requires rootless_cgroup
|
||||
fi
|
||||
requires cgroups_freezer
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
|
||||
@@ -349,9 +345,7 @@ function setup() {
|
||||
}
|
||||
|
||||
@test "runc run/create should warn about a non-empty cgroup" {
|
||||
if [[ "$ROOTLESS" -ne 0 ]]; then
|
||||
requires rootless_cgroup
|
||||
fi
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
|
||||
@@ -371,9 +365,7 @@ function setup() {
|
||||
|
||||
@test "runc run/create should refuse pre-existing frozen cgroup" {
|
||||
requires cgroups_freezer
|
||||
if [[ "$ROOTLESS" -ne 0 ]]; then
|
||||
requires rootless_cgroup
|
||||
fi
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ function teardown() {
|
||||
# XXX(@kolyshkin): currently this test does not handle rootless when
|
||||
# fs cgroup driver is used, because in this case cgroup (with a
|
||||
# predefined name) is created by tests/rootless.sh, not by runc.
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires systemd
|
||||
[ $EUID -ne 0 ] && requires systemd
|
||||
set_resources_limit
|
||||
|
||||
runc run -d --console-socket "$CONSOLE_SOCKET" testbusyboxdelete
|
||||
|
||||
@@ -17,7 +17,7 @@ function teardown() {
|
||||
runc run test_dev
|
||||
[ "$status" -eq 0 ]
|
||||
|
||||
if [[ "$ROOTLESS" -ne 0 ]]; then
|
||||
if [ $EUID -ne 0 ]; then
|
||||
[[ "${lines[0]}" =~ "crw-rw-rw".+"1".+"65534".+"65534".+"5,".+"0".+"/dev/tty" ]]
|
||||
else
|
||||
[[ "${lines[0]}" =~ "crw-rw-rw".+"1".+"0".+"0".+"5,".+"0".+"/dev/tty" ]]
|
||||
|
||||
@@ -117,7 +117,7 @@ function teardown() {
|
||||
|
||||
@test "runc exec --user" {
|
||||
# --user can't work in rootless containers that don't have idmap.
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_idmap
|
||||
[ $EUID -ne 0 ] && requires rootless_idmap
|
||||
|
||||
# run busybox detached
|
||||
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
|
||||
|
||||
@@ -43,9 +43,6 @@ ARCH=$(uname -m)
|
||||
# Seccomp agent socket.
|
||||
SECCCOMP_AGENT_SOCKET="$BATS_TMPDIR/seccomp-agent.sock"
|
||||
|
||||
# Check if we're in rootless mode.
|
||||
ROOTLESS=$(id -u)
|
||||
|
||||
# Wrapper for runc.
|
||||
function runc() {
|
||||
run __runc "$@"
|
||||
@@ -67,12 +64,12 @@ function __runc() {
|
||||
# Wrapper for runc spec.
|
||||
function runc_spec() {
|
||||
local rootless=""
|
||||
[ "$ROOTLESS" -ne 0 ] && rootless="--rootless"
|
||||
[ $EUID -ne 0 ] && rootless="--rootless"
|
||||
|
||||
runc spec $rootless
|
||||
|
||||
# Always add additional mappings if we have idmaps.
|
||||
if [[ "$ROOTLESS" -ne 0 && "$ROOTLESS_FEATURES" == *"idmap"* ]]; then
|
||||
if [[ $EUID -ne 0 && "$ROOTLESS_FEATURES" == *"idmap"* ]]; then
|
||||
runc_rootless_idmap
|
||||
fi
|
||||
}
|
||||
@@ -112,8 +109,8 @@ function init_cgroup_paths() {
|
||||
# For rootless + systemd case, controllers delegation is required,
|
||||
# so check the controllers that the current user has, not the top one.
|
||||
# NOTE: delegation of cpuset requires systemd >= 244 (Fedora >= 32, Ubuntu >= 20.04).
|
||||
if [[ "$ROOTLESS" -ne 0 && -v RUNC_USE_SYSTEMD ]]; then
|
||||
controllers="/sys/fs/cgroup/user.slice/user-$(id -u).slice/user@$(id -u).service/cgroup.controllers"
|
||||
if [[ $EUID -ne 0 && -v RUNC_USE_SYSTEMD ]]; then
|
||||
controllers="/sys/fs/cgroup/user.slice/user-${UID}.slice/user@${UID}.service/cgroup.controllers"
|
||||
fi
|
||||
|
||||
# "pseudo" controllers do not appear in /sys/fs/cgroup/cgroup.controllers.
|
||||
@@ -188,7 +185,7 @@ function remove_parent() {
|
||||
function set_parent_systemd_properties() {
|
||||
[ ! -v SD_PARENT_NAME ] && return
|
||||
local user=""
|
||||
[ "$(id -u)" != "0" ] && user="--user"
|
||||
[ $EUID -ne 0 ] && user="--user"
|
||||
systemctl set-property $user "$SD_PARENT_NAME" "$@"
|
||||
}
|
||||
|
||||
@@ -213,12 +210,12 @@ function set_cgroups_path() {
|
||||
local rnd="$RANDOM"
|
||||
if [ -v RUNC_USE_SYSTEMD ]; then
|
||||
SD_UNIT_NAME="runc-cgroups-integration-test-${rnd}.scope"
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
if [ $EUID -eq 0 ]; then
|
||||
REL_PARENT_PATH="/machine.slice${pod_slice}"
|
||||
OCI_CGROUPS_PATH="machine${dash_pod}.slice:runc-cgroups:integration-test-${rnd}"
|
||||
else
|
||||
REL_PARENT_PATH="/user.slice/user-$(id -u).slice/user@$(id -u).service/machine.slice${pod_slice}"
|
||||
# OCI path doesn't contain "/user.slice/user-$(id -u).slice/user@$(id -u).service/" prefix
|
||||
REL_PARENT_PATH="/user.slice/user-${UID}.slice/user@${UID}.service/machine.slice${pod_slice}"
|
||||
# OCI path doesn't contain "/user.slice/user-${UID}.slice/user@${UID}.service/" prefix
|
||||
OCI_CGROUPS_PATH="machine${dash_pod}.slice:runc-cgroups:integration-test-${rnd}"
|
||||
fi
|
||||
REL_CGROUPS_PATH="$REL_PARENT_PATH/$SD_UNIT_NAME"
|
||||
@@ -271,7 +268,7 @@ function check_systemd_value() {
|
||||
local expected="$2"
|
||||
local expected2="${3:-}"
|
||||
local user=""
|
||||
[ "$(id -u)" != "0" ] && user="--user"
|
||||
[ $EUID -ne 0 ] && user="--user"
|
||||
|
||||
current=$(systemctl show $user --property "$source" "$SD_UNIT_NAME" | awk -F= '{print $2}')
|
||||
echo "systemd $source: current $current !? $expected $expected2"
|
||||
@@ -360,12 +357,12 @@ function requires() {
|
||||
fi
|
||||
;;
|
||||
root)
|
||||
if [ "$ROOTLESS" -ne 0 ]; then
|
||||
if [ $EUID -ne 0 ]; then
|
||||
skip_me=1
|
||||
fi
|
||||
;;
|
||||
rootless)
|
||||
if [ "$ROOTLESS" -eq 0 ]; then
|
||||
if [ $EUID -eq 0 ]; then
|
||||
skip_me=1
|
||||
fi
|
||||
;;
|
||||
|
||||
@@ -11,11 +11,11 @@ function teardown() {
|
||||
}
|
||||
|
||||
@test "runc pause and resume" {
|
||||
if [[ "$ROOTLESS" -ne 0 ]]; then
|
||||
requires cgroups_freezer
|
||||
if [ $EUID -ne 0 ]; then
|
||||
requires rootless_cgroup
|
||||
set_cgroups_path
|
||||
fi
|
||||
requires cgroups_freezer
|
||||
|
||||
# run busybox detached
|
||||
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
|
||||
@@ -39,11 +39,11 @@ function teardown() {
|
||||
}
|
||||
|
||||
@test "runc pause and resume with nonexist container" {
|
||||
if [[ "$ROOTLESS" -ne 0 ]]; then
|
||||
requires cgroups_freezer
|
||||
if [ $EUID -ne 0 ]; then
|
||||
requires rootless_cgroup
|
||||
set_cgroups_path
|
||||
fi
|
||||
requires cgroups_freezer
|
||||
|
||||
# run test_busybox detached
|
||||
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
|
||||
|
||||
@@ -62,7 +62,7 @@ function teardown() {
|
||||
|
||||
@test "ps after the container stopped" {
|
||||
# ps requires cgroups
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
set_cgroups_path
|
||||
|
||||
# start busybox detached
|
||||
|
||||
@@ -36,8 +36,7 @@ function teardown() {
|
||||
@test "runc run --keep (check cgroup exists)" {
|
||||
# for systemd driver, the unit's cgroup path will be auto removed if container's all processes exited
|
||||
requires no_systemd
|
||||
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ function teardown() {
|
||||
|
||||
@test "runc run detached ({u,g}id != 0)" {
|
||||
# cannot start containers as another user in rootless setup without idmap
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_idmap
|
||||
[ $EUID -ne 0 ] && requires rootless_idmap
|
||||
|
||||
# replace "uid": 0 with "uid": 1000
|
||||
# and do a similar thing for gid.
|
||||
|
||||
@@ -21,7 +21,7 @@ function teardown() {
|
||||
|
||||
@test "runc run ({u,g}id != 0)" {
|
||||
# cannot start containers as another user in rootless setup without idmap
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_idmap
|
||||
[ $EUID -ne 0 ] && requires rootless_idmap
|
||||
|
||||
# replace "uid": 0 with "uid": 1000
|
||||
# and do a similar thing for gid.
|
||||
|
||||
@@ -34,7 +34,7 @@ function teardown() {
|
||||
@test "runc run [tty owner]" {
|
||||
# tty chmod is not doable in rootless containers without idmap.
|
||||
# TODO: this can be made as a change to the gid test.
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_idmap
|
||||
[ $EUID -ne 0 ] && requires rootless_idmap
|
||||
|
||||
# Replace sh script with stat.
|
||||
# shellcheck disable=SC2016
|
||||
@@ -50,7 +50,7 @@ function teardown() {
|
||||
|
||||
@test "runc run [tty owner] ({u,g}id != 0)" {
|
||||
# tty chmod is not doable in rootless containers without idmap.
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_idmap
|
||||
[ $EUID -ne 0 ] && requires rootless_idmap
|
||||
|
||||
# replace "uid": 0 with "uid": 1000
|
||||
# and do a similar thing for gid.
|
||||
@@ -100,7 +100,7 @@ function teardown() {
|
||||
@test "runc exec [tty owner]" {
|
||||
# tty chmod is not doable in rootless containers without idmap.
|
||||
# TODO: this can be made as a change to the gid test.
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_idmap
|
||||
[ $EUID -ne 0 ] && requires rootless_idmap
|
||||
|
||||
# run busybox detached
|
||||
runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
|
||||
@@ -119,7 +119,7 @@ function teardown() {
|
||||
|
||||
@test "runc exec [tty owner] ({u,g}id != 0)" {
|
||||
# tty chmod is not doable in rootless containers without idmap.
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_idmap
|
||||
[ $EUID -ne 0 ] && requires rootless_idmap
|
||||
|
||||
# replace "uid": 0 with "uid": 1000
|
||||
# and do a similar thing for gid.
|
||||
|
||||
@@ -21,7 +21,7 @@ function setup() {
|
||||
# Tests whatever limits are (more or less) common between cgroup
|
||||
# v1 and v2: memory/swap, pids, and cpuset.
|
||||
@test "update cgroup v1/v2 common limits" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
requires cgroups_memory cgroups_pids cgroups_cpuset
|
||||
init_cgroup_paths
|
||||
|
||||
@@ -259,7 +259,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "update cgroup cpu limits" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
# run a few busyboxes detached
|
||||
runc run -d --console-socket "$CONSOLE_SOCKET" test_update
|
||||
@@ -333,7 +333,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "set cpu period with no quota" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
update_config '.linux.resources.cpu |= { "period": 1000000 }'
|
||||
|
||||
@@ -344,7 +344,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "set cpu period with no quota (invalid period)" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
update_config '.linux.resources.cpu |= { "period": 100 }'
|
||||
|
||||
@@ -353,7 +353,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "set cpu quota with no period" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
update_config '.linux.resources.cpu |= { "quota": 5000 }'
|
||||
|
||||
@@ -363,7 +363,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "update cpu period with no previous period/quota set" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
update_config '.linux.resources.cpu |= {}'
|
||||
|
||||
@@ -377,7 +377,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "update cpu quota with no previous period/quota set" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
update_config '.linux.resources.cpu |= {}'
|
||||
|
||||
@@ -392,7 +392,7 @@ EOF
|
||||
|
||||
@test "update cpu period in a pod cgroup with pod limit set" {
|
||||
requires cgroups_v1
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
set_cgroups_path "pod_${RANDOM}"
|
||||
|
||||
@@ -426,7 +426,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "update cgroup v2 resources via unified map" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
requires cgroups_v2
|
||||
|
||||
runc run -d --console-socket "$CONSOLE_SOCKET" test_update
|
||||
@@ -455,7 +455,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "update cpuset parameters via resources.CPU" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
requires smp cgroups_cpuset
|
||||
|
||||
local AllowedCPUs='AllowedCPUs' AllowedMemoryNodes='AllowedMemoryNodes'
|
||||
@@ -511,7 +511,7 @@ EOF
|
||||
|
||||
@test "update cpuset parameters via v2 unified map" {
|
||||
# This test assumes systemd >= v244
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
requires cgroups_v2 smp cgroups_cpuset
|
||||
|
||||
update_config ' .linux.resources.unified |= {
|
||||
@@ -558,7 +558,7 @@ EOF
|
||||
}
|
||||
|
||||
@test "update rt period and runtime" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
requires cgroups_v1 cgroups_rt no_systemd
|
||||
|
||||
local cgroup_cpu="${CGROUP_CPU_BASE_PATH}/${REL_CGROUPS_PATH}"
|
||||
@@ -678,8 +678,8 @@ EOF
|
||||
}
|
||||
|
||||
@test "update paused container" {
|
||||
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
|
||||
requires cgroups_freezer
|
||||
[ $EUID -ne 0 ] && requires rootless_cgroup
|
||||
|
||||
# Run the container in the background.
|
||||
runc run -d --console-socket "$CONSOLE_SOCKET" test_update
|
||||
|
||||
@@ -15,7 +15,7 @@ function setup() {
|
||||
mkdir -p rootfs/{proc,sys,tmp}
|
||||
mkdir -p rootfs/tmp/mount-{1,2}
|
||||
|
||||
if [ "$ROOTLESS" -eq 0 ]; then
|
||||
if [ $EUID -eq 0 ]; then
|
||||
update_config ' .linux.namespaces += [{"type": "user"}]
|
||||
| .linux.uidMappings += [{"hostID": 100000, "containerID": 0, "size": 65534}]
|
||||
| .linux.gidMappings += [{"hostID": 100000, "containerID": 0, "size": 65534}] '
|
||||
|
||||
Reference in New Issue
Block a user