From e98366cd478343b9c39ced4984874cd611ccb4ad Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Sun, 14 Sep 2008 21:30:26 -0400 Subject: [PATCH] adding initial testsuite (totally unfinished!), bug report about genericizing filesystem locations. --- tests/basic | 78 +++++++++++++++++++ ...ze-filesystem-locations-for-testsuite.mdwn | 28 +++++++ 2 files changed, 106 insertions(+) create mode 100644 tests/basic create mode 100644 website/bugs/genericize-filesystem-locations-for-testsuite.mdwn diff --git a/tests/basic b/tests/basic new file mode 100644 index 0000000..7d354f9 --- /dev/null +++ b/tests/basic @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +# Tests to ensure that the monkeysphere is working + +# Author: Daniel Kahn Gillmor +# 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 index 0000000..1d70313 --- /dev/null +++ b/website/bugs/genericize-filesystem-locations-for-testsuite.mdwn @@ -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 -- 2.26.2