diff --git a/src/testsuite/testsuite.c b/src/testsuite/testsuite.c index c923d116faa06ab655ac83b3ca39161e06acf76d..99b113ff6d9d85eb2fd47d0ca85f12fd1f910ee8 100644 --- a/src/testsuite/testsuite.c +++ b/src/testsuite/testsuite.c @@ -46,11 +46,11 @@ * Testsuite initialization */ -static void testsuite_tool_init(void) +static void testsuite_tool_init(const char *extensions) { sieve_tool_init(FALSE); - sieve_extensions_set_string(NULL); + sieve_extensions_set_string(extensions); (void) sieve_extension_register(&testsuite_extension, TRUE); @@ -120,7 +120,7 @@ int main(int argc, char **argv) struct master_service *service; const char *getopt_str; int c; - const char *scriptfile, *dumpfile; + const char *scriptfile, *dumpfile, *extensions; const char *user; struct sieve_binary *sbin; const char *sieve_dir; @@ -131,15 +131,12 @@ int main(int argc, char **argv) MASTER_SERVICE_FLAG_STANDALONE, argc, argv); - /* Initialize testsuite */ - testsuite_tool_init(); - user = getenv("USER"); /* Parse arguments */ - scriptfile = dumpfile = NULL; + scriptfile = dumpfile = extensions = NULL; - getopt_str = t_strconcat("d:t", + getopt_str = t_strconcat("d:x:t", master_service_getopt_string(), NULL); while ((c = getopt(argc, argv, getopt_str)) > 0) { switch (c) { @@ -147,6 +144,10 @@ int main(int argc, char **argv) /* destination address */ dumpfile = optarg; break; + case 'x': + /* destination address */ + extensions = optarg; + break; case 't': trace = TRUE; break; @@ -172,6 +173,9 @@ int main(int argc, char **argv) i_fatal_status(EX_USAGE, "Unknown argument: %s", argv[optind]); } + /* Initialize testsuite */ + testsuite_tool_init(extensions); + printf("Test case: %s:\n\n", scriptfile); /* Initialize environment */