From ee3660b61a72c0fd17f7841c1d0c67df6e9f9164 Mon Sep 17 00:00:00 2001 From: Jameson Graef Rollins Date: Wed, 4 Feb 2009 01:12:02 -0500 Subject: move keytrans test to a separate test script, and move functions common to all test to a common file --- tests/basic | 70 ++++------------------------------------------- tests/common | 29 ++++++++++++++++++++ tests/keytrans | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 65 deletions(-) create mode 100644 tests/common create mode 100755 tests/keytrans diff --git a/tests/basic b/tests/basic index ad72a22..5c6b4bb 100755 --- a/tests/basic +++ b/tests/basic @@ -17,6 +17,10 @@ set -e # piped commands should return the code of the first non-zero return set -o pipefail +export TESTDIR=$(dirname "$0") + +source "$TESTDIR"/common + ## make sure that the right tools are installed to run the test. the ## test has *more* requirements than plain ol' monkeysphere: which socat >/dev/null || { echo "You must have socat installed to run this test." ; exit 1; } @@ -72,34 +76,6 @@ ssh_test() { fi } -failed_cleanup() { - # FIXME: can we be more verbose here? - echo 'FAILED!' - read -p "press enter to cleanup and remove tmp:" - - cleanup -} - -get_gpg_prng_arg() { - if (gpg --quick-random --version >/dev/null 2>&1) ; then - echo quick-random - elif (gpg --debug-quick-random --version >/dev/null 2>&1) ; then - echo debug-quick-random - fi -} - -cleanup() { - 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 @@ -112,14 +88,13 @@ trap failed_cleanup EXIT ## set up some variables to ensure that we're operating strictly in ## the tests, not system-wide: -export TESTDIR=$(dirname "$0") - # make temp dir TEMPDIR="$TESTDIR"/tmp if [ -e "$TEMPDIR" ] ; then echo "tempdir '$TEMPDIR' already exists." exit 1 fi +mkdir -p "$TEMPDIR" # Use the local copy of executables first, instead of system ones. # This should help us test without installing. @@ -142,41 +117,6 @@ export SOCKET="$TEMPDIR"/ssh-socket # *anything* with any running X11 session. export DISPLAY=monkeys -###################################################################### -### TEST KEY CONVERSION - -mkdir -p "$TEMPDIR" - -echo "##################################################" -echo "### test key conversion..." -export GNUPGHOME="$TEMPDIR" -# generate a key -gpg --batch --quick-random --gen-key < \ - "$TEMPDIR"/test.pem -# reconvert key, and compare to key in gpg keyring -diff -u \ - <(gpg --export-secret-key | hd) \ - <(PEM2OPENPGP_USAGE_FLAGS=sign,certify \ - PEM2OPENPGP_TIMESTAMP="$timestamp" pem2openpgp testtest < \ - "$TEMPDIR"/test.pem | hd ) - -# clear out the temp dir -rm -rf "$TEMPDIR" -mkdir -p "$TEMPDIR" ###################################################################### ### CONFIGURE ENVIRONMENTS diff --git a/tests/common b/tests/common new file mode 100644 index 0000000..adc96a2 --- /dev/null +++ b/tests/common @@ -0,0 +1,29 @@ +# -*-shell-script-*- + +failed_cleanup() { + # FIXME: can we be more verbose here? + echo 'FAILED!' + read -p "press enter to cleanup and remove tmp:" + + cleanup +} + +get_gpg_prng_arg() { + if (gpg --quick-random --version >/dev/null 2>&1) ; then + echo quick-random + elif (gpg --debug-quick-random --version >/dev/null 2>&1) ; then + echo debug-quick-random + fi +} + +cleanup() { + echo "### removing temp dir..." + rm -rf "$TEMPDIR" + + if [ "$SSHD_PID" ] ; then + echo "### killing off lingering sshd..." + kill "$SSHD_PID" + fi + + wait +} diff --git a/tests/keytrans b/tests/keytrans new file mode 100755 index 0000000..262b653 --- /dev/null +++ b/tests/keytrans @@ -0,0 +1,86 @@ +#!/usr/bin/env bash + +# Tests to ensure that the monkeysphere is working + +# Authors: +# Daniel Kahn Gillmor +# Jameson Rollins +# Micah Anderson +# +# Copyright: 2008-2009 +# License: GPL v3 or later + +# 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 + +export TESTDIR=$(dirname "$0") + +source "$TESTDIR"/common + +## setup trap +trap failed_cleanup EXIT + +###################################################################### +### SETUP VARIABLES + +## set up some variables to ensure that we're operating strictly in +## the tests, not system-wide: + +# make temp dir +TEMPDIR="$TESTDIR"/tmp +if [ -e "$TEMPDIR" ] ; then + echo "tempdir '$TEMPDIR' already exists." + exit 1 +fi +mkdir -p "$TEMPDIR" + +# Use the local copy of executables first, instead of system ones. +# This should help us test without installing. +export PATH="$TESTDIR"/../src:"$TESTDIR"/../src/keytrans:"$PATH" + +export MONKEYSPHERE_SYSDATADIR="$TEMPDIR" +export MONKEYSPHERE_SYSCONFIGDIR="$TEMPDIR" +export MONKEYSPHERE_SYSSHAREDIR="$TESTDIR"/../src/share +export MONKEYSPHERE_MONKEYSPHERE_USER=$(whoami) +export MONKEYSPHERE_CHECK_KEYSERVER=false +export MONKEYSPHERE_LOG_LEVEL=DEBUG + + +###################################################################### +### TEST KEYTRANS + +echo "##################################################" +echo "### test key conversion..." +export GNUPGHOME="$TEMPDIR" +chmod 700 "$TEMPDIR" +# generate a key +gpg --batch --$(get_gpg_prng_arg) --gen-key < \ + "$TEMPDIR"/test.pem +# reconvert key, and compare to key in gpg keyring +diff -u \ + <(gpg --export-secret-key | hd) \ + <(PEM2OPENPGP_USAGE_FLAGS=sign,certify \ + PEM2OPENPGP_TIMESTAMP="$timestamp" pem2openpgp testtest < \ + "$TEMPDIR"/test.pem | hd ) + +# clear out the temp dir +rm -rf "$TEMPDIR" +mkdir -p "$TEMPDIR" -- cgit v1.2.3