tests/openpgp: Qualify executables with extension.
[gnupg.git] / tests / openpgp / defs.inc
index 3e46ebd..8f969db 100755 (executable)
@@ -1,6 +1,6 @@
 # Definitions for the OpenPGP test scripts                     -*- sh -*-
 # Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
+#           2007, 2010 Free Software Foundation, Inc.
 # This file is free software; as a special exception the author gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.  This file is
 #------ constants ---------------
 #--------------------------------
 
-# Note that usrpass1 is also used in Makefile.am
-usrname1="one"
+usrname1="one@example.com"
 usrpass1="def"
-usrname2="two"
+usrname2="two@example.com"
 usrpass2=""
-usrname3="three"
+usrname3="three@example.com"
 usrpass3=""
 
 
 dsa_usrname1="pgp5"
-# we use the sub key because we do not yet have the logic to
-# to derive the first encryption key from a keyblock (I guess)
+# we use the sub key because we do not yet have the logic to to derive
+# the first encryption key from a keyblock (I guess) (Well of course
+# we have this by now and the notation below will lookup the primary
+# first and then search for the encryption subkey.)
 dsa_usrname2="0xCB879DE9"
 
-dsa_keyrings="--keyring ./pubring.pkr --secret-keyring ./secring.skr"
-
 
 plain_files="plain-1 plain-2 plain-3"
 data_files="data-500 data-9000 data-32000 data-80000"
@@ -42,23 +41,34 @@ LC_MESSAGES=
 # Internal use.
 defs_stop_on_error=no
 defs_error_seen=no
+defs_progress_active=no
 
 #--------------------------------
 #------ utility functions -------
 #--------------------------------
 
+progress_cancel () {
+    if [ x$defs_progress_active = xyes ]; then
+        echo
+        defs_progress_active=no
+    fi
+}
+
 fatal () {
+    progress_cancel
     echo "$pgmname: fatal:" $* >&2
     echo "$pgmname: fatal:" $* >&5
+    echo stop >gnupg-test.stop
     exit 1;
 }
 
 error () {
+    progress_cancel
     echo "$pgmname:" $* >&2
     defs_error_seen=yes
     echo "$pgmname:" $* >&5
     if [ x$defs_stop_on_error != xyes ]; then
-      exit 1 
+      exit 1
     fi
 }
 
@@ -77,6 +87,7 @@ resume_error () {
 }
 
 info () {
+    progress_cancel
     echo "$pgmname:" $* >&2
     if [ -n "${verbose+set}" ]; then
       echo "$pgmname:" $* >&5
@@ -87,7 +98,6 @@ linefeed () {
     echo >&2
 }
 
-
 echo_n_init=no
 echo_n () {
   if test "$echo_n_init" = "no"; then
@@ -110,6 +120,23 @@ echo_n () {
 }
 
 
+progress_end () {
+    if [ x$defs_progress_active = xyes ]; then
+        echo "<"
+        defs_progress_active=no
+    fi
+}
+
+progress () {
+    if [ x$defs_progress_active != xyes ]; then
+        echo_n "    > "
+        defs_progress_active=yes
+    fi
+    echo_n "$* "
+}
+
+
+
 #cleanup () {
 #    rm $cleanup_files 2>/dev/null || true
 #    echo "#empty" >./gpg.conf
@@ -121,7 +148,7 @@ echo_n () {
 #}
 
 have_pubkey_algo () {
-  if  ../../g10/gpg2 --homedir .  --version | grep "Pubkey:.*$1" >/dev/null
+  if  $GPG --version | grep "Pubkey:.*$1" >/dev/null
   then
        true
   else
@@ -130,7 +157,7 @@ have_pubkey_algo () {
 }
 
 have_cipher_algo () {
-  if  ../../g10/gpg2 --homedir .  --version | grep "Cipher:.*$1" >/dev/null
+  if $GPG --version | grep "Cipher:.*$1" >/dev/null
   then
        true
   else
@@ -139,7 +166,7 @@ have_cipher_algo () {
 }
 
 have_hash_algo () {
-  if  ../../g10/gpg2 --homedir .  --version | grep "Hash:.*$1" >/dev/null
+  if $GPG --version | grep "Hash:.*$1" >/dev/null
   then
        true
   else
@@ -148,11 +175,13 @@ have_hash_algo () {
 }
 
 all_cipher_algos () {
-  ../../g10/gpg2 --homedir . --with-colons --list-config ciphername | sed 's/^cfg:ciphername://; s/;/ /g'
+  $GPG --with-colons --list-config ciphername \
+       | sed 's/^cfg:ciphername://; s/;/ /g'
 }
 
 all_hash_algos () {
-  ../../g10/gpg2 --homedir . --with-colons --list-config digestname | sed 's/^cfg:digestname://; s/;/ /g'
+  $GPG --with-colons --list-config digestname \
+       | sed 's/^cfg:digestname://; s/;/ /g'
 }
 
 set -e
@@ -161,32 +190,76 @@ pgmname=`basename $0`
 
 [ -z "$srcdir" ] && fatal "not called from make"
 
-# Make sure we have a valid option files even with VPATH builds.
-for f in gpg.conf ; do 
-  if [ -f ./$f ]; then
-    :
-  elif [ -f $srcdir/$f.tmpl ]; then
-    cat $srcdir/$f.tmpl >$f
-  fi
-done
+#
+if [ -f gnupg-test.stop ]; then
+    if [ $pgmname = "version.test" ]; then
+        rm gnupg-test.stop
+    else
+        # Skip the rest of the tests.
+        exit 77
+    fi
+fi
 
 # Always work in the current directory.  We set GNUPGHOME only if it
 # has not been set already.  Usually it is set through the Makefile's
 # TESTS_ENVIRONMENT macro.
 if [ -z "$GNUPGHOME" ]; then
-  GNUPGHOME=`pwd`
+  GNUPGHOME=`/bin/pwd`
   export GNUPGHOME
-elif [ "$GNUPGHOME" != `pwd` ]; then
+elif [ "$GNUPGHOME" != `/bin/pwd` ]; then
   echo "$pgmname: GNUPGHOME not set to the cwd" $* >&2
   exit 1
 fi
 
+# We don't use GPG_AGENT_INFO anymore - better reset it.
+unset GPG_AGENT_INFO
+
+# (--no-permission-warning makes only sense on the commandline)
 GPG="../../g10/gpg2 --no-permission-warning "
+# (We may not use a relative name for gpg-agent.)
+GPG_AGENT="$(cd ../../agent && /bin/pwd)/gpg-agent"
+GPG_CONNECT_AGENT="../../tools/gpg-connect-agent"
+GPGCONF="../../tools/gpgconf"
+GPG_PRESET_PASSPHRASE="../../agent/gpg-preset-passphrase"
+MKTDATA="../../tools/mk-tdata"
+PINENTRY="$(/bin/pwd)/fake-pinentry${EXEEXT}"
+# Default to empty passphrase for pinentry.sh
+PINENTRY_USER_DATA=
+
+# If --check-trustdb is not an option, GPG has been build without
+# trust model support.  Thus we can't use --always-trust and some
+# other options.
+if $GPG --dump-options | grep '^--check-trustdb$' >/dev/null ; then
+  opt_always="--always-trust"
+else
+  opt_always=
+fi
 
-echo "Test: $pgmname"                  >  ${pgmname}.log
-echo "GNUPGHOME=$GNUPGHOME"            >> ${pgmname}.log
-echo "GPG_AGENT_INFO=$GPG_AGENT_INFO"  >> ${pgmname}.log
-exec 5>&2 2>>${pgmname}.log
+# Make sure we have a valid option files even with VPATH builds.
+for f in gpg.conf gpg-agent.conf ; do
+  if [ -f ./$f ]; then
+    :
+  elif [ -f $srcdir/$f.tmpl ]; then
+    cat $srcdir/$f.tmpl >$f
+    case "$f" in
+      gpg.conf)
+        [ -n "${opt_always}" ] && echo "no-auto-check-trustdb" >>"$f"
+        echo "agent-program ${GPG_AGENT}|--debug-quick-random" >>"$f"
+        echo "allow-weak-digest-algos" >>"$f"
+        ;;
+      gpg-agent.conf)
+        echo "pinentry-program $PINENTRY" >>"$f"
+        ;;
+    esac
+  fi
+done
 
+if [ "${verbose:-0}" -gt "1" ]; then
+  exec 5>/dev/null
+else
+  echo "Test: $pgmname"                  >  ${pgmname}.log
+  echo "GNUPGHOME=$GNUPGHOME"            >> ${pgmname}.log
+  exec 5>&2 2>>${pgmname}.log
+fi
 :
 # end