Merge pull request #6134 from vrothberg/systemd-unit-tests

fix and enable systemd system tests
This commit is contained in:
OpenShift Merge Robot 2020-05-08 16:13:13 +02:00 committed by GitHub
commit f4e3ec5fd6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 49 additions and 59 deletions

View file

@ -1,48 +0,0 @@
#!/usr/bin/env bats -*- bats -*-
#
# Tests generated configurations for systemd.
#
load helpers
# Be extra paranoid in naming to avoid collisions.
SERVICE_NAME="podman_test_$(random_string)"
UNIT_DIR="$HOME/.config/systemd/user"
UNIT_FILE="$UNIT_DIR/$SERVICE_NAME.service"
# FIXME: the must run as root (because of CI). It's also broken...
function setup() {
skip_if_not_systemd
skip_if_remote
basic_setup
if [ ! -d "$UNIT_DIR" ]; then
mkdir -p "$UNIT_DIR"
systemctl --user daemon-reload
fi
}
function teardown() {
rm -f "$UNIT_FILE"
systemctl --user stop "$SERVICE_NAME"
basic_teardown
}
@test "podman generate - systemd - basic" {
run_podman create $IMAGE echo "I'm alive!"
cid="$output"
run_podman generate systemd $cid > "$UNIT_FILE"
run systemctl --user start "$SERVICE_NAME"
if [ $status -ne 0 ]; then
die "The systemd service $SERVICE_NAME did not start correctly, output: $output"
fi
run_podman logs $cid
is "$output" "I'm alive!" "Container output"
}
# vim: filetype=sh

View file

@ -0,0 +1,49 @@
#!/usr/bin/env bats -*- bats -*-
#
# Tests generated configurations for systemd.
#
load helpers
SERVICE_NAME="podman_test_$(random_string)"
UNIT_DIR="/usr/lib/systemd/system"
UNIT_FILE="$UNIT_DIR/$SERVICE_NAME.service"
function setup() {
skip_if_remote
skip_if_rootless "systemd tests are root-only for now"
basic_setup
}
function teardown() {
rm -f "$UNIT_FILE"
systemctl daemon-reload
basic_teardown
}
@test "podman generate - systemd - basic" {
run_podman create --name keepme --detach busybox:latest top
run_podman generate systemd --new keepme > "$UNIT_FILE"
run_podman rm keepme
systemctl daemon-reload
run systemctl start "$SERVICE_NAME"
if [ $status -ne 0 ]; then
die "Error starting systemd unit $SERVICE_NAME, output: $output"
fi
run systemctl status "$SERVICE_NAME"
if [ $status -ne 0 ]; then
die "Non-zero status of systemd unit $SERVICE_NAME, output: $output"
fi
run systemctl stop "$SERVICE_NAME"
if [ $status -ne 0 ]; then
die "Error stopping systemd unit $SERVICE_NAME, output: $output"
fi
}
# vim: filetype=sh

View file

@ -252,17 +252,6 @@ function skip_if_remote() {
fi
}
#########################
# skip_if_not_systemd # ...with an optional message
#########################
function skip_if_not_systemd() {
if systemctl --user >/dev/null 2>&1; then
return
fi
skip "${1:-no systemd or daemon does not respond}"
}
#########
# die # Abort with helpful message
#########