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