diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-10-30 11:34:59 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:24:43 -0500 |
commit | 56c9e61d10976b7eae34bf7f064d45c0c4dbe8b8 (patch) | |
tree | 8551be720ecbde12cb364b6d4ba9909f9d58c331 | |
parent | af3c5b46d3c81692dc7e49c84bd372d2ff740e24 (diff) | |
download | samba-56c9e61d10976b7eae34bf7f064d45c0c4dbe8b8.tar.gz samba-56c9e61d10976b7eae34bf7f064d45c0c4dbe8b8.tar.bz2 samba-56c9e61d10976b7eae34bf7f064d45c0c4dbe8b8.zip |
r19513: Add support for recipes (using '@')
(This used to be commit dbe5e8dd8c0986e5ab55a072957048f633838157)
-rw-r--r-- | source4/torture/smbtorture.c | 33 |
1 files changed, 31 insertions, 2 deletions
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<argc_new;i++) { - if (!run_test(torture, argv_new[i])) { + if (argv_new[i][0] == '@') { + run_recipe(torture, argv_new[i]+1); + } else if (!run_test(torture, argv_new[i])) { correct = false; } } |