mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
tests/int: BATS_TMPDIR -> BATS_RUN_TMPDIR
It's a little known fact, but BATS_TMPDIR is just /tmp, and it is not being cleaned by bats after the test. BATS_RUN_TMPDIR (available since bats 1.2.1) is $BATS_TMPDIR/bats-run-$$ (i.e. it is per bats run and includes PID), and it is cleaned up after the test (unless --no-tmpdir-cleanup is given). Use BATS_RUN_TMPDIR for better isolation and cleanup. [v2: check for BATS_RUN_TMPDIR, effectively requiring bats >= 1.2.1] Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# bats-core v1.2.1 defines BATS_RUN_TMPDIR
|
||||||
|
if [ -z "$BATS_RUN_TMPDIR" ]; then
|
||||||
|
echo "bats >= v1.2.1 is required. Aborting." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Root directory of integration tests.
|
# Root directory of integration tests.
|
||||||
INTEGRATION_ROOT=$(dirname "$(readlink -f "$BASH_SOURCE")")
|
INTEGRATION_ROOT=$(dirname "$(readlink -f "$BASH_SOURCE")")
|
||||||
|
|
||||||
@@ -15,9 +21,9 @@ RECVTTY="${INTEGRATION_ROOT}/../../contrib/cmd/recvtty/recvtty"
|
|||||||
TESTDATA="${INTEGRATION_ROOT}/testdata"
|
TESTDATA="${INTEGRATION_ROOT}/testdata"
|
||||||
|
|
||||||
# Destinations for test containers.
|
# Destinations for test containers.
|
||||||
BUSYBOX_BUNDLE="$BATS_TMPDIR/busyboxtest"
|
BUSYBOX_BUNDLE="$BATS_RUN_TMPDIR/busyboxtest"
|
||||||
HELLO_BUNDLE="$BATS_TMPDIR/hello-world"
|
HELLO_BUNDLE="$BATS_RUN_TMPDIR/hello-world"
|
||||||
DEBIAN_BUNDLE="$BATS_TMPDIR/debiantest"
|
DEBIAN_BUNDLE="$BATS_RUN_TMPDIR/debiantest"
|
||||||
|
|
||||||
# CRIU PATH
|
# CRIU PATH
|
||||||
CRIU="$(which criu 2>/dev/null || true)"
|
CRIU="$(which criu 2>/dev/null || true)"
|
||||||
@@ -29,10 +35,10 @@ KERNEL_MINOR="${KERNEL_VERSION#$KERNEL_MAJOR.}"
|
|||||||
KERNEL_MINOR="${KERNEL_MINOR%%.*}"
|
KERNEL_MINOR="${KERNEL_MINOR%%.*}"
|
||||||
|
|
||||||
# Root state path.
|
# Root state path.
|
||||||
ROOT=$(mktemp -d "$BATS_TMPDIR/runc.XXXXXX")
|
ROOT=$(mktemp -d "$BATS_RUN_TMPDIR/runc.XXXXXX")
|
||||||
|
|
||||||
# Path to console socket.
|
# Path to console socket.
|
||||||
CONSOLE_SOCKET="$BATS_TMPDIR/console.sock"
|
CONSOLE_SOCKET="$BATS_RUN_TMPDIR/console.sock"
|
||||||
|
|
||||||
# Check if we're in rootless mode.
|
# Check if we're in rootless mode.
|
||||||
ROOTLESS=$(id -u)
|
ROOTLESS=$(id -u)
|
||||||
@@ -423,17 +429,17 @@ function testcontainer() {
|
|||||||
|
|
||||||
function setup_recvtty() {
|
function setup_recvtty() {
|
||||||
# We need to start recvtty in the background, so we double fork in the shell.
|
# We need to start recvtty in the background, so we double fork in the shell.
|
||||||
("$RECVTTY" --pid-file "$BATS_TMPDIR/recvtty.pid" --mode null "$CONSOLE_SOCKET" &) &
|
("$RECVTTY" --pid-file "$BATS_RUN_TMPDIR/recvtty.pid" --mode null "$CONSOLE_SOCKET" &) &
|
||||||
}
|
}
|
||||||
|
|
||||||
function teardown_recvtty() {
|
function teardown_recvtty() {
|
||||||
# When we kill recvtty, the container will also be killed.
|
# When we kill recvtty, the container will also be killed.
|
||||||
if [ -f "$BATS_TMPDIR/recvtty.pid" ]; then
|
if [ -f "$BATS_RUN_TMPDIR/recvtty.pid" ]; then
|
||||||
kill -9 $(cat "$BATS_TMPDIR/recvtty.pid")
|
kill -9 $(cat "$BATS_RUN_TMPDIR/recvtty.pid")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Clean up the files that might be left over.
|
# Clean up the files that might be left over.
|
||||||
rm -f "$BATS_TMPDIR/recvtty.pid"
|
rm -f "$BATS_RUN_TMPDIR/recvtty.pid"
|
||||||
rm -f "$CONSOLE_SOCKET"
|
rm -f "$CONSOLE_SOCKET"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ function setup() {
|
|||||||
unset ALT_ROOT
|
unset ALT_ROOT
|
||||||
teardown
|
teardown
|
||||||
setup_busybox
|
setup_busybox
|
||||||
ALT_ROOT=$(mktemp -d "$BATS_TMPDIR/runc-2.XXXXXX")
|
ALT_ROOT=$(mktemp -d "$BATS_RUN_TMPDIR/runc-2.XXXXXX")
|
||||||
}
|
}
|
||||||
|
|
||||||
function teardown() {
|
function teardown() {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ function setup() {
|
|||||||
unset ALT_ROOT
|
unset ALT_ROOT
|
||||||
teardown
|
teardown
|
||||||
setup_busybox
|
setup_busybox
|
||||||
ALT_ROOT=$(mktemp -d "$BATS_TMPDIR/runc-2.XXXXXX")
|
ALT_ROOT=$(mktemp -d "$BATS_RUN_TMPDIR/runc-2.XXXXXX")
|
||||||
}
|
}
|
||||||
|
|
||||||
function teardown() {
|
function teardown() {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
load helpers
|
load helpers
|
||||||
|
|
||||||
function teardown() {
|
function teardown() {
|
||||||
rm -f "$BATS_TMPDIR"/runc-cgroups-integration-test.json
|
rm -f "$BATS_RUN_TMPDIR"/runc-cgroups-integration-test.json
|
||||||
teardown_running_container test_update
|
teardown_running_container test_update
|
||||||
teardown_running_container test_update_rt
|
teardown_running_container test_update_rt
|
||||||
teardown_busybox
|
teardown_busybox
|
||||||
@@ -208,7 +208,7 @@ EOF
|
|||||||
check_systemd_value "TasksMax" 10
|
check_systemd_value "TasksMax" 10
|
||||||
|
|
||||||
# reset to initial test value via json file
|
# reset to initial test value via json file
|
||||||
cat <<EOF >"$BATS_TMPDIR"/runc-cgroups-integration-test.json
|
cat <<EOF >"$BATS_RUN_TMPDIR"/runc-cgroups-integration-test.json
|
||||||
{
|
{
|
||||||
"memory": {
|
"memory": {
|
||||||
"limit": 33554432,
|
"limit": 33554432,
|
||||||
@@ -226,7 +226,7 @@ EOF
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
runc update -r "$BATS_TMPDIR"/runc-cgroups-integration-test.json test_update
|
runc update -r "$BATS_RUN_TMPDIR"/runc-cgroups-integration-test.json test_update
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
check_cgroup_value "cpuset.cpus" 0
|
check_cgroup_value "cpuset.cpus" 0
|
||||||
|
|
||||||
@@ -297,7 +297,7 @@ EOF
|
|||||||
check_cpu_quota -1 100000 "infinity"
|
check_cpu_quota -1 100000 "infinity"
|
||||||
|
|
||||||
# reset to initial test value via json file
|
# reset to initial test value via json file
|
||||||
cat <<EOF >"$BATS_TMPDIR"/runc-cgroups-integration-test.json
|
cat <<EOF >"$BATS_RUN_TMPDIR"/runc-cgroups-integration-test.json
|
||||||
{
|
{
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"shares": 100,
|
"shares": 100,
|
||||||
@@ -308,7 +308,7 @@ EOF
|
|||||||
EOF
|
EOF
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
|
||||||
runc update -r "$BATS_TMPDIR"/runc-cgroups-integration-test.json test_update
|
runc update -r "$BATS_RUN_TMPDIR"/runc-cgroups-integration-test.json test_update
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
check_cpu_quota 500000 1000000 "500ms"
|
check_cpu_quota 500000 1000000 "500ms"
|
||||||
check_cpu_shares 100
|
check_cpu_shares 100
|
||||||
@@ -573,7 +573,7 @@ EOF
|
|||||||
update_config '.process.args |= ["sh", "-c", "while true; do echo >/dev/null; done"]'
|
update_config '.process.args |= ["sh", "-c", "while true; do echo >/dev/null; done"]'
|
||||||
|
|
||||||
# Set up a temporary console socket and recvtty so we can get the stdio.
|
# Set up a temporary console socket and recvtty so we can get the stdio.
|
||||||
TMP_RECVTTY_DIR="$(mktemp -d "$BATS_TMPDIR/runc-tmp-recvtty.XXXXXX")"
|
TMP_RECVTTY_DIR="$(mktemp -d "$BATS_RUN_TMPDIR/runc-tmp-recvtty.XXXXXX")"
|
||||||
TMP_RECVTTY_PID="$TMP_RECVTTY_DIR/recvtty.pid"
|
TMP_RECVTTY_PID="$TMP_RECVTTY_DIR/recvtty.pid"
|
||||||
TMP_CONSOLE_SOCKET="$TMP_RECVTTY_DIR/console.sock"
|
TMP_CONSOLE_SOCKET="$TMP_RECVTTY_DIR/console.sock"
|
||||||
CONTAINER_OUTPUT="$TMP_RECVTTY_DIR/output"
|
CONTAINER_OUTPUT="$TMP_RECVTTY_DIR/output"
|
||||||
|
|||||||
Reference in New Issue
Block a user