t7004: factor out gpg setup
authorJeff King <peff@peff.net>
Wed, 7 Sep 2011 17:42:39 +0000 (13:42 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 8 Sep 2011 20:50:58 +0000 (13:50 -0700)
Other test scripts may want to look at or verify signed
tags, and the setup is non-trivial. Let's factor this out
into lib-gpg.sh for other tests to use.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/lib-gpg.sh [new file with mode: 0755]
t/lib-gpg/pubring.gpg [moved from t/t7004/pubring.gpg with 100% similarity]
t/lib-gpg/random_seed [moved from t/t7004/random_seed with 100% similarity]
t/lib-gpg/secring.gpg [moved from t/t7004/secring.gpg with 100% similarity]
t/lib-gpg/trustdb.gpg [moved from t/t7004/trustdb.gpg with 100% similarity]
t/t7004-tag.sh

diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh
new file mode 100755 (executable)
index 0000000..28463fb
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+gpg_version=`gpg --version 2>&1`
+if test $? = 127; then
+       say "You do not seem to have gpg installed"
+else
+       # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19
+       # the gpg version 1.0.6 didn't parse trust packets correctly, so for
+       # that version, creation of signed tags using the generated key fails.
+       case "$gpg_version" in
+       'gpg (GnuPG) 1.0.6'*)
+               say "Your version of gpg (1.0.6) is too buggy for testing"
+               ;;
+       *)
+               # key generation info: gpg --homedir t/lib-gpg --gen-key
+               # Type DSA and Elgamal, size 2048 bits, no expiration date.
+               # Name and email: C O Mitter <committer@example.com>
+               # No password given, to enable non-interactive operation.
+               cp -R "$TEST_DIRECTORY"/lib-gpg ./gpghome
+               chmod 0700 gpghome
+               GNUPGHOME="$(pwd)/gpghome"
+               export GNUPGHOME
+               test_set_prereq GPG
+               ;;
+       esac
+fi
similarity index 100%
rename from t/t7004/pubring.gpg
rename to t/lib-gpg/pubring.gpg
similarity index 100%
rename from t/t7004/random_seed
rename to t/lib-gpg/random_seed
similarity index 100%
rename from t/t7004/secring.gpg
rename to t/lib-gpg/secring.gpg
similarity index 100%
rename from t/t7004/trustdb.gpg
rename to t/lib-gpg/trustdb.gpg
index 097ce2bc8382e748925aa25c2dc0a1f06f6c7b4c..e93ac73829f332cdbf53b05fcc611d4ea38c4c55 100755 (executable)
@@ -8,6 +8,7 @@ test_description='git tag
 Tests for operations with tags.'
 
 . ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-gpg.sh
 
 # creating and listing lightweight tags:
 
@@ -585,24 +586,6 @@ test_expect_success \
        test_cmp expect actual
 '
 
-# subsequent tests require gpg; check if it is available
-gpg --version >/dev/null 2>/dev/null
-if [ $? -eq 127 ]; then
-       say "# gpg not found - skipping tag signing and verification tests"
-else
-       # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19
-       # the gpg version 1.0.6 didn't parse trust packets correctly, so for
-       # that version, creation of signed tags using the generated key fails.
-       case "$(gpg --version)" in
-       'gpg (GnuPG) 1.0.6'*)
-               say "Skipping signed tag tests, because a bug in 1.0.6 version"
-               ;;
-       *)
-               test_set_prereq GPG
-               ;;
-       esac
-fi
-
 # trying to verify annotated non-signed tags:
 
 test_expect_success GPG \
@@ -625,16 +608,6 @@ test_expect_success GPG \
 
 # creating and verifying signed tags:
 
-# key generation info: gpg --homedir t/t7004 --gen-key
-# Type DSA and Elgamal, size 2048 bits, no expiration date.
-# Name and email: C O Mitter <committer@example.com>
-# No password given, to enable non-interactive operation.
-
-cp -R "$TEST_DIRECTORY"/t7004 ./gpghome
-chmod 0700 gpghome
-GNUPGHOME="$(pwd)/gpghome"
-export GNUPGHOME
-
 get_tag_header signed-tag $commit commit $time >expect
 echo 'A signed tag message' >>expect
 echo '-----BEGIN PGP SIGNATURE-----' >>expect