Updated FSF's address.
[gnupg.git] / tests / pkits / common.sh
1 #!/bin/sh
2 # common.sh - common defs for all tests         -*- sh -*-
3 # Copyright (C) 2004 Free Software Foundation, Inc.
4 #
5 # This file is part of GnuPG.
6
7 # GnuPG is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
11
12 # GnuPG is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
20 # USA.
21
22 # reset some environment variables because we do not want to test locals
23 export LANG=C
24 export LANGUAGE=C
25 export LC_ALL=C
26
27
28 [ "$VERBOSE" = yes ] && set -x
29 [ -z "$srcdir" ] && srcdir="."
30 [ -z "$top_srcdir" ] && top_srcdir=".."
31 [ -z "$GPGSM" ] && GPGSM="../../sm/gpgsm"
32
33
34 if [ "$GNUPGHOME" != "`pwd`" ]; then
35     echo "inittests: please set GNUPGHOME to the tests/pkits directory" >&2
36     exit 1
37 fi
38
39 if [ -n "$GPG_AGENT_INFO" ]; then
40     echo "inittests: please unset GPG_AGENT_INFO" >&2
41     exit 1
42 fi
43
44
45
46 #--------------------------------
47 #------ utility functions -------
48 #--------------------------------
49
50 echo_n_init=no
51 echo_n () {
52   if test "$echo_n_init" = "no"; then
53     if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
54       if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
55         echo_n_n=
56         echo_n_c='
57 '
58       else
59         echo_n_n='-n'
60         echo_n_c=
61       fi
62     else
63       echo_n_n=
64       echo_n_c='\c'
65     fi
66     echo_n_init=yes
67   fi
68   echo $echo_n_n "${1}$echo_n_c"
69 }
70
71 fatal () {
72     echo "$pgmname: fatal:" $* >&2
73     exit 1;
74 }
75
76 error () {
77     echo "$pgmname:" $* >&2
78     exit 1
79 }
80
81 info () {
82     echo "$pgmname:" $* >&2
83 }
84
85 info_n () {
86     $echo_n "$pgmname:" $* >&2
87 }
88
89 pass () {
90     echo "PASS: " $* >&2
91     pass_count=`expr ${pass_count} + 1`
92 }
93
94 fail () {
95     echo "FAIL: " $* >&2
96     fail_count=`expr ${fail_count} + 1`
97 }
98
99 unresolved () {
100     echo "UNRESOLVED: " $* >&2
101     unresolved_count=`expr ${unresolved_count} + 1`
102 }
103
104 unsupported () {
105     echo "UNSUPPORTED: " $* >&2
106     unsupported_count=`expr ${unsupported_count} + 1`
107 }
108
109
110 final_result () {
111     [ $pass_count = 0 ]        || info "$pass_count tests passed"
112     [ $fail_count = 0 ]        || info "$fail_count tests failed"
113     [ $unresolved_count = 0 ]  || info "$unresolved_count tests unresolved"
114     [ $unsupported_count = 0 ] || info "$unsupported_count tests unsupported"
115     if [ $fail_count = 0 ]; then
116         info "all tests passed"
117     else
118         exit 1
119     fi
120 }
121
122 set -e
123
124 pgmname=`basename $0`
125
126 pass_count=0
127 fail_count=0
128 unresolved_count=0
129 unsupported_count=0
130
131
132 #trap cleanup SIGHUP SIGINT SIGQUIT
133 exec 2> ${pgmname}.log
134
135 :
136 # end