diff --git a/test/main.bats b/test/main.bats index 0ecb339..4378d62 100755 --- a/test/main.bats +++ b/test/main.bats @@ -1,26 +1,28 @@ #!/usr/bin/env bats setup() { - port=$(awk -v min=2222 -v max=2999 'BEGIN{srand(); print int(min+rand()*(max-min+1))}') - date=$(date +"%Y-%m-%d-%H") inode=$(stat --format=%i /backup) rm -f /root/bkctld.key* && ssh-keygen -t rsa -N "" -f /root/bkctld.key -q - . /usr/lib/bkctld/config + . /usr/lib/bkctld/includes JAILNAME=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w15 | head -n1) + JAILPATH="/backup/jails/${JAILNAME}" + INCSPATH="/backup/incs/${JAILNAME}" + PORT=$(awk -v min=2222 -v max=2999 'BEGIN{srand(); print int(min+rand()*(max-min+1))}') + INC_NAME=$(date +"%Y-%m-%d-%H") } teardown() { - /usr/lib/bkctld/bkctld-remove "${JAILNAME}" && rm -rf "${INCDIR}/*" + /usr/lib/bkctld/bkctld-remove "${JAILNAME}" && rm -rf "${INCSPATH}" } @test "init" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" inode=$(stat --format=%i /backup) if [ "${inode}" -eq 256 ]; then - run stat --format=%i "${JAILDIR}/${JAILNAME}" + run stat --format=%i "${JAILPATH}" [ "${output}" -eq 256 ] else - run test -d "${JAILDIR}/${JAILNAME}" + run test -d "${JAILPATH}" [ "${status}" -eq 0 ] fi } @@ -28,7 +30,7 @@ teardown() { @test "start" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-start "${JAILNAME}" - pid=$(cat "${JAILDIR}/${JAILNAME}/${SSHD_PID}") + pid=$(cat "${JAILPATH}/${SSHD_PID}") run ps --pid "${pid}" [ "${status}" -eq 0 ] } @@ -36,7 +38,7 @@ teardown() { @test "stop" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-start "${JAILNAME}" - pid=$(cat "${JAILDIR}/${JAILNAME}/${SSHD_PID}") + pid=$(cat "${JAILPATH}/${SSHD_PID}") /usr/lib/bkctld/bkctld-stop "${JAILNAME}" run ps --pid "${pid}" [ "${status}" -ne 0 ] @@ -46,16 +48,16 @@ teardown() { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-start "${JAILNAME}" /usr/lib/bkctld/bkctld-reload "${JAILNAME}" - run grep "Received SIGHUP; restarting." "${JAILDIR}/${JAILNAME}/var/log/authlog" + run grep "Received SIGHUP; restarting." "${JAILPATH}/var/log/authlog" [ "${status}" -eq 0 ] } @test "restart" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-start "${JAILNAME}" - bpid=$(cat "${JAILDIR}/${JAILNAME}/${SSHD_PID}") + bpid=$(cat "${JAILPATH}/${SSHD_PID}") /usr/lib/bkctld/bkctld-restart "${JAILNAME}" - apid=$(cat "${JAILDIR}/${JAILNAME}/${SSHD_PID}") + apid=$(cat "${JAILPATH}/${SSHD_PID}") [ "${bpid}" -ne "${apid}" ] } @@ -69,7 +71,7 @@ teardown() { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-start "${JAILNAME}" /usr/lib/bkctld/bkctld-key "${JAILNAME}" /root/bkctld.key.pub - run cat "/backup/jails/${JAILNAME}/root/.ssh/authorized_keys" + run cat "${JAILPATH}/root/.ssh/authorized_keys" [ "${status}" -eq 0 ] [ "${output}" = $(cat /root/bkctld.key.pub) ] } @@ -77,7 +79,7 @@ teardown() { @test "port" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-start "${JAILNAME}" - /usr/lib/bkctld/bkctld-port "${JAILNAME}" "${port}" + /usr/lib/bkctld/bkctld-port "${JAILNAME}" "${PORT}" run nc -vz 127.0.0.1 "${port}" [ "${status}" -eq 0 ] } @@ -86,10 +88,10 @@ teardown() { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-inc if [ "${inode}" -eq 256 ]; then - run stat --format=%i "${INCDIR}/${JAILNAME}/${date}" + run stat --format=%i "${INCDIR}/${JAILNAME}/${INC_NAME}" [ "${output}" -eq 256 ] else - run test -d "${INCDIR}/${JAILNAME}/${date}" + run test -d "${INCDIR}/${JAILNAME}/${INC_NAME}" [ "${status}" -eq 0 ] fi } @@ -97,7 +99,7 @@ teardown() { @test "ssh" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-start "${JAILNAME}" - /usr/lib/bkctld/bkctld-port "${JAILNAME}" "${port}" + /usr/lib/bkctld/bkctld-port "${JAILNAME}" "${PORT}" /usr/lib/bkctld/bkctld-key "${JAILNAME}" /root/bkctld.key.pub run ssh -p "${port}" -i /root/bkctld.key -oStrictHostKeyChecking=no root@127.0.0.1 ls [ "$status" -eq 0 ] @@ -106,7 +108,7 @@ teardown() { @test "rsync" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" /usr/lib/bkctld/bkctld-start "${JAILNAME}" - /usr/lib/bkctld/bkctld-port "${JAILNAME}" "${port}" + /usr/lib/bkctld/bkctld-port "${JAILNAME}" "${PORT}" /usr/lib/bkctld/bkctld-key "${JAILNAME}" /root/bkctld.key.pub run rsync -a -e "ssh -p ${port} -i /root/bkctld.key -oStrictHostKeyChecking=no" /tmp/ root@127.0.0.1:/var/backup/ [ "$status" -eq 0 ] @@ -120,14 +122,14 @@ teardown() { @test "check-warning" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" - touch --date="$(date -d -2days)" "/backup/jails/${JAILNAME}/var/log/lastlog" + touch --date="$(date -d -2days --iso-8601=seconds)" "${JAILPATH}/var/log/lastlog" run /usr/lib/bkctld/bkctld-check [ "$status" -eq 1 ] } @test "check-critical" { /usr/lib/bkctld/bkctld-init "${JAILNAME}" - touch --date="$(date -d -3days)" "/backup/jails/${JAILNAME}/var/log/lastlog" + touch --date="$(date -d -3days --iso-8601=seconds)" "${JAILPATH}/var/log/lastlog" run /usr/lib/bkctld/bkctld-check [ "$status" -eq 2 ] }