diff options
author | Danila Kiver <danila.kiver@mail.ru> | 2019-07-04 03:58:37 +0300 |
---|---|---|
committer | Danila Kiver <danila.kiver@mail.ru> | 2019-07-04 03:58:37 +0300 |
commit | a54429cf877e899eb1516e3ee71ae9c6eedd7c5a (patch) | |
tree | fe676086d21daefe2f1650efbbe7bd2cd7fa1217 /test/system | |
parent | f5593d305f68409cf093ea6b66a9d1f121ec0fd6 (diff) | |
download | podman-a54429cf877e899eb1516e3ee71ae9c6eedd7c5a.tar.gz podman-a54429cf877e899eb1516e3ee71ae9c6eedd7c5a.tar.bz2 podman-a54429cf877e899eb1516e3ee71ae9c6eedd7c5a.zip |
Use conmon pidfile in generated systemd unit as PIDFile.
By default, podman points PIDFile in generated unit file to non-existent
location. As a result, the unit file, generated by podman, is broken:
an attempt to start this unit without prior modification results in a crash,
because systemd can not find the pidfile of service's main process.
Fix the value of "PIDFile" and add a system test for this case.
Signed-off-by: Danila Kiver <danila.kiver@mail.ru>
Diffstat (limited to 'test/system')
-rw-r--r-- | test/system/250-generate-systemd.bats | 42 | ||||
-rw-r--r-- | test/system/helpers.bash | 11 |
2 files changed, 53 insertions, 0 deletions
diff --git a/test/system/250-generate-systemd.bats b/test/system/250-generate-systemd.bats new file mode 100644 index 000000000..87ad69774 --- /dev/null +++ b/test/system/250-generate-systemd.bats @@ -0,0 +1,42 @@ +#!/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" + +function setup() { + basic_setup + mkdir -p "$UNIT_DIR" +} + +function teardown() { + rm -f "$UNIT_FILE" + systemctl --user stop "$SERVICE_NAME" + basic_teardown +} + +@test "podman generate - systemd - basic" { + skip_if_not_systemd + skip_if_remote + + 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!" + fi + + run_podman logs $cid + is "$output" "I'm alive!" "Container output" +} + +# vim: filetype=sh diff --git a/test/system/helpers.bash b/test/system/helpers.bash index 29ef19ecc..1db80f111 100644 --- a/test/system/helpers.bash +++ b/test/system/helpers.bash @@ -236,6 +236,17 @@ function skip_if_remote() { skip "${1:-test does not work with podman-remote}" } +######################### +# 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 ######### |