Files
rk1/tests/test-firstboot-ssh.sh

22 lines
1019 B
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
PROJECT_DIR=$(cd -- "$SCRIPT_DIR/.." && pwd -P)
IDENTITY="$PROJECT_DIR/image/overlay/usr/local/sbin/rk1-media-identity"
UNIT="$PROJECT_DIR/image/overlay/etc/systemd/system/rk1-media-identity.service"
DROPIN="$PROJECT_DIR/image/overlay/etc/systemd/system/ssh.service.d/10-rk1-media-identity.conf"
runtime_line=$(grep -nF 'install -d -o root -g root -m 0755 /run/sshd' "$IDENTITY" | cut -d: -f1)
validation_line=$(grep -nF '/usr/sbin/sshd -t' "$IDENTITY" | cut -d: -f1)
[[ -n "$runtime_line" && -n "$validation_line" && "$runtime_line" -lt "$validation_line" ]] || {
echo 'SSH runtime directory is not created before configuration validation' >&2
exit 1
}
grep -qx 'RuntimeDirectory=sshd' "$UNIT"
grep -qx 'RuntimeDirectoryMode=0755' "$UNIT"
grep -qx 'Requires=rk1-media-identity.service' "$DROPIN"
grep -qx 'After=rk1-media-identity.service' "$DROPIN"
echo 'PASS: first-boot SSH runtime ordering regression'