aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2015-11-25 17:32:09 +0000
committerJustus Winter <[email protected]>2015-11-25 17:38:45 +0000
commit556e8c44267fe3b829ca06286e9b5637ca1a6a73 (patch)
tree85242e7ecade50b77aeef42a55b8c86dccef282e
parenttools/gpgtar: Handle '--directory' argument. (diff)
downloadgnupg-556e8c44267fe3b829ca06286e9b5637ca1a6a73.tar.gz
gnupg-556e8c44267fe3b829ca06286e9b5637ca1a6a73.zip
tests: Add tests for gpgtar and gpg-zip.
* tests/openpgp/Makefile.am (TESTS): Add new file. * tests/openpgp/gpgtar.test: New file. Signed-off-by: Justus Winter <[email protected]>
-rw-r--r--tests/openpgp/Makefile.am3
-rwxr-xr-xtests/openpgp/gpgtar.test59
2 files changed, 61 insertions, 1 deletions
diff --git a/tests/openpgp/Makefile.am b/tests/openpgp/Makefile.am
index 7263cd8a7..aa13be9e4 100644
--- a/tests/openpgp/Makefile.am
+++ b/tests/openpgp/Makefile.am
@@ -46,6 +46,7 @@ TESTS = version.test mds.test \
multisig.test verify.test armor.test \
import.test ecc.test 4gb-packet.test \
$(sqlite3_dependent_tests) \
+ gpgtar.test \
finish.test
@@ -108,7 +109,7 @@ CLEANFILES = prepared.stamp x y yy z out err $(data_files) \
gnupg-test.stop random_seed gpg-agent.log tofu.db
clean-local:
- -rm -rf private-keys-v1.d openpgp-revocs.d tofu.d
+ -rm -rf private-keys-v1.d openpgp-revocs.d tofu.d gpgtar.d
# We need to depend on a couple of programs so that the tests don't
diff --git a/tests/openpgp/gpgtar.test b/tests/openpgp/gpgtar.test
new file mode 100755
index 000000000..7d55862b8
--- /dev/null
+++ b/tests/openpgp/gpgtar.test
@@ -0,0 +1,59 @@
+#!/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"
+GPG=../../g10/gpg2
+GPGTAR="../../tools/gpgtar"
+GPGZIP="sh ../../tools/gpg-zip --gpg-args --trust-model=always"
+
+for TOOL in "$GPGTAR" "$GPGZIP"
+do
+ rm -rf -- "${TESTDIR}"
+ mkdir "${TESTDIR}"
+
+ $TOOL --gpg "$GPG" --encrypt --recipient "$usrname2" \
+ --output "${TESTDIR}/test.tar.pgp" $TESTFILES
+
+ $TOOL --gpg "$GPG" --list-archive "${TESTDIR}/test.tar.pgp" >"$FILELIST"
+ for F in $TESTFILES
+ do
+ grep -qe "\\b${F}\\b" "$FILELIST"
+ done
+
+ EXTRACT_FLAGS="--directory=${TESTDIR}"
+ if [ "$TOOL" = "$GPGZIP" ]
+ then
+ EXTRACT_FLAGS="--tar-args $EXTRACT_FLAGS"
+ fi
+ $TOOL --gpg "$GPG" $EXTRACT_FLAGS --decrypt "${TESTDIR}/test.tar.pgp"
+ for F in $TESTFILES
+ do
+ diff -q "$F" "${TESTDIR}/$F"
+ done
+done
+
+# Success!
+
+exit 0