diff --git a/tests/openpgp/gpgtar.test b/tests/openpgp/gpgtar.test index d92eeb1d5..daba514fe 100755 --- a/tests/openpgp/gpgtar.test +++ b/tests/openpgp/gpgtar.test @@ -1,120 +1,126 @@ #!/bin/sh #set -x # Make sure $srcdir is set. if test "x$srcdir" = x then echo srcdir environment variable not set! exit 1 fi . $srcdir/defs.inc || exit 3 set -e # Make sure $GNUPGHOME is set. if test "x$GNUPGHOME" = x then echo "GNUPGHOME not set." exit 1 fi TESTFILES="$plain_files $data_files" TESTDIR=gpgtar.d FILELIST="${TESTDIR}/filelist" PPFILE="${TESTDIR}/passphrase" PPFLAGS="--gpg-args --passphrase-file=$PPFILE" GPG=../../g10/gpg2 GPGARGS="$opt_always --no-permission-warning" GPGTAR="../../tools/gpgtar" GPGZIP="sh ../../tools/gpg-zip" +# Skip test if gpgtar has not been built. +if ! test -x "$GPGTAR" +then + exit 77 +fi + # Create, inspect, and extract an archive with the given options. # # $1 the tool to test # $2 options used to create the archive # $3 options used to inspect the archive # $4 options used to extract the archive do_test() { ( TOOL="$1" CREATE_FLAGS="$2" INSPECT_FLAGS="$3" EXTRACT_FLAGS="$4" rm -rf -- "${TESTDIR}" mkdir "${TESTDIR}" echo frob >"$PPFILE" $TOOL --gpg "$GPG" --gpg-args "$GPGARGS" $CREATE_FLAGS \ --output "${TESTDIR}/test.tar.pgp" $TESTFILES $TOOL --gpg "$GPG" --gpg-args "$GPGARGS" $INSPECT_FLAGS \ "${TESTDIR}/test.tar.pgp" \ >"$FILELIST" for F in $TESTFILES do awk '{print $NF}' "$FILELIST" | grep "^${F}$" >/dev/null done $TOOL --gpg "$GPG" --gpg-args "$GPGARGS" $EXTRACT_FLAGS \ --tar-args --directory="${TESTDIR}" \ "${TESTDIR}/test.tar.pgp" for F in $TESTFILES do cmp "$F" "${TESTDIR}/$F" done ) } for TOOL in "$GPGTAR" "$GPGZIP" #for TOOL in "$GPGZIP" do # Asymmetric encryption. do_test "$TOOL" \ "--encrypt --recipient $usrname2" \ "--list-archive" \ "--decrypt" # Asymmetric encryption and signing. do_test "$TOOL" \ "--encrypt --recipient $usrname2 --sign --local-user $usrname3" \ "--list-archive" \ "--decrypt" # Signing only. do_test "$TOOL" \ "--sign --local-user $usrname3" \ "--list-archive" \ "--decrypt" # Symmetric encryption. do_test "$TOOL" \ "${PPFLAGS} --symmetric" \ "${PPFLAGS} --list-archive" \ "${PPFLAGS} --decrypt" # Symmetric encryption, explicitly choose cipher. for a in `all_cipher_algos`; do do_test "$TOOL" \ "${PPFLAGS} --gpg-args --cipher=$a --symmetric" \ "${PPFLAGS} --list-archive" \ "${PPFLAGS} --decrypt" break done # Asymmetric and symmetric encryption, and signing. do_test "$TOOL" \ "${PPFLAGS} --encrypt --symmetric --recipient $usrname2 --sign --local-user $usrname3" \ "${PPFLAGS} --list-archive" \ "${PPFLAGS} --decrypt" done # Success! exit 0