adding initial testsuite (totally unfinished!), bug report about genericizing filesys...
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Mon, 15 Sep 2008 01:30:26 +0000 (21:30 -0400)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Mon, 15 Sep 2008 01:30:26 +0000 (21:30 -0400)
tests/basic [new file with mode: 0644]
website/bugs/genericize-filesystem-locations-for-testsuite.mdwn [new file with mode: 0644]

diff --git a/tests/basic b/tests/basic
new file mode 100644 (file)
index 0000000..7d354f9
--- /dev/null
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+# Tests to ensure that the monkeysphere is working
+
+# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+# Date: 2008-09-13 13:40:15-0400
+
+# these tests might be best run under fakeroot, particularly the
+# "server-side" tests.  Using fakeroot, they should be able to be run
+# as a non-privileged user.
+
+# NOTE: these tests have *not* themselves been tested yet
+# (2008-09-13).  Please exercise with caution!
+
+# these tests assume a commonly-trusted "Admin's key", a fake key
+# permanently stored in ./admin:
+
+gpgadmin() {
+    GNUPGHOME=./admin gpg "$@"
+}
+
+
+# cleanup:
+
+cleanup() {
+    rm -f ./ssh-socket
+
+    # FIXME: how should we clear out the temporary $VARLIB?
+
+    # FIXME: clear out ssh client config file and known hosts.
+}
+
+## set up some variables to ensure that we're operating strictly in
+## the tests, not system-wide:
+
+# FIXME: can we override $VARLIB ?
+# FIXME: can we override $ETC ?
+
+# Use the local copy of executables first, instead of system ones.
+# This should help us test without installing.
+export PATH=$(pwd)/../src:$(pwd)/../src/keytrans:$PATH
+export MONKEYSPHERE_SHARE=$(pwd)/../src
+
+# create a new host key, certify it with the "Admin's Key".
+
+echo | monkeysphere-server gen-key --expire 2d
+
+HOSTKEYID=$( monkeysphere-server show-key | tail -n1 | cut -f3 -d\  )
+
+monkeysphere-server gpg-authentication-cmd "--armor --export $HOSTKEYID" | gpgadmin --import
+
+gpgadmin --sign-key "$HOSTKEYID"
+
+# FIXME: how can we test publish-key without flooding junk into the
+# keyservers?
+
+# indicate that the "Admin's" key is an identity certifier for the
+# host
+
+monkeysphere-server add-identity-certifier ./admin/pubkey.gpg
+
+# launch sshd with the new host key.
+
+mkfifo ./ssh-socket
+
+sshd -f ./sshd_config -i <>./ssh-socket
+
+# connect to sample sshd host key, using monkeysphere to verify the
+# identity before connection.
+
+## FIXME: implement!
+
+# create a new client side key, certify it with the "CA", use it to
+# log in.
+
+## FIXME: implement!
+
+
diff --git a/website/bugs/genericize-filesystem-locations-for-testsuite.mdwn b/website/bugs/genericize-filesystem-locations-for-testsuite.mdwn
new file mode 100644 (file)
index 0000000..1d70313
--- /dev/null
@@ -0,0 +1,28 @@
+[[meta title="genericize all filesystem locations to enable test suite:" ]]
+
+I'm in the process of writing a testsuite for the monkeysphere so that
+we can verify that it actually performs all the basic expected duties
+properly.
+
+It occurs to me that lines like these:
+
+    ETC="/etc/monkeysphere"
+    VARLIB="/var/lib/monkeysphere"
+
+Actually make it very difficult to generically test the tool without
+it being installed system-wide.
+
+Is there any reason that we should not allow these directories to be
+overridden with environment variables in the same way that
+`/usr/share/monkeysphere/share` is handled?
+
+    SHARE=${MONKEYSPHERE_SHARE:-"/usr/share/monkeysphere"}
+
+I guess i'm proposing something like:
+
+    SYSCONFIGDIR=${MONKEYSPHERE_SYSCONFIGDIR:-"/etc/monkeysphere"}
+    SYSDATADIR=${MONKEYSPHERE_SYSDATADIR:-"/var/lib/monkeysphere"}
+
+Thoughts?
+
+--dkg