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/keytrans | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 tests/keytrans (limited to 'tests/keytrans') 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 From 632c3943f9849824e92e217e3c4f8cf8e6ada148 Mon Sep 17 00:00:00 2001 From: Jameson Graef Rollins Date: Wed, 4 Feb 2009 01:42:40 -0500 Subject: fix some things in the keytrans test --- tests/keytrans | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'tests/keytrans') diff --git a/tests/keytrans b/tests/keytrans index 262b653..e1ccda5 100755 --- a/tests/keytrans +++ b/tests/keytrans @@ -40,21 +40,13 @@ 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 - +export PATH="$TESTDIR"/../src/keytrans:"$PATH" ###################################################################### ### TEST KEYTRANS echo "##################################################" -echo "### test key conversion..." +echo "### generating openpgp key..." export GNUPGHOME="$TEMPDIR" chmod 700 "$TEMPDIR" # generate a key @@ -68,19 +60,21 @@ Expire-Date: 0 %commit %echo done EOF -# get the the key timestamp + +echo "##################################################" +echo "### retrieving key timestamp..." timestamp=$(gpg --list-key --with-colons --fixed-list-mode | \ grep ^pub: | cut -d: -f6) -# export the key to a file + +echo "##################################################" +echo "### exporting key to ssh file..." gpg --export-secret-key | openpgp2ssh > \ "$TEMPDIR"/test.pem -# reconvert key, and compare to key in gpg keyring + +echo "##################################################" +echo "### 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 From 7a96cfb6bfa9f5ab8cc82930049b0c46097a2634 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Wed, 4 Feb 2009 01:51:55 -0500 Subject: tests/keytrans: terminate reasonably on success. --- tests/keytrans | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'tests/keytrans') diff --git a/tests/keytrans b/tests/keytrans index e1ccda5..285d17b 100755 --- a/tests/keytrans +++ b/tests/keytrans @@ -78,3 +78,11 @@ diff -u \ <(PEM2OPENPGP_USAGE_FLAGS=sign,certify \ PEM2OPENPGP_TIMESTAMP="$timestamp" pem2openpgp testtest < \ "$TEMPDIR"/test.pem | hd ) + +trap - EXIT + +echo "##################################################" +echo " Monkeysphere keytrans test completed successfully!" +echo "##################################################" + +cleanup -- cgit v1.2.3