From 524c760af8676bdbf1914b577d5d975ac0b56f5f Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Thu, 21 Jan 2021 12:35:57 -0800 Subject: [PATCH] tests/int/hooks.bats: don't use DEBIAN_BUNDLE 1. Do not depend on $DEBIAN_BUNDLE, instead use the current directory. 2. Simplify setup() by calling teardown(). 3. In teardown(), check that LIBPATH is set. 4. Move global variables into setup. Signed-off-by: Kir Kolyshkin --- tests/integration/hooks.bats | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/tests/integration/hooks.bats b/tests/integration/hooks.bats index 7f1401f6503..74b6f3d3485 100644 --- a/tests/integration/hooks.bats +++ b/tests/integration/hooks.bats @@ -2,27 +2,23 @@ load helpers -# CR = CreateRuntime -# CC = CreataContainer -HOOKLIBCR=librunc-hooks-create-runtime.so -HOOKLIBCC=librunc-hooks-create-container.so -LIBPATH="$DEBIAN_BUNDLE/rootfs/lib/" - function setup() { - umount "$LIBPATH"/$HOOKLIBCR.1.0.0 &>/dev/null || true - umount "$LIBPATH"/$HOOKLIBCC.1.0.0 &>/dev/null || true - requires root no_systemd - teardown_debian + teardown setup_debian + # CR = CreateRuntime, CC = CreataContainer + HOOKLIBCR=librunc-hooks-create-runtime.so + HOOKLIBCC=librunc-hooks-create-container.so + LIBPATH="$(pwd)/rootfs/lib/" } function teardown() { - umount "$LIBPATH"/$HOOKLIBCR.1.0.0 &>/dev/null || true - umount "$LIBPATH"/$HOOKLIBCC.1.0.0 &>/dev/null || true - - rm -f $HOOKLIBCR.1.0.0 $HOOKLIBCC.1.0.0 + if [ -n "$LIBPATH" ]; then + umount "$LIBPATH"/$HOOKLIBCR.1.0.0 &>/dev/null || true + umount "$LIBPATH"/$HOOKLIBCC.1.0.0 &>/dev/null || true + rm -f $HOOKLIBCR.1.0.0 $HOOKLIBCC.1.0.0 + fi teardown_debian } @@ -31,24 +27,24 @@ function teardown() { gcc -shared -Wl,-soname,librunc-hooks-create-runtime.so.1 -o "$HOOKLIBCR.1.0.0" gcc -shared -Wl,-soname,librunc-hooks-create-container.so.1 -o "$HOOKLIBCC.1.0.0" - current_pwd="$(pwd)" + bundle=$(pwd) # To mount $HOOKLIBCR we need to do that in the container namespace create_runtime_hook=$( cat <<-EOF pid=\$(cat - | jq -r '.pid') touch "$LIBPATH/$HOOKLIBCR.1.0.0" - nsenter -m \$ns -t \$pid mount --bind "$current_pwd/$HOOKLIBCR.1.0.0" "$LIBPATH/$HOOKLIBCR.1.0.0" + nsenter -m \$ns -t \$pid mount --bind "$bundle/$HOOKLIBCR.1.0.0" "$LIBPATH/$HOOKLIBCR.1.0.0" EOF ) - create_container_hook="touch ./lib/$HOOKLIBCC.1.0.0 && mount --bind $current_pwd/$HOOKLIBCC.1.0.0 ./lib/$HOOKLIBCC.1.0.0" + create_container_hook="touch ./lib/$HOOKLIBCC.1.0.0 && mount --bind $bundle/$HOOKLIBCC.1.0.0 ./lib/$HOOKLIBCC.1.0.0" CONFIG=$(jq --arg create_runtime_hook "$create_runtime_hook" --arg create_container_hook "$create_container_hook" ' .hooks |= . + {"createRuntime": [{"path": "/bin/sh", "args": ["/bin/sh", "-c", $create_runtime_hook]}]} | .hooks |= . + {"createContainer": [{"path": "/bin/sh", "args": ["/bin/sh", "-c", $create_container_hook]}]} | .hooks |= . + {"startContainer": [{"path": "/bin/sh", "args": ["/bin/sh", "-c", "ldconfig"]}]} | - .process.args = ["/bin/sh", "-c", "ldconfig -p | grep librunc"]' "$DEBIAN_BUNDLE"/config.json) + .process.args = ["/bin/sh", "-c", "ldconfig -p | grep librunc"]' "$bundle"/config.json) echo "${CONFIG}" >config.json runc run test_debian