# Copyright: 2008
# License: GPL v3 or later
-# these tests should all be able to
-# as a non-privileged user.
+# these tests should all be able to run as a non-privileged user.
# all subcommands in this script should complete without failure:
set -e
+# piped commands should return the code of the first non-zero return
+set -o pipefail
+
+## make sure that the right tools are installed to run the test. the
+## test has *more* requirements than plain ol' monkeysphere:
+which socat || { echo "You must have socat installed to run this test." ; exit 1; }
+
+## FIXME: other checks?
# gpg command for test admin user
gpgadmin() {
# kill the sshd process if it's still running
kill "$SSHD_PID"
+ SSHD_PID=
set -e
echo "### removing temp dir..."
rm -rf "$TEMPDIR"
+ if [ "$SSHD_PID" ] ; then
+ echo "### killing off lingering sshd..."
+ kill "$SSHD_PID"
+ fi
+
wait
}
+SSHD_PID=
+
## setup trap
trap failed_cleanup EXIT
export SSHD_CONFIG="$TEMPDIR"/sshd_config
export SOCKET="$TEMPDIR"/ssh-socket
-export SSHD_PID=
+# Make sure $DISPLAY is set to convince ssh and monkeysphere to fall
+# back on $SSH_ASKPASS. Make sure it's not set to the current actual
+# $DISPLAY (if one exists) because this test suite should not be doing
+# *anything* with any running X11 session.
export DISPLAY=monkeys
### CONFIGURE ENVIRONMENTS
# remove the gpg.conf
rm "$MONKEYSPHERE_SYSCONFIGDIR"/gnupg-host/gpg.conf
-HOSTKEYID=$( monkeysphere-server show-key | tail -n1 | cut -f3 -d\ )
+HOSTKEYID=$( monkeysphere-server show-key | grep '^OpenPGP fingerprint: ' | cut -f3 -d\ )
# certify it with the "Admin's Key".
# (this would normally be done via keyservers)