b9af8fef8b4dfce57365e8a7de14593dd7ccca99
[gnupg.git] / tests / openpgp / defs.inc
1 # Definitions for the OpenPGP test scripts                     -*- sh -*-
2 # Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
3 #           2007, 2010 Free Software Foundation, Inc.
4 # This file is free software; as a special exception the author gives
5 # unlimited permission to copy and/or distribute it, with or without
6 # modifications, as long as this notice is preserved.  This file is
7 # distributed in the hope that it will be useful, but WITHOUT ANY
8 # WARRANTY, to the extent permitted by law; without even the implied
9 # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
11 #--------------------------------
12 #------ constants ---------------
13 #--------------------------------
14
15 usrname1="one@example.com"
16 usrpass1="def"
17 usrname2="two@example.com"
18 usrpass2=""
19 usrname3="three@example.com"
20 usrpass3=""
21
22
23 dsa_usrname1="pgp5"
24 # we use the sub key because we do not yet have the logic to to derive
25 # the first encryption key from a keyblock (I guess) (Well of course
26 # we have this by now and the notation below will lookup the primary
27 # first and the search for the encryption subkey.)
28 dsa_usrname2="0xCB879DE9"
29
30
31 plain_files="plain-1 plain-2 plain-3"
32 data_files="data-500 data-9000 data-32000 data-80000"
33 exp_files=""
34
35 # The testscripts expect the original language
36 LANG=
37 LANGUAGE=
38 LC_ALL=
39 LC_MESSAGES=
40
41 # Internal use.
42 defs_stop_on_error=no
43 defs_error_seen=no
44
45 #--------------------------------
46 #------ utility functions -------
47 #--------------------------------
48
49 fatal () {
50     echo "$pgmname: fatal:" $* >&2
51     echo "$pgmname: fatal:" $* >&5
52     echo stop >gnupg-test.stop
53     exit 1;
54 }
55
56 error () {
57     echo "$pgmname:" $* >&2
58     defs_error_seen=yes
59     echo "$pgmname:" $* >&5
60     if [ x$defs_stop_on_error != xyes ]; then
61       exit 1
62     fi
63 }
64
65 # Call this at the start of a test and resume_error at the end to keep
66 # on running all subtests without immediately exiting on error.
67 suspend_error () {
68    defs_stop_on_error=yes
69 }
70
71 resume_error () {
72     if [ x$defs_error_seen = xyes ]; then
73         exit 1
74     fi
75     defs_stop_on_error=no
76     defs_error_seen=no
77 }
78
79 info () {
80     echo "$pgmname:" $* >&2
81     if [ -n "${verbose+set}" ]; then
82       echo "$pgmname:" $* >&5
83     fi
84 }
85
86 linefeed () {
87     echo >&2
88 }
89
90
91 echo_n_init=no
92 echo_n () {
93   if test "$echo_n_init" = "no"; then
94     if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
95       if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
96         echo_n_n=
97         echo_n_c='
98 '
99       else
100         echo_n_n='-n'
101         echo_n_c=
102       fi
103     else
104       echo_n_n=
105       echo_n_c='\c'
106     fi
107     echo_n_init=yes
108   fi
109   echo $echo_n_n "${1}$echo_n_c"
110 }
111
112
113 #cleanup () {
114 #    rm $cleanup_files 2>/dev/null || true
115 #    echo "#empty" >./gpg.conf
116 #}
117
118
119 #add_cleanup () {
120 #    cleanup_files="$cleanup_files $*"
121 #}
122
123 have_pubkey_algo () {
124   if  $GPG --version | grep "Pubkey:.*$1" >/dev/null
125   then
126         true
127   else
128         false
129   fi
130 }
131
132 have_cipher_algo () {
133   if $GPG --version | grep "Cipher:.*$1" >/dev/null
134   then
135         true
136   else
137         false
138   fi
139 }
140
141 have_hash_algo () {
142   if $GPG --version | grep "Hash:.*$1" >/dev/null
143   then
144         true
145   else
146         false
147   fi
148 }
149
150 all_cipher_algos () {
151   $GPG --with-colons --list-config ciphername \
152        | sed 's/^cfg:ciphername://; s/;/ /g'
153 }
154
155 all_hash_algos () {
156   $GPG --with-colons --list-config digestname \
157        | sed 's/^cfg:digestname://; s/;/ /g'
158 }
159
160 set -e
161 pgmname=`basename $0`
162 #trap cleanup SIGHUP SIGINT SIGQUIT
163
164 [ -z "$srcdir" ] && fatal "not called from make"
165
166 #
167 if [ -f gnupg-test.stop ]; then
168     if [ $pgmname = "version.test" ]; then
169         rm gnupg-test.stop
170     else
171         # Skip the rest of the tests.
172         exit 77
173     fi
174 fi
175
176 # Always work in the current directory.  We set GNUPGHOME only if it
177 # has not been set already.  Usually it is set through the Makefile's
178 # TESTS_ENVIRONMENT macro.
179 if [ -z "$GNUPGHOME" ]; then
180   GNUPGHOME=`/bin/pwd`
181   export GNUPGHOME
182 elif [ "$GNUPGHOME" != `/bin/pwd` ]; then
183   echo "$pgmname: GNUPGHOME not set to the cwd" $* >&2
184   exit 1
185 fi
186
187 # We don't use GPG_AGENT_INFO anymore - better reset it.
188 unset GPG_AGENT_INFO
189
190 # (--no-permission-warning makes only sense on the commandline)
191 GPG="../../g10/gpg2 --no-permission-warning "
192 # (We may not use a relative name for gpg-agent.)
193 GPG_AGENT="$(cd ../../agent && /bin/pwd)/gpg-agent"
194 GPG_CONNECT_AGENT="../../tools/gpg-connect-agent"
195 GPGCONF="../../tools/gpgconf"
196 GPG_PRESET_PASSPHRASE="../../agent/gpg-preset-passphrase"
197 MKTDATA="../../tools/mk-tdata"
198 PINENTRY="$(cd $srcdir && /bin/pwd)/pinentry.sh"
199 # Default to empty passphrase for pinentry.sh
200 PINENTRY_USER_DATA=
201
202 # Make sure we have a valid option files even with VPATH builds.
203 for f in gpg.conf gpg-agent.conf ; do
204   if [ -f ./$f ]; then
205     :
206   elif [ -f $srcdir/$f.tmpl ]; then
207     cat $srcdir/$f.tmpl >$f
208     case "$f" in
209       gpg.conf)
210         echo "agent-program $GPG_AGENT" >>"$f"
211         ;;
212       gpg-agent.conf)
213         echo "pinentry-program $PINENTRY" >>"$f"
214         ;;
215     esac
216   fi
217 done
218
219 if [ "${verbose:-0}" -gt "1" ]; then
220   exec 5>/dev/null
221 else
222   echo "Test: $pgmname"                  >  ${pgmname}.log
223   echo "GNUPGHOME=$GNUPGHOME"            >> ${pgmname}.log
224   exec 5>&2 2>>${pgmname}.log
225 fi
226 :
227 # end