testprogs: add win32 spoolss testsuite.
[ira/wip.git] / testprogs / win32 / spoolss / torture.c
1 /*
2    Unix SMB/CIFS implementation.
3    SMB torture UI functions
4
5    Copyright (C) Jelmer Vernooij 2006
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #include "spoolss.h"
22 #include "torture.h"
23
24 /****************************************************************************
25 ****************************************************************************/
26
27 void torture_warning(struct torture_context *context, const char *comment, ...)
28 {
29         va_list ap;
30         char tmp[1024];
31
32 #if 0
33         if (!context->results->ui_ops->warning)
34                 return;
35 #endif
36
37         va_start(ap, comment);
38         if (vsprintf(tmp, comment, ap) == -1) {
39                 return;
40         }
41         va_end(ap);
42
43         fprintf(stderr, "WARNING: %s\n", tmp);
44 #if 0
45         context->results->ui_ops->warning(context, tmp);
46
47         free(tmp);
48 #endif
49 }
50
51 /****************************************************************************
52 ****************************************************************************/
53
54 void torture_result(struct torture_context *context,
55                     enum torture_result result, const char *fmt, ...)
56 {
57         va_list ap;
58         char tmp[1024];
59
60         va_start(ap, fmt);
61
62         if (context->last_reason) {
63                 torture_warning(context, "%s", context->last_reason);
64                 free(context->last_reason);
65                 context->last_reason = NULL;
66         }
67
68         context->last_result = result;
69         if (vsprintf(tmp, fmt, ap) == -1) {
70                 return;
71         }
72         context->last_reason = malloc(sizeof(tmp));
73         if (!context->last_reason) {
74                 return;
75         }
76         memcpy(context->last_reason, tmp, sizeof(tmp));
77
78         va_end(ap);
79 }
80
81 /****************************************************************************
82 ****************************************************************************/
83
84 void torture_comment(struct torture_context *context, const char *comment, ...)
85 {
86         va_list ap;
87         char tmp[1024];
88 #if 0
89         if (!context->results->ui_ops->comment)
90                 return;
91 #endif
92         va_start(ap, comment);
93         if (vsprintf(tmp, comment, ap) == -1) {
94                 return;
95         }
96         va_end(ap);
97
98 #if 0
99         context->results->ui_ops->comment(context, tmp);
100 #endif
101         fprintf(stdout, "%s\n", tmp);
102
103 #if 0
104         free(tmp);
105 #endif
106 }