added zlib and reorgnaized some stuff
[gnupg.git] / checks / checkit
index 3ffce35..09cf7ac 100755 (executable)
@@ -13,7 +13,6 @@ usrpass2="abc"
 plain_files="plain-1 plain-2 plain-3"
 data_files=""
 exp_files=""
-last_command=""
 
 
 #--------------------------------
@@ -27,7 +26,6 @@ fatal () {
 
 error () {
     echo "$pgmname:" $* >&2
-    echo "($last_command) failed" >&2
     exit 1
 }
 
@@ -39,9 +37,19 @@ chdir () {
     cd $1 || fatal "cannot cd to $1"
 }
 
+cleanup () {
+    rm $data_files x y z 2>/dev/null
+    echo "#empty" >./.g10/options
+}
+
+
 run_g10 () {
-    last_command="HOME=. ../g10/g10 $*"
     eval HOME=. ../g10/g10 $*
+    if [ $? != 0 ] ; then
+       g10_err=$?
+       echo "(HOME=. ../g10/g10 $*) failed" >&2
+       error "g10 failed: $g10_err" >&2
+    fi
 }
 
 #--------------------------------
@@ -50,6 +58,8 @@ run_g10 () {
 
 set -e
 pgmname=$(basename $0)
+#trap cleanup EXIT SIGHUP SIGINT SIGQUIT
+
 
 # some checks
 [ -d "./.g10" ] || fatal "subdirectory .g10 missing"
@@ -59,6 +69,7 @@ done
 for i in $exp_files; do
     [ -f $i ] || fatal "$i: script missing"
 done
+# create the keyrings
 
 cat <<EOF  >./.g10/options
 no-greeting
@@ -68,71 +79,80 @@ EOF
 
 # print the G10 version
 run_g10 --version
+# intialize the trustdb
 
-info Checking cleartext signatures
-# There is a minor glitch, which appends a lf to the cleartext.
-# I do not consider that a bug, but I have to use the head .. mimic.
-# It is not clear what should happen to leading LFs, we must
-# change the defintion of cleartext, so that only 1 empty line
-# must follow the headers, but some specs say: any number of empty lines ..
-# clean-sat removes leading LFs
-# I know that this does not work for random data files (due to large lines
-# or what ever) - I hope we can live with it.
-for i in $plain_files; do
-    echo "$usrpass1" | run_g10 --passphrase-fd 0 -sat -o x --yes $i || error "g10 failed: $?"
-    run_g10 -o y --yes x || error "g10 failed: $?"
-    ../tools/clean-sat < $i > z
-    head -c $[ $(cat y | wc -c) - 1 ] y | diff - z || error "$i: mismatch"
+info Checking decryption
+for i in $plain_files ; do
+    echo "$usrpass1" | run_g10 --passphrase-fd 0 -o y --yes $i.asc
+    cmp $i y || error "$i: mismatch"
 done
 
+#info Checking cleartext signatures
+## There is a minor glitch, which appends a lf to the cleartext.
+## I do not consider that a bug, but I have to use the head .. mimic.
+## It is not clear what should happen to leading LFs, we must
+## change the defintion of cleartext, so that only 1 empty line
+## must follow the headers, but some specs say: any number of empty lines ..
+## clean-sat removes leading LFs
+## I know that this does not work for random data files (due to large lines
+## or what ever) - I hope we can live with it.
+#for i in $plain_files; do
+#    echo "$usrpass1" | run_g10 --passphrase-fd 0 -sat -o x --yes $i
+#    run_g10 -o y --yes x
+#    ../tools/clean-sat < $i > z
+#    head -c $[ $(cat y | wc -c) - 1 ] y | diff - z || error "$i: mismatch"
+#done
+
 info Creating some random data files
 for i in 500 9000 32000 80000; do
     head -c $i /dev/urandom >data-$i
     data_files="$data_files data-$i"
 done
 
-info Checking armored signatures
-for i in $plain_files $data_files ; do
-    echo "$usrpass1" | run_g10 --passphrase-fd 0 -sa -o x --yes $i || error "g10 failed: $?"
-    run_g10 -o y --yes x || error "g10 failed: $?"
-    cmp $i y || error "$i: mismatch"
-done
-
-info Checking signatures
-for i in $plain_files $data_files; do
-    echo "$usrpass1" | run_g10 --passphrase-fd 0 -s -o x --yes $i  || error "g10 failed: $?"
-    run_g10 -o y --yes x || error "g10 failed: $?"
-    cmp $i y || error "$i: mismatch"
-done
+#info Checking armored signatures
+#for i in $plain_files $data_files ; do
+#    echo "$usrpass1" | run_g10 --passphrase-fd 0 -sa -o x --yes $i
+#    run_g10 -o y --yes x
+#    cmp $i y || error "$i: mismatch"
+#done
+#
+#info Checking signatures
+#for i in $plain_files $data_files; do
+#    echo "$usrpass1" | run_g10 --passphrase-fd 0 -s -o x --yes $i
+#    run_g10 -o y --yes x
+#    cmp $i y || error "$i: mismatch"
+#done
 
 
 info Checking armored encryption
 for i in $plain_files $data_files ; do
-    run_g10 -ea -o x --yes -r "$usrname2" $i  || error "g10 failed: $?"
-    run_g10 -o y --yes x || error "g10 failed: $?"
+    info "file $i"
+    run_g10 -v -ea -o x --yes -r "$usrname2" $i
+    run_g10 -v -o y --yes x
     cmp $i y || error "$i: mismatch"
 done
 
 info Checking armored encryption with a pipe
 for i in $plain_files $data_files ; do
+    info "file $i"
     run_g10 -ea --yes -r "$usrname2" < $i | tee x \
-    | run_g10 -o y --yes || error "g10 failed: $?"
+    | run_g10 -o y --yes
     cmp $i y || error "$i: mismatch"
-    run_g10 --yes < x > y || error "g10 failed: $?"
+    run_g10 --yes < x > y
     cmp $i y || error "$i: mismatch"
 done
 
 info Checking encryption
 for i in $plain_files $data_files ; do
-    run_g10 -e -o x --yes -r "$usrname2" $i   || error "g10 failed: $?"
-    run_g10 -o y --yes x || error "g10 failed: $?"
+    run_g10 -e -o x --yes -r "$usrname2" $i
+    run_g10 -o y --yes x
     cmp $i y || error "$i: mismatch"
 done
 
 info Checking encryption with a pipe
 for i in $plain_files $data_files ; do
     run_g10 -e --yes -r "$usrname2" < $i \
-    | run_g10 --yes > y || error "g10 failed: $?"
+    | run_g10 --yes > y
     cmp $i y || error "$i: mismatch"
 done
 
@@ -141,43 +161,42 @@ info Checking signing and encryption
 for i in $plain_files $data_files ; do
     echo "$usrpass1" \
     | run_g10 --passphrase-fd 0 -se -o x --yes -r "$usrname2" $i
-    run_g10 -o y --yes x || error "g10 failed: $?"
+    run_g10 -o y --yes x
     cmp $i y || error "$i: mismatch"
 done
 
 info Checking armored signing and encryption
 for i in $plain_files $data_files ; do
     echo "$usrpass1" \
-    | run_g10 --passphrase-fd 0 -sae -o x --yes -r "$usrname2" $i || error "g10 failed: $?"
-    run_g10 -o y --yes x || error "g10 failed: $?"
+    | run_g10 --passphrase-fd 0 -sae -o x --yes -r "$usrname2" $i
+    run_g10 -o y --yes x
     cmp $i y || error "$i: mismatch"
 done
 
 
 info Checking armored detached signatures
 for i in $plain_files $data_files ; do
-    echo "$usrpass1" | run_g10 --passphrase-fd 0 -sab -o x --yes $i || error "g10 failed: $?"
+    echo "$usrpass1" | run_g10 --passphrase-fd 0 -sab -o x --yes $i
     run_g10 -o /dev/null --yes x  <$i || error "$i: bad signature"
 done
 
 info Checking detached signatures
 for i in $plain_files $data_files ; do
-    echo "$usrpass1" | run_g10 --passphrase-fd 0 -sb -o x --yes $i  || error "g10 failed: $?"
+    echo "$usrpass1" | run_g10 --passphrase-fd 0 -sb -o x --yes $i
     run_g10 -o /dev/null --yes x  <$i || error "$i: bad signature"
 done
 
 
 info Checking detached signatures of multiple files
 i="$plain_files $data_files"
-echo "$usrpass1" | run_g10 --passphrase-fd 0 -sb -o x --yes $i  || error "g10 failed: $?"
+echo "$usrpass1" | run_g10 --passphrase-fd 0 -sb -o x --yes $i
 cat $i | run_g10 -o /dev/null --yes x || error "$i: bad signature"
 
 info Checking armored detached signatures of multiple files
 i="$plain_files $data_files"
-echo "$usrpass1" | run_g10 --passphrase-fd 0 -sab -o x --yes $i || error "g10 failed: $?"
+echo "$usrpass1" | run_g10 --passphrase-fd 0 -sab -o x --yes $i
 cat $i | run_g10 -o /dev/null --yes x || error "$i: bad signature"
 
-rm $data_files x y z
 
 info "All tests passed."
 exit 0