Files
runc/tests/integration/hooks.bats
T
Kir Kolyshkin 0f3eeb9bad tests/int: add failed hooks tests
To ensure that if a hook has failed, the container won't be started.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2023-08-24 19:45:06 -07:00

45 lines
1.3 KiB
Bash

#!/usr/bin/env bats
load helpers
function setup() {
setup_busybox
}
function teardown() {
teardown_bundle
}
@test "runc create [second createRuntime hook fails]" {
update_config '.hooks |= {"createRuntime": [{"path": "/bin/true"}, {"path": "/bin/false"}]}'
runc create --console-socket "$CONSOLE_SOCKET" test_hooks
[ "$status" -ne 0 ]
[[ "$output" == *"error running createRuntime hook #1:"* ]]
}
@test "runc create [hook fails]" {
for hook in prestart createRuntime createContainer; do
echo "testing hook $hook"
# shellcheck disable=SC2016
update_config '.hooks |= {"'$hook'": [{"path": "/bin/true"}, {"path": "/bin/false"}]}'
runc create --console-socket "$CONSOLE_SOCKET" test_hooks
[ "$status" -ne 0 ]
[[ "$output" == *"error running $hook hook #1:"* ]]
done
}
@test "runc run [hook fails]" {
update_config '.process.args = ["/bin/echo", "Hello World"]'
# All hooks except Poststop.
for hook in prestart createRuntime createContainer startContainer poststart; do
echo "testing hook $hook"
# shellcheck disable=SC2016
update_config '.hooks |= {"'$hook'": [{"path": "/bin/true"}, {"path": "/bin/false"}]}'
runc run "test_hook-$hook"
[[ "$output" != "Hello World" ]]
[ "$status" -ne 0 ]
[[ "$output" == *"error running $hook hook #1:"* ]]
done
}