summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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[])
{