test: use idiomatic bash loop iteration

In a few cases, also avoid a sleep in the last (failed) iteration of the loop.
It doesn't matter too much, but it's still ugly.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2023-04-07 10:17:15 +02:00
parent 97b35c7cec
commit 4481a30855
11 changed files with 33 additions and 35 deletions

View file

@ -16,20 +16,18 @@ function check_validity() {
} }
function check() { function check() {
local i j for _ in {1..2}; do
for ((i = 0; i < 2; i++)); do
systemctl restart systemd-udevd.service systemctl restart systemd-udevd.service
udevadm control --ping udevadm control --ping
udevadm settle udevadm settle
check_validity check_validity
for ((j = 0; j < 2; j++)); do for _ in {1..2}; do
udevadm trigger -w --action add --subsystem-match=block udevadm trigger -w --action add --subsystem-match=block
check_validity check_validity
done done
for ((j = 0; j < 2; j++)); do for _ in {1..2}; do
udevadm trigger -w --action change --subsystem-match=block udevadm trigger -w --action change --subsystem-match=block
check_validity check_validity
done done

View file

@ -8,8 +8,8 @@ set -o pipefail
wait_service_active() {( wait_service_active() {(
set +ex set +ex
for (( i = 0; i < 20; i++ )); do for i in {1..20}; do
if (( i != 0 )); then sleep 0.5; fi (( i > 1 )) && sleep 0.5
if systemctl --quiet is-active "${1?}"; then if systemctl --quiet is-active "${1?}"; then
return 0 return 0
fi fi
@ -19,8 +19,8 @@ wait_service_active() {(
wait_service_inactive() {( wait_service_inactive() {(
set +ex set +ex
for (( i = 0; i < 20; i++ )); do for i in {1..20}; do
if (( i != 0 )); then sleep 0.5; fi (( i > 1 )) && sleep 0.5
systemctl --quiet is-active "${1?}" systemctl --quiet is-active "${1?}"
if [[ "$?" == "3" ]]; then if [[ "$?" == "3" ]]; then
return 0 return 0

View file

@ -18,8 +18,8 @@ EOF
udevadm control --reload udevadm control --reload
udevadm trigger --settle --action add /dev/null udevadm trigger --settle --action add /dev/null
for ((i = 0; i < 20; i++)); do for i in {1..20}; do
((i == 0)) || sleep .5 ((i > 1)) && sleep .5
( (
systemctl -q is-active /dev/test/symlink-to-null-on-add systemctl -q is-active /dev/test/symlink-to-null-on-add
@ -34,8 +34,8 @@ assert_rc 0 systemctl -q is-active /sys/test/alias-to-null-on-add
assert_rc 3 systemctl -q is-active /sys/test/alias-to-null-on-change assert_rc 3 systemctl -q is-active /sys/test/alias-to-null-on-change
udevadm trigger --settle --action change /dev/null udevadm trigger --settle --action change /dev/null
for ((i = 0; i < 20; i++)); do for i in {1..20}; do
((i == 0)) || sleep .5 ((i > 1)) && sleep .5
( (
! systemctl -q is-active /dev/test/symlink-to-null-on-add ! systemctl -q is-active /dev/test/symlink-to-null-on-add
@ -50,8 +50,8 @@ assert_rc 3 systemctl -q is-active /sys/test/alias-to-null-on-add
assert_rc 0 systemctl -q is-active /sys/test/alias-to-null-on-change assert_rc 0 systemctl -q is-active /sys/test/alias-to-null-on-change
udevadm trigger --settle --action add /dev/null udevadm trigger --settle --action add /dev/null
for ((i = 0; i < 20; i++)); do for i in {1..20}; do
((i == 0)) || sleep .5 ((i > 1)) && sleep .5
( (
systemctl -q is-active /dev/test/symlink-to-null-on-add systemctl -q is-active /dev/test/symlink-to-null-on-add

View file

@ -15,7 +15,7 @@ KERNEL!="null", GOTO="test-end"
ACTION=="remove", GOTO="test-end" ACTION=="remove", GOTO="test-end"
# add 100 * 100byte of properties # add 100 * 100byte of properties
$(for ((i = 0; i < 100; i++)); do printf 'ENV{XXX%03i}="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"\n' "$i"; done) $(for i in {1..100}; do printf 'ENV{XXX%03i}="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"\n' "$i"; done)
LABEL="test-end" LABEL="test-end"
EOF EOF
@ -46,7 +46,7 @@ for _ in {1..40}; do
fi fi
FOUND=1 FOUND=1
for ((i = 0; i < 100; i++)); do for i in {1..100}; do
if ! grep -F "$(printf 'XXX%03i=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789' "$i")" "$TMPDIR"/monitor.txt; then if ! grep -F "$(printf 'XXX%03i=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789' "$i")" "$TMPDIR"/monitor.txt; then
FOUND= FOUND=
break break

View file

@ -330,8 +330,8 @@ EOF
systemctl restart getty@tty2.service systemctl restart getty@tty2.service
# check session # check session
for ((i = 0; i < 30; i++)); do for i in {1..30}; do
(( i != 0 )) && sleep 1 (( i > 1 )) && sleep 1
check_session && break check_session && break
done done
check_session check_session

View file

@ -212,8 +212,8 @@ start_mon() {
} }
wait_mon() { wait_mon() {
for ((i = 0; i < 10; i++)); do for i in {1..10}; do
if (( i != 0 )); then sleep 1; fi (( i > 1 )) && sleep 1
if grep -q "$1" "$mon"; then break; fi if grep -q "$1" "$mon"; then break; fi
done done
assert_in "$2" "$(cat "$mon")" assert_in "$2" "$(cat "$mon")"
@ -243,8 +243,8 @@ EOF
echo 'disable NTP' echo 'disable NTP'
timedatectl set-ntp false timedatectl set-ntp false
for ((i = 0; i < 10; i++)); do for i in {1..10}; do
if (( i != 0 )); then sleep 1; fi (( i > 1 )) && sleep 1
if [[ "$(systemctl show systemd-timesyncd --property ActiveState)" == "ActiveState=inactive" ]]; then if [[ "$(systemctl show systemd-timesyncd --property ActiveState)" == "ActiveState=inactive" ]]; then
break; break;
fi fi
@ -258,8 +258,8 @@ EOF
timedatectl set-ntp true timedatectl set-ntp true
wait_mon "NTP" "BOOLEAN true" wait_mon "NTP" "BOOLEAN true"
assert_ntp "true" assert_ntp "true"
for ((i = 0; i < 10; i++)); do for i in {1..10}; do
if (( i != 0 )); then sleep 1; fi (( i > 1 )) && sleep 1
if [[ "$(systemctl show systemd-timesyncd --property ActiveState)" == "ActiveState=active" ]]; then if [[ "$(systemctl show systemd-timesyncd --property ActiveState)" == "ActiveState=active" ]]; then
break; break;
fi fi

View file

@ -27,9 +27,9 @@ inspect() {
} }
wait_for_state() { wait_for_state() {
for ((i = 0; i < 10; i++)) ; do for i in {1..10}; do
(( i > 1 )) && sleep 0.5
homectl inspect "$1" | grep -qF "State: $2" && break homectl inspect "$1" | grep -qF "State: $2" && break
sleep .5
done done
} }

View file

@ -489,7 +489,7 @@ systemd-dissect --detach "$LOOP"
# Note, sizeof_field(struct loop_info64, lo_file_name) == 64, # Note, sizeof_field(struct loop_info64, lo_file_name) == 64,
# and --loop-ref accepts upto 63 characters, and udev creates symlink # and --loop-ref accepts upto 63 characters, and udev creates symlink
# based on the name when it has upto _62_ characters. # based on the name when it has upto _62_ characters.
name="$(for (( i = 0; i < 62; i++ )); do echo -n 'x'; done)" name="$(for _ in {1..62}; do echo -n 'x'; done)"
LOOP="$(systemd-dissect --attach --loop-ref="$name" "${image}.raw")" LOOP="$(systemd-dissect --attach --loop-ref="$name" "${image}.raw")"
udevadm trigger -w "$LOOP" udevadm trigger -w "$LOOP"
@ -499,7 +499,7 @@ test "/dev/loop/by-ref/$name" -ef "$LOOP"
# Detach by the /dev/loop/by-ref symlink # Detach by the /dev/loop/by-ref symlink
systemd-dissect --detach "/dev/loop/by-ref/$name" systemd-dissect --detach "/dev/loop/by-ref/$name"
name="$(for (( i = 0; i < 63; i++ )); do echo -n 'x'; done)" name="$(for _ in {1..63}; do echo -n 'x'; done)"
LOOP="$(systemd-dissect --attach --loop-ref="$name" "${image}.raw")" LOOP="$(systemd-dissect --attach --loop-ref="$name" "${image}.raw")"
udevadm trigger -w "$LOOP" udevadm trigger -w "$LOOP"

View file

@ -181,7 +181,7 @@ EOF
# Trigger the mount ratelimiting # Trigger the mount ratelimiting
cd "$(mktemp -d)" cd "$(mktemp -d)"
mkdir foo mkdir foo
for ((i = 0; i < 50; i++)); do for _ in {1..50}; do
mount --bind foo foo mount --bind foo foo
umount foo umount foo
done done
@ -225,7 +225,7 @@ EOF
# shellcheck disable=SC2064 # shellcheck disable=SC2064
trap "rm -f /run/systemd/system/tmp-hoge.mount '$mount_mytmpfs'" RETURN trap "rm -f /run/systemd/system/tmp-hoge.mount '$mount_mytmpfs'" RETURN
for ((i = 0; i < 10; i++)); do for _ in {1..10}; do
systemctl --no-block start tmp-hoge.mount systemctl --no-block start tmp-hoge.mount
sleep ".$RANDOM" sleep ".$RANDOM"
systemctl daemon-reexec systemctl daemon-reexec

View file

@ -158,11 +158,11 @@ helper_check_device_units() {(
local i local i
for (( i = 0; i < 20; i++ )); do for i in {1..20}; do
(( i > 1 )) && sleep 0.5
if check_device_units 0 "$@"; then if check_device_units 0 "$@"; then
return 0 return 0
fi fi
sleep .5
done done
check_device_units 1 "$@" check_device_units 1 "$@"

View file

@ -206,8 +206,8 @@ restore_keymap() {
wait_vconsole_setup() { wait_vconsole_setup() {
local i ss local i ss
for ((i = 0; i < 20; i++)); do for i in {1..20}; do
if (( i != 0 )); then sleep .5; fi (( i > 1 )) && sleep 0.5
ss="$(systemctl --property SubState --value show systemd-vconsole-setup.service)" ss="$(systemctl --property SubState --value show systemd-vconsole-setup.service)"
if [[ "$ss" == "exited" || "$ss" == "dead" || "$ss" == "condition" ]]; then if [[ "$ss" == "exited" || "$ss" == "dead" || "$ss" == "condition" ]]; then
return 0 return 0