-static void subunit_init(struct torture_context *ctx)
-{
- /* FIXME: register segv and bus handler */
-}
-
-static void subunit_suite_start(struct torture_context *ctx,
- struct torture_suite *suite)
-{
-}
-
-static void subunit_print_testname(struct torture_context *ctx,
- struct torture_tcase *tcase,
- struct torture_test *test)
-{
- if (!strcmp(tcase->name, test->name)) {
- printf("%s", test->name);
- } else {
- printf("%s.%s", tcase->name, test->name);
- }
-}
-
-static void subunit_test_start(struct torture_context *ctx,
- struct torture_tcase *tcase,
- struct torture_test *test)
-{
- printf("test: ");
- subunit_print_testname(ctx, tcase, test);
- printf("\n");
-}
-
-static void subunit_test_result(struct torture_context *context,
- enum torture_result res, const char *reason)
-{
- switch (res) {
- case TORTURE_OK:
- printf("success: ");
- break;
- case TORTURE_FAIL:
- printf("failure: ");
- break;
- case TORTURE_ERROR:
- printf("error: ");
- break;
- case TORTURE_SKIP:
- printf("skip: ");
- break;
- }
- subunit_print_testname(context, context->active_tcase, context->active_test);
-
- if (reason)
- printf(" [\n%s\n]", reason);
- printf("\n");
-}
-
-static void subunit_comment(struct torture_context *test,
- const char *comment)
-{
- fprintf(stderr, "%s", comment);
-}
-
-static void subunit_warning(struct torture_context *test,
- const char *comment)
-{
- fprintf(stderr, "WARNING!: %s\n", comment);
-}
-
-const static struct torture_ui_ops subunit_ui_ops = {
- .init = subunit_init,
- .comment = subunit_comment,
- .warning = subunit_warning,
- .test_start = subunit_test_start,
- .test_result = subunit_test_result,
- .suite_start = subunit_suite_start
-};
-
-static void quiet_suite_start(struct torture_context *ctx,
- struct torture_suite *suite)
-{
- int i;
- ctx->quiet = true;
- for (i = 1; i < ctx->level; i++) putchar('\t');
- printf("%s: ", suite->name);
- fflush(stdout);
-}
-
-static void quiet_suite_finish(struct torture_context *ctx,
- struct torture_suite *suite)
-{
- putchar('\n');
-}
-
-static void quiet_test_result(struct torture_context *context,
- enum torture_result res, const char *reason)
-{
- fflush(stdout);
- switch (res) {
- case TORTURE_OK: putchar('.'); break;
- case TORTURE_FAIL: putchar('F'); break;
- case TORTURE_ERROR: putchar('E'); break;
- case TORTURE_SKIP: putchar('I'); break;
- }
-}
-
-const static struct torture_ui_ops quiet_ui_ops = {
- .suite_start = quiet_suite_start,
- .suite_finish = quiet_suite_finish,
- .test_result = quiet_test_result
-};
-
-void run_shell(struct torture_context *tctx)
-{
- char *cline;
- int argc;
- const char **argv;
- int ret;
-
- while (1) {
- cline = smb_readline("torture> ", NULL, NULL);
-
- if (cline == NULL)
- return;
-
- ret = poptParseArgvString(cline, &argc, &argv);
- if (ret != 0) {
- fprintf(stderr, "Error parsing line\n");
- continue;
- }
-
- if (!strcmp(argv[0], "quit")) {
- return;
- } else if (!strcmp(argv[0], "set")) {
- if (argc < 3) {
- fprintf(stderr, "Usage: set <variable> <value>\n");
- } else {
- char *name = talloc_asprintf(NULL, "torture:%s", argv[1]);
- lp_set_cmdline(tctx->lp_ctx, name, argv[2]);
- talloc_free(name);
- }
- } else if (!strcmp(argv[0], "help")) {
- fprintf(stderr, "Available commands:\n"
- " help - This help command\n"
- " run - Run test\n"
- " set - Change variables\n"
- "\n");
- } else if (!strcmp(argv[0], "run")) {
- if (argc < 2) {
- fprintf(stderr, "Usage: run TEST-NAME [OPTIONS...]\n");
- } else {
- run_test(tctx, argv[1]);
- }
- }
- free(cline);
- }
-}