diff --git a/lib/tests/t_api.c b/lib/tests/t_api.c
index 4fc814cf41..f8280a566e 100644
--- a/lib/tests/t_api.c
+++ b/lib/tests/t_api.c
@@ -32,6 +32,7 @@
#include "include/tests/t_api.h"
static char *Usage = "\t-a : run all tests\n"
+ "\t-b
: chdir to dir before running tests"
"\t-c : use specified config file\n"
"\t-d : set debug level to debug_level\n"
"\t-h : print test info\n"
@@ -42,6 +43,7 @@ static char *Usage = "\t-a : run all tests\n"
"\t-q : use 'timeout' as the timeout value\n";
/*
* -a --> run all tests
+ * -b dir --> chdir to dir before running tests
* -tn --> run test n
* -c config --> use config file 'config'
* -d --> turn on api debugging
@@ -65,6 +67,7 @@ static char *T_config;
static char T_tvec[T_MAXTESTS / 8];
static char *T_env[T_MAXENV + 1];
static char T_buf[T_BIGBUF];
+static char *T_dir;
static int t_initconf(char *path);
static int t_dumpconf(char *path);
@@ -96,13 +99,16 @@ main(int argc, char **argv)
T_timeout = T_TIMEOUT;
/* parse args */
- while ((c = isc_commandline_parse(argc, argv, ":at:c:d:n:huxq:"))
+ while ((c = isc_commandline_parse(argc, argv, ":at:c:d:n:huxq:b:"))
!= -1) {
if (c == 'a') {
/* flag all tests to be run */
memset(T_tvec, 0xffff, sizeof(T_tvec));
/* memset(T_tvec, UINT_MAX, sizeof(T_tvec)); */
}
+ else if (c == 'b') {
+ T_dir = isc_commandline_argument;
+ }
else if (c == 't') {
tnum = atoi(isc_commandline_argument);
if ((tnum > 0) && (tnum < T_MAXTESTS)) {
@@ -161,6 +167,9 @@ main(int argc, char **argv)
}
}
+ if (T_dir != NULL)
+ (void) chdir(T_dir);
+
/* output time to journal */
date = t_getdate();