tests/basic now tests for adding and revoking hostnames.
[monkeysphere.git] / tests / basic
index 82edf43899a8baf5dd66e484b721570c525b426e..d83749bd6e94bb6b629e870c50870d63c53cb835 100755 (executable)
@@ -66,7 +66,7 @@ ssh_test() {
 
     # wait until the socket is created before continuing
     while [ ! -S "$SOCKET" ] ; do
-       sleep 1
+       sleep 2
     done
 
     # make a client connection to the socket
@@ -76,7 +76,7 @@ ssh_test() {
        || RETURN="$?"
 
     # kill the sshd process if it's still running
-    kill "$SSHD_PID"
+    kill "$SSHD_PID" || true
     SSHD_PID=
 
     if [ "$RETURN" = "$CODE" ] ; then
@@ -300,7 +300,7 @@ mv "$TESTHOME"/.monkeysphere/authorized_user_ids{,.bak}
 monkeysphere-authentication update-users $(whoami)
 echo
 echo "##################################################"
-echo "### ssh connection test for server authentication denial..."
+echo "### ssh connection test for failure..."
 ssh_test 255
 mv "$TESTHOME"/.monkeysphere/authorized_user_ids{.bak,}
 
@@ -313,7 +313,7 @@ chmod g+w "$TESTHOME"/.monkeysphere/authorized_user_ids
 monkeysphere-authentication update-users $(whoami)
 echo
 echo "##################################################"
-echo "### ssh connection test for server authentication denial..."
+echo "### ssh connection test for failure..."
 ssh_test 255
 chmod g-w "$TESTHOME"/.monkeysphere/authorized_user_ids
 echo
@@ -323,7 +323,7 @@ chmod o+w "$TESTHOME"/.monkeysphere/authorized_user_ids
 monkeysphere-authentication update-users $(whoami)
 echo
 echo "##################################################"
-echo "### ssh connection test for server authentication denial..."
+echo "### ssh connection test for failure..."
 ssh_test 255
 chmod o-w "$TESTHOME"/.monkeysphere/authorized_user_ids
 monkeysphere-authentication update-users $(whoami)
@@ -331,14 +331,18 @@ monkeysphere-authentication update-users $(whoami)
 # test symlinks
 echo
 echo "##################################################"
-echo "### make authorized_user_ids a symlink and updating..."
-mkdir "$TESTHOME"/.monkeysphere.linktest
-mv "$TESTHOME"/.monkeysphere{,.linktest}/authorized_user_ids
+echo "### setup for symlink tests..."
+cp -a "$TESTHOME"/.monkeysphere{,.linktest}
+
+echo
+echo "##################################################"
+echo "### make authorized_user_ids an absolute symlink and updating..."
+mv "$TESTHOME"/.monkeysphere/authorized_user_ids{,.bak}
 ln -s "$TESTHOME"/.monkeysphere{.linktest,}/authorized_user_ids
 monkeysphere-authentication update-users $(whoami)
 echo
 echo "##################################################"
-echo "### ssh connection test for server authentication success..."
+echo "### ssh connection test for success..."
 ssh_test
 echo
 echo "##################################################"
@@ -347,7 +351,26 @@ chmod o+w "$TESTHOME"/.monkeysphere.linktest
 monkeysphere-authentication update-users $(whoami)
 echo
 echo "##################################################"
-echo "### ssh connection test for server authentication denial..."
+echo "### ssh connection test for failure..."
+ssh_test 255
+chmod o-w "$TESTHOME"/.monkeysphere.linktest
+echo
+echo "##################################################"
+echo "### make authorized_user_ids a relative symlink and updating..."
+ln -sf ../.monkeysphere.linktest/authorized_user_ids "$TESTHOME"/.monkeysphere/authorized_user_ids
+monkeysphere-authentication update-users $(whoami)
+echo
+echo "##################################################"
+echo "### ssh connection test for success..."
+ssh_test
+echo
+echo "##################################################"
+echo "### create bad permissions on link dir updating..."
+chmod o+w "$TESTHOME"/.monkeysphere.linktest
+monkeysphere-authentication update-users $(whoami)
+echo
+echo "##################################################"
+echo "### ssh connection test for failure..."
 ssh_test 255
 chmod o-w "$TESTHOME"/.monkeysphere.linktest
 # FIXME: implement check of link path, and uncomment this test
@@ -358,23 +381,84 @@ chmod o-w "$TESTHOME"/.monkeysphere.linktest
 # monkeysphere-authentication update-users $(whoami)
 # echo
 # echo "##################################################"
-# echo "### ssh connection test for server authentication denial..."
+# echo "### ssh connection test for failure..."
 # ssh_test 255
 # chmod o-w "$TESTHOME"/.monkeysphere
-mv "$TESTHOME"/.monkeysphere{.linktest,}/authorized_user_ids
-rmdir "$TESTHOME"/.monkeysphere.linktest
+rm "$TESTHOME"/.monkeysphere/authorized_user_ids
+mv "$TESTHOME"/.monkeysphere/authorized_user_ids{.bak,}
+
+echo
+echo "##################################################"
+echo "### make .monkeysphere directory an absolute symlink and updating..."
+mv "$TESTHOME"/.monkeysphere{,.bak}
+ln -s "$TESTHOME"/.monkeysphere{.linktest,}
+monkeysphere-authentication update-users $(whoami)
+echo
+echo "##################################################"
+echo "### ssh connection test for success..."
+ssh_test
+echo
+echo "##################################################"
+echo "### create bad permissions on link dir and updating..."
+chmod o+w "$TESTHOME"/.monkeysphere.linktest
+monkeysphere-authentication update-users $(whoami)
+echo
+echo "##################################################"
+echo "### ssh connection test for failure..."
+ssh_test 255
+chmod o-w "$TESTHOME"/.monkeysphere.linktest
+echo
+echo "##################################################"
+echo "### make .monkeysphere directory a relative symlink and updating..."
+ln -sfn .monkeysphere{.linktest,}
+monkeysphere-authentication update-users $(whoami)
+echo
+echo "##################################################"
+echo "### ssh connection test for success..."
+ssh_test
+echo
+echo "##################################################"
+echo "### create bad permissions on link dir updating..."
+chmod o+w "$TESTHOME"/.monkeysphere.linktest
+monkeysphere-authentication update-users $(whoami)
+echo
+echo "##################################################"
+echo "### ssh connection test for failure..."
+ssh_test 255
+chmod o-w "$TESTHOME"/.monkeysphere.linktest
+rm "$TESTHOME"/.monkeysphere
+mv "$TESTHOME"/.monkeysphere{.bak,}
+
+# ensure we're back to normal:
+echo
+echo "##################################################"
+echo "### making sure we are back to normal..."
+monkeysphere-authentication update-users $(whoami)
+ssh_test
+
+echo
+echo "##################################################"
+echo "### ssh connection test with hostname 'testhost2' added..."
+monkeysphere-host add-hostname testhost2
+ssh_test
+
+echo
+echo "##################################################"
+echo "### ssh connection test for failure with 'testhost' revoked..."
+monkeysphere-host revoke-hostname testhost
+ssh_test 255
 
 # FIXME: addtest: remove admin as id-certifier and check ssh failure
 
-# FIXME: addtest: add hostname on host key
-# FIXME: addtest: revoke hostname on host key and check ssh failure
+# FIXME: addtest: how do we test that set-expire makes sense after new
+# hostnames have been added?
 
-# addtest: revoke the host key and check ssh failure
+# FIXME: addtest: revoke the host key and check ssh failure
 
 # test to make sure things are OK after the previous tests:
 echo
 echo "##################################################"
-echo "### settings reset, updating users..."
+echo "### settings reset, updating..."
 monkeysphere-authentication update-users $(whoami)
 echo
 echo "##################################################"
@@ -389,7 +473,7 @@ echo "### revoking host key..."
 monkeysphere-host revoke-key | gpg --import
 echo
 echo "##################################################"
-echo "### ssh connection test for server with revoked key..."
+echo "### ssh connection test for failure..."
 ssh_test 255