Rewrite bats tests

This commit is contained in:
Victor LABORIE 2018-03-28 15:11:49 +02:00
parent 2893953ec0
commit d27bbbc0f5

View file

@ -2,47 +2,132 @@
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
bkctld init test
bkctld port test "${port}"
bkctld key test /root/bkctld.key.pub
bkctld start test
bpid=$(cat /backup/jails/test/run/sshd.pid)
bkctld restart test
apid=$(cat /backup/jails/test/run/sshd.pid)
bkctld inc
[ -f /etc/default/bkctld ] && . /etc/default/bkctld
CONFDIR="${CONFDIR:-/etc/evobackup}"
JAILDIR="${JAILDIR:-/backup/jails}"
INCDIR="${INCDIR:-/backup/incs}"
TPLDIR="${TPLDIR:-/usr/share/bkctld}"
LOCALTPLDIR="${LOCALTPLDIR:-/usr/local/share/bkctld}"
SSHD_PID="${SSHD_PID:-/run/sshd.pid}"
SSHD_CONFIG="${SSHD_CONFIG:-/etc/ssh/sshd_config}"
AUTHORIZED_KEYS="${AUTHORIZED_KEYS:-/root/.ssh/authorized_keys}"
FIREWALL_RULES="${FIREWALL_RULES:-}"
LOGLEVEL="${LOGLEVEL:-6}"
}
teardown() {
bkctld remove test
bkctld remove all && rm -rf "${INCDIR}/*"
}
@test "port" {
run nc -vz 127.0.0.1 "${port}"
[ "$status" -eq 0 ]
@test "init" {
bkctld init test
if [ "${inode}" -eq 256 ]; then
run stat --format=%i "${JAILDIR}/test"
[ "${output}" -eq 256 ]
else
run test -d "${JAILDIR}/test"
[ "${status}" -eq 0 ]
fi
}
@test "update" {
skip
}
@test "start" {
bkctld init test
bkctld start test
pid=$(cat "${JAILDIR}/test/${SSHD_PID}")
run ps --pid "${pid}"
[ "${status}" -eq 0 ]
}
@test "stop" {
bkctld init test
bkctld start test
pid=$(cat "${JAILDIR}/test/${SSHD_PID}")
bkctld stop test
run ps --pid "${pid}"
[ "${status}" -ne 0 ]
}
@test "reload" {
bkctld init test
bkctld start test
bkctld reload test
run grep "Received SIGHUP; restarting." "${JAILDIR}/test/var/log/authlog"
[ "${status}" -eq 0 ]
}
@test "restart" {
bkctld init test
bkctld start test
bpid=$(cat "${JAILDIR}/test/${SSHD_PID}")
bkctld restart test
apid=$(cat "${JAILDIR}/test/${SSHD_PID}")
[ "${bpid}" -ne "${apid}" ]
}
@test "status" {
bkctld init test
run bkctld status test
[ "${status}" -eq 0 ]
}
@test "key" {
bkctld init test
bkctld start test
bkctld key test /root/bkctld.key.pub
run cat /backup/jails/test/root/.ssh/authorized_keys
[ "$status" -eq 0 ]
[ "$output" = $(cat /root/bkctld.key.pub) ]
[ "${status}" -eq 0 ]
[ "${output}" = $(cat /root/bkctld.key.pub) ]
}
@test "port" {
bkctld init test
bkctld start test
bkctld port test "${port}"
run nc -vz 127.0.0.1 "${port}"
[ "${status}" -eq 0 ]
}
@test "ip" {
skip
}
@test "inc" {
bkctld init test
bkctld inc
if [ "${inode}" -eq 256 ]; then
run stat --format=%i "${INCDIR}/test/${date}"
[ "${output}" -eq 256 ]
else
run test -d "${INCDIR}/test/${date}"
[ "${status}" -eq 0 ]
fi
}
@test "rm" {
skip
}
@test "ssh" {
bkctld init test
bkctld start test
bkctld port test "${port}"
bkctld key test /root/bkctld.key.pub
run ssh -p "${port}" -i /root/bkctld.key -oStrictHostKeyChecking=no root@127.0.0.1 ls
[ "$status" -eq 0 ]
}
@test "rsync" {
bkctld init test
bkctld start test
bkctld port test "${port}"
bkctld key test /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 ]
}
@test "restart" {
[ "${bpid}" -ne "${apid}" ]
}
@test "inc" {
run ls /backup/incs/test/*
[ "$status" -eq 0 ]
}