From 56c9e61d10976b7eae34bf7f064d45c0c4dbe8b8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 30 Oct 2006 11:34:59 +0000 Subject: r19513: Add support for recipes (using '@') (This used to be commit dbe5e8dd8c0986e5ab55a072957048f633838157) --- source4/torture/smbtorture.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'source4/torture/smbtorture.c') diff --git a/source4/torture/smbtorture.c b/source4/torture/smbtorture.c index b615dd66ad..b47127ff3f 100644 --- a/source4/torture/smbtorture.c +++ b/source4/torture/smbtorture.c @@ -425,6 +425,33 @@ const static struct torture_ui_ops quiet_ui_ops = { .test_result = quiet_test_result }; +void run_recipe(struct torture_context *tctx, const char *recipe) +{ + int numlines, i, ret; + char **lines; + + lines = file_lines_load(recipe, &numlines, NULL); + if (lines == NULL) { + fprintf(stderr, "Unable to load file %s\n", recipe); + return; + } + + for (i = 0; i < numlines; i++) { + int argc; + char **argv; + + ret = poptParseArgvString(lines[i], &argc, &argv); + if (ret != 0) { + fprintf(stderr, "Error parsing line\n"); + continue; + } + + run_test(tctx, argv[0]); + } + + talloc_free(lines); +} + void run_shell(struct torture_context *tctx) { char *cline; @@ -523,7 +550,7 @@ int main(int argc,char *argv[]) setlinebuf(stdout); /* we are never interested in SIGPIPE */ - BlockSignals(true,SIGPIPE); + BlockSignals(true, SIGPIPE); pc = poptGetContext("smbtorture", argc, (const char **) argv, long_options, POPT_CONTEXT_KEEP_FIRST); @@ -649,7 +676,9 @@ int main(int argc,char *argv[]) double rate; int unexpected_failures; for (i=2;i