diff options
author | Werner Koch <[email protected]> | 2015-09-10 16:11:58 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2015-09-10 16:12:20 +0000 |
commit | e92a8ab021672b19e5cd397fa555fcc8a3401e8b (patch) | |
tree | dbf55296b6539a5d0c54246d1706501949618c14 | |
parent | g10: Improve portability of the new test driver. (diff) | |
download | gnupg-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.am | 4 | ||||
-rw-r--r-- | g10/t-keydb.c | 5 | ||||
-rw-r--r-- | g10/test.c | 30 |
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[]) { |