#
# NOTE: Not a script, to be included by scripts
#
+USER=$(id -un)
BASEDIR=rundir/${TESTNAME}/
PORT=22222
EOF
echo "# AUTOGENERATED Test ${TESTNAME}" > ${BASEDIR}cfg_items.conf
+echo "pseudo 0 0 Test item" >> ${BASEDIR}cfg_items.conf
LOG() {
echo "TEST ${TESTNAME}: "$*
}
TRY_COMMAND() {
cmd="$*"
+ echo ">> $cmd"
if ! $cmd ; then
FAIL "Command \`$cmd\` failed"
fi
}
-DISPENSE="../dispense -H localhost -P ${PORT}"
+DISPENSE="../dispense -f /dev/null -H localhost -P ${PORT}"
-LD_LIBRARY_PATH=.. ../dispsrv -f ${BASEDIR}cfg_server.conf --dont-daemonise > ${BASEDIR}server.log 2>&1 &
+LD_LIBRARY_PATH=.. ../dispsrv -f ${BASEDIR}cfg_server.conf --dont-daemonise -d 2 > ${BASEDIR}server.log 2>&1 &
server_pid=$!
cleanup() {
- LOG "Killing ${server_pid}"
- kill ${server_pid}; true
+ if pidof dispsrv | grep ${server_pid} > /dev/null; then
+ LOG "Killing ${server_pid}"
+ kill ${server_pid}; true
+ else
+ LOG "Server already terminated"
+ fi
}
trap cleanup EXIT
LOG "Server not responding on ${PORT}"
LOG "Server log contents:"
cat ${BASEDIR}server.log
+ exit 1
+fi
+
+if [[ "x$USER" == "xroot" ]]; then
+ FAIL "Running as root"
+fi
+# Ensure that the database doesn't already contain the current user
+# - 1. Protects against running the test against the production database
+# - 2. Allows adding the current user as an admin
+if $DISPENSE acct "${USER}" 2> /dev/null; then
+ FAIL "Database contains '$USER', are you running on production?"
fi
+# Add the current user as an admin
+sqlite3 "${BASEDIR}cokebank.db" "INSERT INTO accounts (acct_name,acct_is_admin,acct_uid) VALUES ('${USER}',1,1);"