Tweaked the build system so that make distcheck finanly said Well
authorWerner Koch <wk@gnupg.org>
Fri, 9 Aug 2002 18:16:02 +0000 (18:16 +0000)
committerWerner Koch <wk@gnupg.org>
Fri, 9 Aug 2002 18:16:02 +0000 (18:16 +0000)
Done.

tests/ChangeLog
tests/Makefile.am
tests/asschk.c
tests/inittests
tests/runtest
tests/samplekeys/distfiles [deleted file]
tests/sm-sign+verify
tests/sm-verify

index 1711e95..627d022 100644 (file)
@@ -1,3 +1,12 @@
+2002-08-09  Werner Koch  <wk@gnupg.org>
+
+       * asschk.c (cmd_getenv): New.
+       (expand_line): Allow / as variable name delimiter.
+       * sm-sign+verify, sm-verify: Use $srcdir so that a VPATH build works.
+
+       * Makefile.am: Fixes for make dist.
+       * samplekets/Makefile.am: New.
+       
 2002-08-08  Werner Koch  <wk@gnupg.org>
 
        * asschk.c: Added some new features.
index ac0e6cb..442d864 100644 (file)
@@ -24,17 +24,23 @@ GPGSM = ../sm/gpgsm
 # We can't unset a variable here so we unset GPG_AGENT_INFO in runtest
 TESTS_ENVIRONMENT = GNUPGHOME=`pwd` LC_ALL=C GPGSM=$(GPGSM) $(srcdir)/runtest
 
-EXTRA_DIST = runtest inittests \
+testscripts = sm-sign+verify sm-verify
+
+EXTRA_DIST = runtest inittests $(testscripts) \
             text-1.txt text-2.txt text-3.txt \
             text-1.osig.pem text-1.dsig.pem text-1.osig-bad.pem \
-            text-2.osig.pem text-2.osig-bad.pem
+            text-2.osig.pem text-2.osig-bad.pem \
+             samplekeys/32100C27173EF6E9C4E9A25D3D69F86D37A4F939.key \
+             samplekeys/cert_g10code_pete1.pem \
+             samplekeys/cert_g10code_test1.pem \
+             samplekeys/cert_g10code_theo1.pem
 
-TESTS = sm-sign+verify sm-verify
+TESTS = $(testscripts)
 
 CLEANFILES = inittests.stamp x y y z out err 
             *.lock .\#lk* 
 
-DISTCLEANFILES = keyring.kbx~ random_seed
+DISTCLEANFILES = pubring.kbx~ random_seed
 
 noinst_PROGRAMS = asschk
 
@@ -44,22 +50,9 @@ asschk_SOURCES = asschk.c
 all-local: inittests.stamp
 
 clean-local:
-       $(TESTS_ENVIRONMENT) $(srcdir)/inittests --clean
+       srcdir=$(srcdir) $(TESTS_ENVIRONMENT) $(srcdir)/inittests --clean
 
 inittests.stamp: inittests
-       $(TESTS_ENVIRONMENT) $(srcdir)/inittests
+       srcdir=$(srcdir) $(TESTS_ENVIRONMENT) $(srcdir)/inittests
        echo timestamp >./inittests.stamp
 
-# Include all files listed in the samplekeys/distfiles
-dist-hook:
-       @set -e; \
-         dir=$(srcdir)/samplekeys ; \
-         $(mkinstalldirs) $(distdir)/$$dir ; \
-         for i in distfiles `cat $$dir/distfiles` ; do \
-               ln $(srcdir)/$$dir/$$i $(distdir)/$$dir/$$i 2> /dev/null \
-               || cp -p $(srcdir)/$$dir/$$i $(distdir)/$$dir/$$i; \
-        done
-
-
-
-
index 7b73216..829c862 100644 (file)
@@ -30,8 +30,8 @@
    a line is processed but after comment processing.  Macros are only
    expanded once and non existing macros expand to the empty string.
    A macro is dereferenced by prefixing its name with a dollar sign;
-   the end of the name is currently indicated by a white space.  To
-   use a dollor sign verbatim, double it. 
+   the end of the name is currently indicated by a white space, a
+   dollar sign or a slash.  To use a dollor sign verbatim, double it.
 
    A macro is assigned by prefixing a statement with the macro name
    and an equal sign.  The value is assigned verbatim if it does not
@@ -96,6 +96,9 @@
    cmpfiles <first> <second>
       Returns true when the content of the files FIRST and SECOND match.
 
+   getenv <name>
+      Return the value of the environment variable NAME.
+
 */
 
 #include <stdio.h>
@@ -571,7 +574,8 @@ expand_line (char *buffer)
           line = p + 1;
           continue;
         }
-      for (pend=p+1; *pend && !spacep (pend) && *pend != '$'; pend++)
+      for (pend=p+1; *pend && !spacep (pend)
+           && *pend != '$' && *pend != '/'; pend++)
         ;
       if (*pend)
         {
@@ -854,6 +858,17 @@ cmd_cmpfiles (const char *assign_to, char *arg)
   fclose (fp2);
 }
 
+static void
+cmd_getenv (const char *assign_to, char *arg)
+{
+  const char *s;
+  s = *arg? getenv (arg):"";
+  set_var (assign_to, s? s:"");
+}
+
+
+
+\f
 /* Process the current script line LINE. */
 static int
 interpreter (char *line)
@@ -875,6 +890,7 @@ interpreter (char *line)
     { "quit-if"   , cmd_quit_if },
     { "fail-if"   , cmd_fail_if },
     { "cmpfiles"  , cmd_cmpfiles },
+    { "getenv"    , cmd_getenv },
     { NULL }
   };
   char *p, *save_p;
index 1de903e..b1860f5 100755 (executable)
@@ -11,7 +11,7 @@
 
 set -e
 
-sample_cert='
+sample_certs='
 cert_g10code_test1.pem
 cert_g10code_pete1.pem
 cert_g10code_theo1.pem
@@ -22,7 +22,7 @@ private_keys='
 '
 
 clean_files='
-gpgsm.conf gpg-agent.conf trustlist.txt keyring.kbx
+gpgsm.conf gpg-agent.conf trustlist.txt pubring.kbx
 msg msg.sig msg.unsig
 '
 
@@ -34,8 +34,12 @@ if [ -d $srcdir/samplekeys ] \
    && grep TESTS_ENVIRONMENT Makefile >/dev/null 2>&1; then
  :
 else
-    echo "inittests: please cd to the tests directory first" >&2
-    exit 1
+   # During make distclean the Makefile has already been removed,
+   # so we need this extra test.
+   if ! grep gnupg-test-directory testdir.stamp >/dev/null 2>&1; then
+      echo "inittests: please cd to the tests directory first" >&2
+      exit 1
+   fi
 fi
 
 if [ "$1" = "--clean" ]; then
@@ -43,7 +47,7 @@ if [ "$1" = "--clean" ]; then
        rm private-keys-v1.d/* 2>/dev/null || true
        rmdir private-keys-v1.d
     fi
-    rm ${clean_files} 2>/dev/null || true
+    rm ${clean_files} testdir.stamp 2>/dev/null || true
     exit 0
 fi
 
@@ -57,13 +61,15 @@ if [ -n "$GPG_AGENT_INFO" ]; then
     exit 1
 fi
 
+# A stamp file used with --clean
+echo gnupg-test-directory > testdir.stamp
 
 
 # Create the private key directy if it does not exists and copy 
 # the sample keys.
 [ -d private-keys-v1.d ] || mkdir private-keys-v1.d
 for i in ${private_keys}; do 
-    cp ${srcdir}/samplekeys/$i.key private-keys-v1.d/$i.key
+    cat ${srcdir}/samplekeys/$i.key >private-keys-v1.d/$i.key
 done
 
 # Create the configuration scripts
@@ -83,7 +89,8 @@ cat > trustlist.txt <<EOF
 3CF405464F66ED4A7DF45BBDD1E4282E33BDB76E S
 EOF
 
-# Make sure that the sample certs are available
+# Make sure that the sample certs are available but ignore errors here
+# because we are not a test script.
 for i in ${sample_certs}; do 
-    $GPGSM --import ${srcdir}/samplekeys/$i.pem 
+    $GPGSM --import ${srcdir}/samplekeys/$i || true
 done
index 6284179..71385fb 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
 unset GPG_AGENT_INFO
-[ -x "$1" ] && exec "$1"
+[ -x "$1" ] && exec $1 $2
 exec ./asschk --no-echo -DGPGSM=${GPGSM} <"$1"
 
diff --git a/tests/samplekeys/distfiles b/tests/samplekeys/distfiles
deleted file mode 100644 (file)
index 75f7fd1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-32100C27173EF6E9C4E9A25D3D69F86D37A4F939.key
-cert_g10code_pete1.pem
-cert_g10code_test1.pem
-cert_g10code_theo1.pem
index 014126f..1c3ae7d 100644 (file)
@@ -3,7 +3,8 @@
 # Creating a signature and verifying it
 # Requirements: a plain file "text-1.txt" 
 
-plaintext = text-1.txt
+srcdir = getenv srcdir
+plaintext = let $srcdir/text-1.txt
 
 in  = openfile $plaintext
 out = createfile msg.sig
index 6abc81b..b06dc16 100644 (file)
@@ -4,8 +4,10 @@
 # Requirements: 
 #
 
+srcdir = getenv srcdir
+
 # Check an opaque signature
-sig = openfile text-1.osig.pem
+sig = openfile $srcdir/text-1.osig.pem
 out = createfile msg.unsig
 pipeserver $GPGSM
 send INPUT FD=$sig
@@ -26,12 +28,12 @@ expect-ok
 
 sig =
 out =
-cmpfiles text-1.txt msg.unsig
+cmpfiles $srcdir/text-1.txt msg.unsig
 fail-if !$?
 
 # Check a detached signature.
-sig = openfile text-1.dsig.pem
-plain = openfile text-1.txt
+sig = openfile $srcdir/text-1.dsig.pem
+plain = openfile $srcdir/text-1.txt
 pipeserver $GPGSM
 send INPUT FD=$sig
 expect-ok
@@ -50,7 +52,7 @@ send BYE
 expect-ok
 
 # Check a tampered opaque message
-sig = openfile text-1.osig-bad.pem
+sig = openfile $srcdir/text-1.osig-bad.pem
 out = createfile msg.unsig
 
 pipeserver $GPGSM
@@ -71,7 +73,7 @@ send BYE
 expect-ok
 
 # Check another opaque signature but without asking for the output.
-sig = openfile text-2.osig.pem
+sig = openfile $srcdir/text-2.osig.pem
 
 pipeserver $GPGSM
 send INPUT FD=$sig
@@ -89,7 +91,7 @@ send BYE
 expect-ok
 
 # We als have tampered version.
-sig = openfile text-2.osig-bad.pem
+sig = openfile $srcdir/text-2.osig-bad.pem
 
 pipeserver $GPGSM
 send INPUT FD=$sig