diff options
-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[]) { |