aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2015-09-10 16:11:58 +0000
committerWerner Koch <[email protected]>2015-09-10 16:12:20 +0000
commite92a8ab021672b19e5cd397fa555fcc8a3401e8b (patch)
treedbf55296b6539a5d0c54246d1706501949618c14
parentg10: Improve portability of the new test driver. (diff)
downloadgnupg-e92a8ab021672b19e5cd397fa555fcc8a3401e8b.tar.gz
gnupg-e92a8ab021672b19e5cd397fa555fcc8a3401e8b.zip
g10: Fix make distcheck problem.
* g10/test.c: Include string.h. (prepend_srcdir): New. Taken from Libgcrypt. (test_free): New. * g10/t-keydb.c (do_test): Malloc the filename. * g10/Makefile.am (AM_CPPFLAGS): Remove -DSOURCE_DIR (EXTRA_DIST): Add t-keydb-keyring.kbx. -- Using SOURCE_DIR should in general work but we have seen problems when doing this in Libgcrypt. Using the srcdir variable gives us anyway more flexibility and aligns with the way we do it in tests/openpgp. Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--g10/Makefile.am4
-rw-r--r--g10/t-keydb.c5
-rw-r--r--g10/test.c30
3 files changed, 36 insertions, 3 deletions
diff --git a/g10/Makefile.am b/g10/Makefile.am
index 421870c5e..2fd52b3f7 100644
--- a/g10/Makefile.am
+++ b/g10/Makefile.am
@@ -19,9 +19,9 @@
## Process this file with automake to produce Makefile.in
EXTRA_DIST = options.skel distsigkey.gpg ChangeLog-2011 gpg-w32info.rc \
- gpg.w32-manifest.in test.c
+ gpg.w32-manifest.in test.c t-keydb-keyring.kbx
-AM_CPPFLAGS = -I$(top_srcdir)/common -DSOURCE_DIR="\"$(srcdir)\""
+AM_CPPFLAGS = -I$(top_srcdir)/common
include $(top_srcdir)/am/cmacros.am
diff --git a/g10/t-keydb.c b/g10/t-keydb.c
index 634cb05a7..17a76111d 100644
--- a/g10/t-keydb.c
+++ b/g10/t-keydb.c
@@ -30,11 +30,14 @@ do_test (int argc, char *argv[])
KBNODE kb1, kb2;
char *uid1;
char *uid2;
+ char *fname;
(void) argc;
(void) argv;
- rc = keydb_add_resource (SOURCE_DIR "/t-keydb-keyring.kbx", 0);
+ fname = prepend_srcdir ("t-keydb-keyring.kbx");
+ rc = keydb_add_resource (fname, 0);
+ test_free (fname);
if (rc)
ABORT ("Failed to open keyring.");
diff --git a/g10/test.c b/g10/test.c
index e9e6b2342..59a015ca6 100644
--- a/g10/test.c
+++ b/g10/test.c
@@ -20,6 +20,7 @@
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "gpg.h"
@@ -138,6 +139,35 @@ exit_tests (int force)
}
}
+
+/* Prepend FNAME with the srcdir environment variable's value and
+ return a malloced filename. Caller must release the returned
+ string using test_free. */
+char *
+prepend_srcdir (const char *fname)
+{
+ static const char *srcdir;
+ char *result;
+
+ if (!srcdir && !(srcdir = getenv ("srcdir")))
+ srcdir = ".";
+
+ result = malloc (strlen (srcdir) + 1 + strlen (fname) + 1);
+ strcpy (result, srcdir);
+ strcat (result, "/");
+ strcat (result, fname);
+ return result;
+}
+
+
+void
+test_free (void *a)
+{
+ if (a)
+ free (a);
+}
+
+
int
main (int argc, char *argv[])
{