diff options
author | Matt Goins <mjgoins@openflows.com> | 2009-02-17 22:31:17 -0500 |
---|---|---|
committer | Matt Goins <mjgoins@openflows.com> | 2009-02-17 22:31:17 -0500 |
commit | 8e3de9de8bc67b3e9e2c490a7e3142fde7742044 (patch) | |
tree | d0cb80bf0d37da795721167ecbf42423a570f578 /tests | |
parent | 3b81cd012e8224490a3836cccbd7d082a061658e (diff) | |
parent | 25e870d1d7109f9e37460c26de4a05a05adfc760 (diff) |
Merge commit 'jrollins/master'
Diffstat (limited to 'tests')
-rw-r--r-- | tests/README | 31 | ||||
-rwxr-xr-x | tests/basic | 53 | ||||
-rw-r--r-- | tests/common | 5 |
3 files changed, 63 insertions, 26 deletions
diff --git a/tests/README b/tests/README new file mode 100644 index 0000000..2bc981c --- /dev/null +++ b/tests/README @@ -0,0 +1,31 @@ +Monkeysphere test infrastructure +================================ + +These are scripts to test various aspects of the Monkeysphere system. + +Some notes about getting started working on the monkeysphere test +infrastructure: + +- the tests can and should be run as a non-privileged user. since the + tests do potentially destructive things (like wiping out and + recreating gpg keyrings) they should definitely *not* be run as + root. it may even be advisable to run them as a different, + dedicated user, so that any goofs you make while updating the test + infrastructure don't compromise your main account. + +- you do not need the monkeysphere package installed locally, though + you will need the monkeysphere dependencies installed locally. + +- the idea with this script is to do the following: + + - set up test server infrastructure + - test the server setup + - set up test user + - test an ssh connection between test user and test server + - modify server/user setup and rerun ssh_test to make sure it + suceeds/fails as expected + +- there are various FIXMEs in the script that outline some of the + further testing that should be undertaken. + +- good documentation in the code in the form of comments are needed. diff --git a/tests/basic b/tests/basic index d9399f0..9114f32 100755 --- a/tests/basic +++ b/tests/basic @@ -90,7 +90,14 @@ trap failed_cleanup EXIT ## set up some variables to ensure that we're operating strictly in ## the tests, not system-wide: -# make temp dir +# set up temp dir + +# NOTE: /tmp can not be used as the temp dir here, since the +# permissions on /tmp are usually such that they will not pass the +# monkeysphere/ssh path permission checking. If you need to use a +# different location than the current source, please set $TMPDIR +# somewhere with tighter permissions. + mkdir -p "$TESTDIR"/tmp TEMPDIR=$(mktemp -d "${TMPDIR:-$TESTDIR/tmp}/monkeyspheretest.XXXXXXX") @@ -121,10 +128,8 @@ export DISPLAY=monkeys # copy in admin and testuser home to tmp echo "##################################################" -echo "### copying admin and testuser homes..." -cp -a "$TESTDIR"/home/admin "$TEMPDIR"/ +echo "### configuring testuser home..." cp -a "$TESTDIR"/home/testuser "$TEMPDIR"/ - # set up environment for testuser export TESTHOME="$TEMPDIR"/testuser export GNUPGHOME="$TESTHOME"/.gnupg @@ -141,6 +146,10 @@ KNOWN_HOSTS=$TESTHOME/.ssh/known_hosts EOF get_gpg_prng_arg >> "$GNUPGHOME"/gpg.conf +echo "##################################################" +echo "### configuring admin home..." +cp -a "$TESTDIR"/home/admin "$TEMPDIR"/ + # set up sshd echo "##################################################" echo "### configuring sshd..." @@ -155,34 +164,23 @@ EOF ###################################################################### ### SERVER HOST SETUP -# create a new host key -echo "##################################################" -echo "### testing host key generation..." -mkdir -p -m 750 "$MONKEYSPHERE_SYSDATADIR"/host -# add gpg.conf with quick-random -get_gpg_prng_arg >> "$MONKEYSPHERE_SYSCONFIGDIR"/host/gpg.conf -echo | monkeysphere-host expert gen-key --length 1024 testhost - -# remove the host home for the next test -rm -rf "$MONKEYSPHERE_SYSCONFIGDIR"/host - # import host key echo "##################################################" -echo "### testing host key importing..." +echo "### import host key..." ssh-keygen -b 1024 -t rsa -N '' -f "$TEMPDIR"/ssh_host_rsa_key -monkeysphere-host expert import-key testhost < "$TEMPDIR"/ssh_host_rsa_key +monkeysphere-host import-key testhost < "$TEMPDIR"/ssh_host_rsa_key + +echo "##################################################" +echo "### getting host key fingerprint..." +HOSTKEYID=$( monkeysphere-host show-key | grep '^OpenPGP fingerprint: ' | cut -f3 -d\ ) +echo "$HOSTKEYID" # change host key expiration echo "##################################################" echo "### setting host key expiration..." monkeysphere-host set-expire 1 -monkeysphere-host show-key # FIXME: how do we check that the expiration has really been set? -echo "##################################################" -echo "### getting host key fingerprint..." -HOSTKEYID=$( monkeysphere-host show-key | grep '^OpenPGP fingerprint: ' | cut -f3 -d\ ) - # certify host key with the "Admin's Key". # (this would normally be done via keyservers) echo "##################################################" @@ -214,10 +212,13 @@ get_gpg_prng_arg >> "$MONKEYSPHERE_SYSDATADIR"/authentication/sphere/gpg.conf # add admin as identity certifier for testhost echo "##################################################" echo "### adding admin as certifier..." -echo y | monkeysphere-authentication add-id-certifier "$TEMPDIR"/admin/.gnupg/pubkey.gpg +monkeysphere-authentication add-id-certifier -y "$TEMPDIR"/admin/.gnupg/pubkey.gpg -# FIXME: should we run "diagnostics" here to test setup? +echo "##################################################" +echo "### list certifiers..." +monkeysphere-authentication list-certifiers +# FIXME: should we run "diagnostics" here to test setup? ###################################################################### ### TESTUSER SETUP @@ -235,12 +236,14 @@ gpgadmin --armor --export "$HOSTKEYID" | gpg --import # teach the "server" about the testuser's key echo "##################################################" echo "### export testuser key to server..." -gpg --export testuser | monkeysphere-authentication expert gpg-cmd --import +gpg --export testuser | monkeysphere-authentication gpg-cmd --import # update authorized_keys for user echo "##################################################" echo "### update server authorized_keys file for this testuser..." monkeysphere-authentication update-users $(whoami) +# FIXME: this is maybe not failing properly for: +# ms: improper group or other writability on path '/tmp'. ###################################################################### diff --git a/tests/common b/tests/common index adc96a2..0f90500 100644 --- a/tests/common +++ b/tests/common @@ -3,7 +3,10 @@ failed_cleanup() { # FIXME: can we be more verbose here? echo 'FAILED!' - read -p "press enter to cleanup and remove tmp:" + read -p "press enter to cleanup and remove tmp (or type bash for a subshell to examine): " XX + if [ "$XX" = bash ] ; then + bash + fi cleanup } |