134 lines
3.1 KiB
Bash
Executable file
134 lines
3.1 KiB
Bash
Executable file
#!/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
|
|
[ -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 all && rm -rf "${INCDIR}/*"
|
|
}
|
|
|
|
@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) ]
|
|
}
|
|
|
|
@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 ]
|
|
}
|