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.
}
function check() {
- local i j
-
- for ((i = 0; i < 2; i++)); do
+ for _ in {1..2}; do
systemctl restart systemd-udevd.service
udevadm control --ping
udevadm settle
check_validity
- for ((j = 0; j < 2; j++)); do
+ for _ in {1..2}; do
udevadm trigger -w --action add --subsystem-match=block
check_validity
done
- for ((j = 0; j < 2; j++)); do
+ for _ in {1..2}; do
udevadm trigger -w --action change --subsystem-match=block
check_validity
done
wait_service_active() {(
set +ex
- for (( i = 0; i < 20; i++ )); do
- if (( i != 0 )); then sleep 0.5; fi
+ for i in {1..20}; do
+ (( i > 1 )) && sleep 0.5
if systemctl --quiet is-active "${1?}"; then
return 0
fi
wait_service_inactive() {(
set +ex
- for (( i = 0; i < 20; i++ )); do
- if (( i != 0 )); then sleep 0.5; fi
+ for i in {1..20}; do
+ (( i > 1 )) && sleep 0.5
systemctl --quiet is-active "${1?}"
if [[ "$?" == "3" ]]; then
return 0
udevadm control --reload
udevadm trigger --settle --action add /dev/null
-for ((i = 0; i < 20; i++)); do
- ((i == 0)) || sleep .5
+for i in {1..20}; do
+ ((i > 1)) && sleep .5
(
systemctl -q is-active /dev/test/symlink-to-null-on-add
assert_rc 3 systemctl -q is-active /sys/test/alias-to-null-on-change
udevadm trigger --settle --action change /dev/null
-for ((i = 0; i < 20; i++)); do
- ((i == 0)) || sleep .5
+for i in {1..20}; do
+ ((i > 1)) && sleep .5
(
! systemctl -q is-active /dev/test/symlink-to-null-on-add
assert_rc 0 systemctl -q is-active /sys/test/alias-to-null-on-change
udevadm trigger --settle --action add /dev/null
-for ((i = 0; i < 20; i++)); do
- ((i == 0)) || sleep .5
+for i in {1..20}; do
+ ((i > 1)) && sleep .5
(
systemctl -q is-active /dev/test/symlink-to-null-on-add
ACTION=="remove", GOTO="test-end"
# 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"
EOF
fi
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
FOUND=
break
systemctl restart getty@tty2.service
# check session
- for ((i = 0; i < 30; i++)); do
- (( i != 0 )) && sleep 1
+ for i in {1..30}; do
+ (( i > 1 )) && sleep 1
check_session && break
done
check_session
}
wait_mon() {
- for ((i = 0; i < 10; i++)); do
- if (( i != 0 )); then sleep 1; fi
+ for i in {1..10}; do
+ (( i > 1 )) && sleep 1
if grep -q "$1" "$mon"; then break; fi
done
assert_in "$2" "$(cat "$mon")"
echo 'disable NTP'
timedatectl set-ntp false
- for ((i = 0; i < 10; i++)); do
- if (( i != 0 )); then sleep 1; fi
+ for i in {1..10}; do
+ (( i > 1 )) && sleep 1
if [[ "$(systemctl show systemd-timesyncd --property ActiveState)" == "ActiveState=inactive" ]]; then
break;
fi
timedatectl set-ntp true
wait_mon "NTP" "BOOLEAN true"
assert_ntp "true"
- for ((i = 0; i < 10; i++)); do
- if (( i != 0 )); then sleep 1; fi
+ for i in {1..10}; do
+ (( i > 1 )) && sleep 1
if [[ "$(systemctl show systemd-timesyncd --property ActiveState)" == "ActiveState=active" ]]; then
break;
fi
}
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
- sleep .5
done
}
# Note, sizeof_field(struct loop_info64, lo_file_name) == 64,
# and --loop-ref accepts upto 63 characters, and udev creates symlink
# 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")"
udevadm trigger -w "$LOOP"
# Detach by the /dev/loop/by-ref symlink
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")"
udevadm trigger -w "$LOOP"
# Trigger the mount ratelimiting
cd "$(mktemp -d)"
mkdir foo
- for ((i = 0; i < 50; i++)); do
+ for _ in {1..50}; do
mount --bind foo foo
umount foo
done
# shellcheck disable=SC2064
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
sleep ".$RANDOM"
systemctl daemon-reexec
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
return 0
fi
- sleep .5
done
check_device_units 1 "$@"
wait_vconsole_setup() {
local i ss
- for ((i = 0; i < 20; i++)); do
- if (( i != 0 )); then sleep .5; fi
+ for i in {1..20}; do
+ (( i > 1 )) && sleep 0.5
ss="$(systemctl --property SubState --value show systemd-vconsole-setup.service)"
if [[ "$ss" == "exited" || "$ss" == "dead" || "$ss" == "condition" ]]; then
return 0