2 Unix SMB/CIFS implementation.
3 Samba utility functions
4 Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include "lib/torture/torture.h"
23 static void subunit_suite_start(struct torture_context
*ctx
,
24 struct torture_suite
*suite
)
28 static void subunit_print_testname(struct torture_context
*ctx
,
29 struct torture_tcase
*tcase
,
30 struct torture_test
*test
)
32 if (!strcmp(tcase
->name
, test
->name
)) {
33 printf("%s", test
->name
);
35 printf("%s.%s", tcase
->name
, test
->name
);
39 static void subunit_test_start(struct torture_context
*ctx
,
40 struct torture_tcase
*tcase
,
41 struct torture_test
*test
)
44 subunit_print_testname(ctx
, tcase
, test
);
48 static void subunit_test_result(struct torture_context
*context
,
49 enum torture_result res
, const char *reason
)
65 subunit_print_testname(context
, context
->active_tcase
, context
->active_test
);
68 printf(" [\n%s\n]", reason
);
72 static void subunit_comment(struct torture_context
*test
,
75 fprintf(stderr
, "%s", comment
);
78 static void subunit_warning(struct torture_context
*test
,
81 fprintf(stderr
, "WARNING!: %s\n", comment
);
84 static void subunit_progress(struct torture_context
*tctx
, int offset
, enum torture_progress_whence whence
)
87 case TORTURE_PROGRESS_SET
:
88 printf("progress: %d\n", offset
);
90 case TORTURE_PROGRESS_CUR
:
91 printf("progress: %+-d\n", offset
);
93 case TORTURE_PROGRESS_POP
:
94 printf("progress: pop\n");
96 case TORTURE_PROGRESS_PUSH
:
97 printf("progress: push\n");
100 fprintf(stderr
, "Invalid call to progress()\n");
105 const struct torture_ui_ops torture_subunit_ui_ops
= {
106 .comment
= subunit_comment
,
107 .warning
= subunit_warning
,
108 .test_start
= subunit_test_start
,
109 .test_result
= subunit_test_result
,
110 .suite_start
= subunit_suite_start
,
111 .progress
= subunit_progress
,