]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Add basic systemctl edit test
authorнаб <nabijaczleweli@nabijaczleweli.xyz>
Tue, 22 Nov 2022 04:14:01 +0000 (05:14 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Sat, 17 Dec 2022 13:47:38 +0000 (14:47 +0100)
test/TEST-26-SYSTEMCTL/test.sh
test/units/testsuite-26.sh

index 64accf850f392c72d94933f4b6d23a690caf76f8..659311be4d42d36bf5a7b163fc95432f8f7f1a27 100755 (executable)
@@ -7,4 +7,8 @@ TEST_DESCRIPTION="systemctl-related tests"
 # shellcheck source=test/test-functions
 . "${TEST_BASE_DIR:?}/test-functions"
 
+test_append_files() (
+        image_install script
+)
+
 do_test "$@"
index 70fdc5956e56f4d574dded1e47affdcb4a95810f..0fe0d9b0d95bb25fc1bec4bf93fbc30c41136eea 100755 (executable)
@@ -1,11 +1,12 @@
 #!/usr/bin/env bash
 # SPDX-License-Identifier: LGPL-2.1-or-later
+# shellcheck disable=SC2016
 set -eux
 set -o pipefail
 
 at_exit() {
     if [[ -v UNIT_NAME && -e "/usr/lib/systemd/system/$UNIT_NAME" ]]; then
-        rm -fv "/usr/lib/systemd/system/$UNIT_NAME"
+        rm -fvr "/usr/lib/systemd/system/$UNIT_NAME" "/etc/systemd/system/$UNIT_NAME.d" "+4"
     fi
 }
 
@@ -17,7 +18,7 @@ trap at_exit EXIT
 # Create a simple unit file for testing
 # Note: the service file is created under /usr on purpose to test
 #       the 'revert' verb as well
-UNIT_NAME="systemctl-test-$RANDOM.service"
+export UNIT_NAME="systemctl-test-$RANDOM.service"
 cat >"/usr/lib/systemd/system/$UNIT_NAME" <<\EOF
 [Unit]
 Description=systemctl test
@@ -41,7 +42,16 @@ EOF
 mkdir /run/systemd/system-preset/
 echo "disable $UNIT_NAME" >/run/systemd/system-preset/99-systemd-test.preset
 
-systemctl daemon-reload
+EDITOR='true' script -ec 'systemctl edit "$UNIT_NAME"' /dev/null
+[ ! -e "/etc/systemd/system/$UNIT_NAME.d/override.conf" ]
+
+printf '%s\n' '[Service]' 'ExecStart=' 'ExecStart=sleep 10d' > "+4"
+EDITOR='mv' script -ec 'systemctl edit "$UNIT_NAME"' /dev/null
+printf '%s\n' '[Service]' 'ExecStart=' 'ExecStart=sleep 10d' | cmp - "/etc/systemd/system/$UNIT_NAME.d/override.conf"
+
+printf '%b'   '[Service]\n' 'ExecStart=\n' 'ExecStart=sleep 10d' > "+4"
+EDITOR='mv' script -ec 'systemctl edit "$UNIT_NAME"' /dev/null
+printf '%s\n' '[Service]'   'ExecStart='   'ExecStart=sleep 10d' | cmp - "/etc/systemd/system/$UNIT_NAME.d/override.conf"
 
 # Argument help
 systemctl --state help