]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: shellcheck-ify test scripts
authorFrantisek Sumsal <frantisek@sumsal.cz>
Wed, 29 Sep 2021 18:30:08 +0000 (20:30 +0200)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Thu, 30 Sep 2021 10:12:00 +0000 (12:12 +0200)
19 files changed:
test/TEST-13-NSPAWN-SMOKE/test.sh
test/TEST-57-ONSUCCESS-UPHOLD/test.sh
test/TEST-58-REPART/test.sh
test/TEST-59-RELOADING-RESTART/test.sh
test/TEST-60-MOUNT-RATELIMIT/test.sh
test/TEST-62-RESTRICT-IFACES/test.sh
test/hwdb-test.sh
test/run-integration-tests.sh
test/test-functions
test/test-network-generator-conversion.sh
test/test-path-util/script.sh
test/testsuite-16.units/extend-timeout.sh
test/udev-dmi-memory-id-test.sh
test/units/testsuite-04.sh
test/units/testsuite-17.06.sh
test/units/testsuite-54.sh
test/units/testsuite-61.sh
test/units/testsuite-62.sh
test/units/testsuite-64.sh

index e7e6371fb6b080508b9300a98c0f0fa083ba473a..a708465bdd51c65db19a0e4bc696f07ac7376aab 100755 (executable)
@@ -14,7 +14,7 @@ test_append_files() {
 
         # On openSUSE the static linked version of busybox is named "busybox-static".
         busybox="$(type -P busybox-static || type -P busybox)"
-        inst_simple "$busybox" "$(dirname $busybox)/busybox"
+        inst_simple "$busybox" "$(dirname "$busybox")/busybox"
 
         if selinuxenabled >/dev/null; then
             image_install selinuxenabled
index 145c88fcd8dfbd27c64d8995d35a892a34281138..34513f2ba228dffcfd918712ba43b8dce1d24e82 100755 (executable)
@@ -2,6 +2,7 @@
 set -e
 
 TEST_DESCRIPTION="test OnSuccess= + Uphold= + PropagatesStopTo= + BindsTo="
-. $TEST_BASE_DIR/test-functions
+# shellcheck source=test/test-functions
+. "$TEST_BASE_DIR/test-functions"
 
 do_test "$@" 57
index 3a3c33f14113a510d40892f77f05e69ffff0901e..df5ad3c0c611bac36520595d8973892b9c35b6ae 100755 (executable)
@@ -1,7 +1,10 @@
 #!/usr/bin/env bash
 set -e
+
 TEST_DESCRIPTION="test systemd-repart"
 TEST_NO_NSPAWN=1
-. $TEST_BASE_DIR/test-functions
+
+# shellcheck source=test/test-functions
+. "$TEST_BASE_DIR/test-functions"
 
 do_test "$@"
index 9232d7816a4a84ee6e121ca1ec712faef145bcac..343848e33a69da8bd9e4a337193d27a1d4f9ab6c 100755 (executable)
@@ -1,9 +1,10 @@
 #!/usr/bin/env bash
 set -e
-TEST_DESCRIPTION="Test auto restart of exited services which are stuck in reloading state"
 
+TEST_DESCRIPTION="Test auto restart of exited services which are stuck in reloading state"
 TEST_NO_QEMU=1
 
-. $TEST_BASE_DIR/test-functions
+# shellcheck source=test/test-functions
+. "$TEST_BASE_DIR/test-functions"
 
 do_test "$@"
index f9eb11ccb441a5238125d9ffa4f03f5ee858505d..e14bc83e09f0c4396462027308c4aea1a8320638 100755 (executable)
@@ -1,7 +1,9 @@
 #!/usr/bin/env bash
 set -e
+
 TEST_DESCRIPTION="Test that mount/unmount storms can enter/exit rate limit state and will not leak units"
 
-. $TEST_BASE_DIR/test-functions
+# shellcheck source=test/test-functions
+. "$TEST_BASE_DIR/test-functions"
 
 do_test "$@"
index b2829d2a1fd977c41283a6b7f1cd203081c44af8..85d5a53473ed97b65fedd1fe92ae13ffc1ac44be 100755 (executable)
@@ -1,9 +1,10 @@
 #!/usr/bin/env bash
+set -e
 
+TEST_DESCRIPTION="test RestrictNetworkInterfaces="
 TEST_NO_NSPAWN=1
 
-set -e
-TEST_DESCRIPTION="test RestrictNetworkInterfaces="
-. $TEST_BASE_DIR/test-functions
+# shellcheck source=test/test-functions
+. "$TEST_BASE_DIR/test-functions"
 
-do_test "$@" 62
+do_test "$@"
index 57d98e513bf57c44e55ca10a5a525099cc5c2f42..0551f26a2d98bab5c62bf27564259f2550156180 100755 (executable)
@@ -10,7 +10,7 @@
 set -e
 
 export SYSTEMD_LOG_LEVEL=info
-ROOTDIR=$(dirname $(dirname $(readlink -f $0)))
+ROOTDIR="$(dirname "$(dirname "$(readlink -f "$0")")")"
 SYSTEMD_HWDB="${1:?missing argument}"
 
 if [ ! -x "$SYSTEMD_HWDB" ]; then
@@ -18,7 +18,8 @@ if [ ! -x "$SYSTEMD_HWDB" ]; then
     exit 1
 fi
 
-D=$(mktemp --tmpdir --directory "hwdb-test.XXXXXXXXXX")
+D="$(mktemp --tmpdir --directory "hwdb-test.XXXXXXXXXX")"
+# shellcheck disable=SC2064
 trap "rm -rf '$D'" EXIT INT QUIT PIPE
 mkdir -p "$D/etc/udev"
 ln -s "$ROOTDIR/hwdb.d" "$D/etc/udev/hwdb.d"
index 47cf8a891247b89849c8a126472d1ef601348dbe..2b48417d583071c64607c2a9f18b7d39c8ce3650 100755 (executable)
@@ -3,7 +3,7 @@ set -e
 
 if [ "$NO_BUILD" ]; then
     BUILD_DIR=""
-elif BUILD_DIR="$($(dirname "$0")/../tools/find-build-dir.sh)"; then
+elif BUILD_DIR="$("$(dirname "$0")/../tools/find-build-dir.sh")"; then
     ninja -C "$BUILD_DIR"
 else
     echo "No build found, please set BUILD_DIR or NO_BUILD" >&2
@@ -73,35 +73,36 @@ fi
 # Run actual tests (if requested)
 if [[ $args =~ [a-z] ]]; then
     for TEST in $SELECTED_TESTS; do
-        COUNT=$(($COUNT+1))
+        COUNT=$((COUNT+1))
 
-        pass_deny_list $TEST || continue
+        pass_deny_list "$TEST" || continue
         start=$(date +%s)
 
         echo -e "\n--x-- Running $TEST --x--"
         set +e
+        # shellcheck disable=SC2086
         ( set -x ; make -C "$TEST" $args )
         RESULT=$?
         set -e
         echo "--x-- Result of $TEST: $RESULT --x--"
 
         results["$TEST"]="$RESULT"
-        times["$TEST"]=$(( $(date +%s) - $start ))
+        times["$TEST"]=$(( $(date +%s) - start ))
 
-        [ "$RESULT" -ne "0" ] && FAILURES=$(($FAILURES+1))
+        [ "$RESULT" -ne "0" ] && FAILURES=$((FAILURES+1))
     done
 fi
 
 # Run clean-again, if requested, and if no tests failed
-if [ $FAILURES -eq 0 -a $CLEANAGAIN = 1 ]; then
-    for TEST in ${!results[@]}; do
+if [[ $FAILURES -eq 0 && $CLEANAGAIN -eq 1 ]]; then
+    for TEST in "${!results[@]}"; do
         ( set -x ; make -C "$TEST" clean-again )
     done
 fi
 
 echo ""
 
-for TEST in ${!results[@]}; do
+for TEST in "${!results[@]}"; do
     RESULT="${results[$TEST]}"
     time="${times[$TEST]}"
     string=$([ "$RESULT" = "0" ] && echo "SUCCESS" || echo "FAIL")
index 2d1d15c389c0678e64acbe10a09914a8f9d477b2..a9a01a80d0db223cbfc931b9c7d3c2f2164c6fed 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-# shellcheck disable=SC2031
+# shellcheck disable=SC2030,SC2031
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh tw=180
 # Note: the shellcheck line above disables warning for variables which were
@@ -992,9 +992,11 @@ install_iscsi() {
         # dumps a list of files (perl modules) required by `tgt-admin` at
         # the runtime plus any DSOs loaded via DynaLoader. This list is then
         # passed to `inst_simple` which installs the necessary files into the image
+        #
+        # shellcheck disable=SC2016
         while read -r file; do
             inst_simple "$file"
-        done < <(perl -- <(cat $(command -v tgt-admin) <(echo -e 'use DynaLoader; print map { "$_\n" } values %INC; print join("\n", @DynaLoader::dl_shared_objects)')) -p | awk '/^\// { print $1 }')
+        done < <(perl -- <(cat "$(command -v tgt-admin)" <(echo -e 'use DynaLoader; print map { "$_\n" } values %INC; print join("\n", @DynaLoader::dl_shared_objects)')) -p | awk '/^\// { print $1 }')
     fi
 }
 
@@ -1529,7 +1531,7 @@ install_haveged() {
         dinfo "Install haveged files"
         inst /usr/sbin/haveged
         for u in /usr/lib/systemd/system/haveged*; do
-            inst $u
+            inst "$u"
         done
     fi
 }
@@ -1718,6 +1720,7 @@ install_pam() {
     done
 }
 
+# shellcheck disable=SC2120
 install_keymaps() {
     dinfo "Install keymaps"
     # The first three paths may be deprecated.
@@ -2579,7 +2582,7 @@ _test_cleanup() {
         [[ -n "$initdir" ]] && _umount_dir "$initdir"
         [[ -n "$IMAGE_PUBLIC" ]] && rm -vf "$IMAGE_PUBLIC"
         # If multiple setups/cleans are ran in parallel, this can cause a race
-        if [[ -n "$IMAGESTATEDIR" &&  $TEST_PARALLELIZE -ne 1 ]]; then
+        if [[ -n "$IMAGESTATEDIR" && $TEST_PARALLELIZE -ne 1 ]]; then
             rm -vf "${IMAGESTATEDIR}/default.img"
         fi
         [[ -n "$TESTDIR" ]] && rm -vfr "$TESTDIR"
index 50df69f1b01bcae8068e88addfa35330131ec926..da7f985deec50c1a067fbc26ee80e0e6cdc0c9a1 100755 (executable)
@@ -18,11 +18,13 @@ for f in "$src"/test-*.input; do
 
     (
         out=$(mktemp --tmpdir --directory "test-network-generator-conversion.XXXXXXXXXX")
+        # shellcheck disable=SC2064
         trap "rm -rf '$out'" EXIT INT QUIT PIPE
 
-        $generator --root "$out" -- $(cat $f)
+        # shellcheck disable=SC2046
+        $generator --root "$out" -- $(cat "$f")
 
-        if ! diff -u "$out"/run/systemd/network ${f%.input}.expected; then
+        if ! diff -u "$out/run/systemd/network" "${f%.input}.expected"; then
             echo "**** Unexpected output for $f"
             exit 1
         fi
index 57c93e74762a562e0b3d904539d943ebf255c191..8ffd8d78891f6f6ea6b436ca547abf34651cdff0 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-echo "$0 $@"
-test "$(basename $0)" = "script.sh" || exit 1
+echo "$0 $*"
+test "$(basename "$0")" = "script.sh" || exit 1
 test "$1" = "--version" || exit 2
 echo "Life is good"
index ed1af8afeb36c4521b426ef1036c9296d13dfa63..c7b262794598728b87f3af5c7a672544db03f8d0 100755 (executable)
@@ -1,62 +1,62 @@
 #!/usr/bin/env bash
-set -x
-set -e
+set -eux
 set -o pipefail
 
 # sleep interval (seconds)
-: ${sleep_interval:=1}
+sleep_interval="${sleep_interval:-1}"
 # extend_timeout_interval second(s)
-: ${extend_timeout_interval:=1}
+extend_timeout_interval="${extend_timeout_interval:-1}"
 # number of sleep_intervals before READY=1
-: ${start_intervals:=10}
+start_intervals="${start_intervals:-10}"
 # number of sleep_intervals before exiting
-: ${stop_intervals:=10}
+stop_intervals="${stop_intervals:-10}"
 # run intervals, number of sleep_intervals to run
-: ${run_intervals:=7}
+run_intervals="${run_intervals:-7}"
 
 # We convert to usec
-extend_timeout_interval=$(( $extend_timeout_interval * 1000000 ))
+extend_timeout_interval=$((extend_timeout_interval * 1000000))
 
-trap "{ touch /${SERVICE}.terminated; exit 1; }"  SIGTERM SIGABRT
+# shellcheck disable=SC2064
+trap "{ touch /${SERVICE}.terminated; exit 1; }" SIGTERM SIGABRT
 
-rm -f /${SERVICE}.*
-touch /${SERVICE}.startfail
+rm -f "/${SERVICE}".*
+touch "/${SERVICE}.startfail"
 
-systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
-while [ $start_intervals -gt 0 ]
+systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval"
+while [[ $start_intervals -gt 0 ]]
 do
-    sleep $sleep_interval
-    start_intervals=$(( $start_intervals - 1 ))
-    systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+    sleep "$sleep_interval"
+    start_intervals=$((start_intervals - 1))
+    systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval"
 done
 
 systemd-notify --ready --status="Waiting for your request"
 
-touch /${SERVICE}.runtimefail
-rm /${SERVICE}.startfail
+touch "/${SERVICE}.runtimefail"
+rm "/${SERVICE}.startfail"
 
-systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
-while [ $run_intervals -gt 0 ]
+systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval"
+while [[ $run_intervals -gt 0 ]]
 do
-    sleep $sleep_interval
-    run_intervals=$(( $run_intervals - 1 ))
-    systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+    sleep "$sleep_interval"
+    run_intervals=$((run_intervals - 1))
+    systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval"
 done
 
 systemd-notify STOPPING=1
 
-touch /${SERVICE}.stopfail
-rm /${SERVICE}.runtimefail
+touch "/${SERVICE}.stopfail"
+rm "/${SERVICE}.runtimefail"
 
-systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
-while [ $stop_intervals -gt 0 ]
+systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval"
+while [[ $stop_intervals -gt 0 ]]
 do
-    sleep $sleep_interval
-    stop_intervals=$(( $stop_intervals - 1 ))
-    systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+    sleep "$sleep_interval"
+    stop_intervals=$((stop_intervals - 1))
+    systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval"
 done
 
-touch /${SERVICE}.success
-rm /${SERVICE}.stopfail
+touch "/${SERVICE}.success"
+rm "/${SERVICE}.stopfail"
 
 exit 0
index e8b69245d83628a9deb53d98f77efee009cae910..f1f4c26caa822629ba6d4dcdc50bec92e1e117d2 100755 (executable)
@@ -8,10 +8,11 @@ input="$2"
 expected="$3"
 
 output=$(mktemp --tmpdir "test-udev-dmi-memory-id.XXXXXXXXXX")
+# shellcheck disable=SC2064
 trap "rm '$output'" EXIT INT QUIT PIPE
 
 (
     set -x
-    "$dmi_memory_id" -F "$input" >$output
+    "$dmi_memory_id" -F "$input" >"$output"
     diff -u "$output" "$expected"
 )
index 4f009b4c45617488c75ad2c11e6719e94d0c8713..562f3647009161f0c5a78c59e91229f44975e73a 100755 (executable)
@@ -7,7 +7,7 @@ trap "journalctl --rotate --vacuum-size=16M" EXIT
 
 # Rotation/flush test, see https://github.com/systemd/systemd/issues/19895
 journalctl --relinquish-var
-for i in {0..50}; do
+for _ in {0..50}; do
     dd if=/dev/urandom bs=1M count=1 | base64 | systemd-cat
 done
 journalctl --rotate
@@ -116,7 +116,7 @@ cmp /expected /output
 # test that LogLevelMax can also suppress logging about services, not only by services
 systemctl start silent-success
 journalctl --sync
-[[ -z `journalctl -b -q -u silent-success.service` ]]
+[[ -z "$(journalctl -b -q -u silent-success.service)" ]]
 
 # Add new tests before here, the journald restarts below
 # may make tests flappy.
index 71769bc50ae54f37214ccd2586e2ee5fa9f3fec8..cd98ed82175d1862cd34d8b630e88a847921632e 100755 (executable)
@@ -8,9 +8,9 @@ function check_validity() {
     local f ID_OR_HANDLE
 
     for f in /run/udev/watch/*; do
-        ID_OR_HANDLE=$(readlink $f)
-        test -L /run/udev/watch/${ID_OR_HANDLE}
-        test $(readlink /run/udev/watch/${ID_OR_HANDLE}) = $(basename $f)
+        ID_OR_HANDLE="$(readlink "$f")"
+        test -L "/run/udev/watch/${ID_OR_HANDLE}"
+        test "$(readlink "/run/udev/watch/${ID_OR_HANDLE}")" = "$(basename "$f")"
     done
 }
 
@@ -49,7 +49,7 @@ check
 
 MAJOR=$(udevadm info /dev/sda | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')
 MINOR=$(udevadm info /dev/sda | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')
-test -L /run/udev/watch/b${MAJOR}:${MINOR}
+test -L "/run/udev/watch/b${MAJOR}:${MINOR}"
 
 cat >/run/udev/rules.d/50-testsuite.rules <<EOF
 ACTION=="change", SUBSYSTEM=="block", KERNEL=="sda", OPTIONS:="nowatch"
@@ -59,7 +59,7 @@ check
 
 MAJOR=$(udevadm info /dev/sda | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')
 MINOR=$(udevadm info /dev/sda | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')
-test ! -e /run/udev/watch/b${MAJOR}:${MINOR}
+test ! -e "/run/udev/watch/b${MAJOR}:${MINOR}"
 
 rm /run/udev/rules.d/00-debug.rules
 rm /run/udev/rules.d/50-testsuite.rules
index d8c9ffa38be7530d1a5233454407e2ca518fb57d..eb7259796125874301e3202da9729ea7007c50d9 100755 (executable)
@@ -43,7 +43,7 @@ if systemctl --version | grep -q -- +OPENSSL ; then
     systemd-creds encrypt --name=test-54 /tmp/test-54-plaintext /tmp/test-54-ciphertext
     systemd-creds decrypt --name=test-54 /tmp/test-54-ciphertext | cmp /tmp/test-54-plaintext
 
-    systemd-run -p SetCredentialEncrypted=test-54:"`cat /tmp/test-54-ciphertext`" \
+    systemd-run -p SetCredentialEncrypted=test-54:"$(cat /tmp/test-54-ciphertext)" \
                 --wait \
                 --pipe \
                 cat '${CREDENTIALS_DIRECTORY}/test-54' | cmp /tmp/test-54-plaintext
index 0810de2051f17f3994ca55180fb1a284984a8014..ef9b6b57c5fd372dd05275da80fcecb241cba6ce 100755 (executable)
@@ -3,6 +3,7 @@ set -eux
 set -o pipefail
 
 TESTS_GLOB="test-loop-block"
-. $(dirname $0)/testsuite-02.sh
+# shellcheck source=test/units/testsuite-02.sh
+. "$(dirname "$0")/testsuite-02.sh"
 
 exit 0
index 9b22d79fd31032c2d3ee78cb1ebe09d54d7ceed7..140ccfe36f08ae1968e38939e3637f005bf95554 100755 (executable)
@@ -6,28 +6,28 @@ setup() {
     systemd-analyze log-level debug
     systemd-analyze log-target console
 
-    for i in `seq 0 3`;
+    for i in {0..3};
     do
-        ip netns del ns${i} || true
-        ip link del veth${i} || true
-        ip netns add ns${i}
-        ip link add veth${i} type veth peer name veth${i}_
-        ip link set veth${i}_ netns ns${i}
-        ip -n ns${i} link set dev veth${i}_ up
-        ip -n ns${i} link set dev lo up
-        ip -n ns${i} addr add "192.168.113."$((4*i+1))/30 dev veth${i}_
-        ip link set dev veth${i} up
-        ip addr add "192.168.113."$((4*i+2))/30 dev veth${i}
+        ip netns del "ns${i}" || true
+        ip link del "veth${i}" || true
+        ip netns add "ns${i}"
+        ip link add "veth${i}" type veth peer name "veth${i}_"
+        ip link set "veth${i}_" netns "ns${i}"
+        ip -n "ns${i}" link set dev "veth${i}_" up
+        ip -n "ns${i}" link set dev lo up
+        ip -n "ns${i}" addr add "192.168.113."$((4*i+1))/30 dev "veth${i}_"
+        ip link set dev "veth${i}" up
+        ip addr add "192.168.113."$((4*i+2))/30 dev "veth${i}"
     done
 }
 
 teardown() {
     set +e
 
-    for i in `seq 0 3`;
+    for i in {0..3};
     do
-        ip netns del ns${i}
-        ip link del veth${i}
+        ip netns del "ns${i}"
+        ip link del "veth${i}"
     done
 
     systemd-analyze log-level info
index bcc4dc9f17ead2a388b41b594a56f5b1ce0133d6..13a1316b7add28f2110cd1d6226b455ff4c2143e 100755 (executable)
@@ -76,6 +76,8 @@ helper_wait_for_pvscan() {
     # Get major and minor numbers from the udev database
     # (udevadm returns MAJOR= and MINOR= expressions, so let's pull them into
     # the current environment via `source` for easier parsing)
+    #
+    # shellcheck source=/dev/null
     source <(udevadm info -q property "$real_dev" | grep -E "(MAJOR|MINOR)=")
     # Sanity check if we got correct major and minor numbers
     test -e "/sys/dev/block/$MAJOR:$MINOR/"