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 "testspoolss.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 }
107