diff options
author | Ed Santiago <santiago@redhat.com> | 2020-05-11 08:51:05 -0600 |
---|---|---|
committer | Ed Santiago <santiago@redhat.com> | 2020-05-11 09:30:09 -0600 |
commit | a82de0e3a039bb23d3a9bdb0a1cb9a56d5cec5df (patch) | |
tree | 03688e466ca937aad387585d3b2ea17452809431 /test/system/250-systemd.bats | |
parent | 18b273b72ba76d485eb1b4d5df48bff1685953ff (diff) | |
download | podman-a82de0e3a039bb23d3a9bdb0a1cb9a56d5cec5df.tar.gz podman-a82de0e3a039bb23d3a9bdb0a1cb9a56d5cec5df.tar.bz2 podman-a82de0e3a039bb23d3a9bdb0a1cb9a56d5cec5df.zip |
Some BATS cleanup: run and systemd tests
run test: run positive test before negative; and actually
implement real negative tests. Also, add confirmation tests for
cidfile/pidfile, not just 'exit status is good'.
systemd test: enable rootless, and again add actual content
testing.
Signed-off-by: Ed Santiago <santiago@redhat.com>
Diffstat (limited to 'test/system/250-systemd.bats')
-rw-r--r-- | test/system/250-systemd.bats | 39 |
1 files changed, 30 insertions, 9 deletions
diff --git a/test/system/250-systemd.bats b/test/system/250-systemd.bats index 902a7cad8..cdac43c1c 100644 --- a/test/system/250-systemd.bats +++ b/test/system/250-systemd.bats @@ -6,44 +6,65 @@ load helpers SERVICE_NAME="podman_test_$(random_string)" + +SYSTEMCTL="systemctl" UNIT_DIR="/usr/lib/systemd/system" +if is_rootless; then + UNIT_DIR="$HOME/.config/systemd/user" + mkdir -p $UNIT_DIR + + SYSTEMCTL="$SYSTEMCTL --user" +fi 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() { + run '?' $SYSTEMCTL stop "$SERVICE_NAME" rm -f "$UNIT_FILE" - systemctl daemon-reload + $SYSTEMCTL daemon-reload basic_teardown } +# This test can fail in dev. environment because of SELinux. +# quick fix: chcon -t container_runtime_exec_t ./bin/podman @test "podman generate - systemd - basic" { - run_podman create --name keepme --detach busybox:latest top + cname=$(random_string) + run_podman create --name $cname --detach $IMAGE top - run_podman generate systemd --new keepme > "$UNIT_FILE" - run_podman rm keepme + run_podman generate systemd --new $cname + echo "$output" > "$UNIT_FILE" + run_podman rm $cname - systemctl daemon-reload + $SYSTEMCTL daemon-reload - run systemctl start "$SERVICE_NAME" + 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" + 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" + # Give container time to start; make sure output looks top-like + sleep 2 + run_podman logs $cname + is "$output" ".*Load average:.*" "running container 'top'-like output" + + # All good. Stop service, clean up. + run $SYSTEMCTL stop "$SERVICE_NAME" if [ $status -ne 0 ]; then die "Error stopping systemd unit $SERVICE_NAME, output: $output" fi + + rm -f "$UNIT_FILE" + $SYSTEMCTL daemon-reload } # vim: filetype=sh |