xref: /haiku/src/tools/cppunit/TestUtils.cpp (revision 268f99dd7dc4bd7474a8bd2742d3f1ec1de6752a)
1aad997bdSTyler Dauwalder // TestUtils.cpp
2aad997bdSTyler Dauwalder 
3aad997bdSTyler Dauwalder #include <TestUtils.h>
4aad997bdSTyler Dauwalder #include <TestShell.h>
5a6b33ea3STyler Dauwalder #include <stdio.h>
658481f0fSOliver Tappe #include <stdlib.h>
758481f0fSOliver Tappe #include <string.h>
8aa94570aSIngo Weinhold #include <iostream>
9aad997bdSTyler Dauwalder 
1058481f0fSOliver Tappe using std::cout;
1158481f0fSOliver Tappe using std::dec;
1258481f0fSOliver Tappe using std::endl;
1358481f0fSOliver Tappe using std::hex;
1458481f0fSOliver Tappe using std::string;
1558481f0fSOliver Tappe 
161b89aa98SIngo Weinhold _EXPORT
DecodeResult(status_t result)17aad997bdSTyler Dauwalder status_t DecodeResult(status_t result) {
18aad997bdSTyler Dauwalder 	if (!BTestShell::GlobalBeVerbose())
19aad997bdSTyler Dauwalder 		return result;
20aad997bdSTyler Dauwalder 
21aa94570aSIngo Weinhold 	string str;
22aad997bdSTyler Dauwalder 	switch (result) {
23aad997bdSTyler Dauwalder 
24aad997bdSTyler Dauwalder 		case B_OK:
25aad997bdSTyler Dauwalder 			str = "B_OK";
26aad997bdSTyler Dauwalder 			break;
27aad997bdSTyler Dauwalder 
28aad997bdSTyler Dauwalder 		case B_ERROR:
29aad997bdSTyler Dauwalder 			str = "B_ERROR";
30aad997bdSTyler Dauwalder 			break;
31aad997bdSTyler Dauwalder 
32aad997bdSTyler Dauwalder 
33aad997bdSTyler Dauwalder 		// Storage Kit Errors
34aad997bdSTyler Dauwalder 		case B_FILE_ERROR:
35aad997bdSTyler Dauwalder 			str = "B_FILE_ERROR";
36aad997bdSTyler Dauwalder 			break;
37aad997bdSTyler Dauwalder 
38aad997bdSTyler Dauwalder 		case B_FILE_EXISTS:
39aad997bdSTyler Dauwalder 			str = "B_FILE_EXISTS";
40aad997bdSTyler Dauwalder 			break;
41aad997bdSTyler Dauwalder 
42aad997bdSTyler Dauwalder 		case B_ENTRY_NOT_FOUND:
43aad997bdSTyler Dauwalder 			str = "B_ENTRY_NOT_FOUND";
44aad997bdSTyler Dauwalder 			break;
45aad997bdSTyler Dauwalder 
46aad997bdSTyler Dauwalder 		case B_NAME_TOO_LONG:
47aad997bdSTyler Dauwalder 			str = "B_NAME_TOO_LONG";
48aad997bdSTyler Dauwalder 			break;
49aad997bdSTyler Dauwalder 
50aad997bdSTyler Dauwalder 		case B_DIRECTORY_NOT_EMPTY:
51aad997bdSTyler Dauwalder 			str = "B_DIRECTORY_NOT_EMPTY";
52aad997bdSTyler Dauwalder 			break;
53aad997bdSTyler Dauwalder 
54aad997bdSTyler Dauwalder 		case B_DEVICE_FULL:
55aad997bdSTyler Dauwalder 			str = "B_DEVICE_FULL";
56aad997bdSTyler Dauwalder 			break;
57aad997bdSTyler Dauwalder 
58aad997bdSTyler Dauwalder 		case B_READ_ONLY_DEVICE:
59aad997bdSTyler Dauwalder 			str = "B_READ_ONLY_DEVICE";
60aad997bdSTyler Dauwalder 			break;
61aad997bdSTyler Dauwalder 
62aad997bdSTyler Dauwalder 		case B_IS_A_DIRECTORY:
63aad997bdSTyler Dauwalder 			str = "B_IS_A_DIRECTORY";
64aad997bdSTyler Dauwalder 			break;
65aad997bdSTyler Dauwalder 
66aad997bdSTyler Dauwalder 		case B_NO_MORE_FDS:
67aad997bdSTyler Dauwalder 			str = "B_NO_MORE_FDS";
68aad997bdSTyler Dauwalder 			break;
69aad997bdSTyler Dauwalder 
70aad997bdSTyler Dauwalder 		case B_CROSS_DEVICE_LINK:
71aad997bdSTyler Dauwalder 			str = "B_CROSS_DEVICE_LINK";
72aad997bdSTyler Dauwalder 			break;
73aad997bdSTyler Dauwalder 
74aad997bdSTyler Dauwalder 		case B_LINK_LIMIT:
75aad997bdSTyler Dauwalder 			str = "B_LINK_LIMIT";
76aad997bdSTyler Dauwalder 			break;
77aad997bdSTyler Dauwalder 
78aad997bdSTyler Dauwalder 		case B_BUSTED_PIPE:
79aad997bdSTyler Dauwalder 			str = "B_BUSTED_PIPE";
80aad997bdSTyler Dauwalder 			break;
81aad997bdSTyler Dauwalder 
82aad997bdSTyler Dauwalder 		case B_UNSUPPORTED:
83aad997bdSTyler Dauwalder 			str = "B_UNSUPPORTED";
84aad997bdSTyler Dauwalder 			break;
85aad997bdSTyler Dauwalder 
86aad997bdSTyler Dauwalder 		case B_PARTITION_TOO_SMALL:
87aad997bdSTyler Dauwalder 			str = "B_PARTITION_TOO_SMALL";
88aad997bdSTyler Dauwalder 			break;
89aad997bdSTyler Dauwalder 
90*dec78bb2SIngo Weinhold 		case B_PARTIAL_READ:
91*dec78bb2SIngo Weinhold 			str = "B_PARTIAL_READ";
92*dec78bb2SIngo Weinhold 			break;
93*dec78bb2SIngo Weinhold 
94*dec78bb2SIngo Weinhold 		case B_PARTIAL_WRITE:
95*dec78bb2SIngo Weinhold 			str = "B_PARTIAL_WRITE";
96*dec78bb2SIngo Weinhold 			break;
97*dec78bb2SIngo Weinhold 
9821791a44STyler Dauwalder 		case B_BAD_MIME_SNIFFER_RULE:
9921791a44STyler Dauwalder 			str = "B_BAD_MIME_SNIFFER_RULE";
10021791a44STyler Dauwalder 			break;
101aad997bdSTyler Dauwalder 
102aad997bdSTyler Dauwalder 		// General Errors
103aad997bdSTyler Dauwalder 		case B_NO_MEMORY:
104aad997bdSTyler Dauwalder 			str = "B_NO_MEMORY";
105aad997bdSTyler Dauwalder 			break;
106aad997bdSTyler Dauwalder 
107aad997bdSTyler Dauwalder 		case B_IO_ERROR:
108aad997bdSTyler Dauwalder 			str = "B_IO_ERROR";
109aad997bdSTyler Dauwalder 			break;
110aad997bdSTyler Dauwalder 
111aad997bdSTyler Dauwalder 		case B_PERMISSION_DENIED:
112aad997bdSTyler Dauwalder 			str = "B_PERMISSION_DENIED";
113aad997bdSTyler Dauwalder 			break;
114aad997bdSTyler Dauwalder 
115aad997bdSTyler Dauwalder 		case B_BAD_INDEX:
116aad997bdSTyler Dauwalder 			str = "B_BAD_INDEX";
117aad997bdSTyler Dauwalder 			break;
118aad997bdSTyler Dauwalder 
119aad997bdSTyler Dauwalder 		case B_BAD_TYPE:
120aad997bdSTyler Dauwalder 			str = "B_BAD_TYPE";
121aad997bdSTyler Dauwalder 			break;
122aad997bdSTyler Dauwalder 
123aad997bdSTyler Dauwalder 		case B_BAD_VALUE:
124aad997bdSTyler Dauwalder 			str = "B_BAD_VALUE";
125aad997bdSTyler Dauwalder 			break;
126aad997bdSTyler Dauwalder 
127aad997bdSTyler Dauwalder 		case B_MISMATCHED_VALUES:
128aad997bdSTyler Dauwalder 			str = "B_MISMATCHED_VALUES";
129aad997bdSTyler Dauwalder 			break;
130aad997bdSTyler Dauwalder 
131aad997bdSTyler Dauwalder 		case B_NAME_NOT_FOUND:
132aad997bdSTyler Dauwalder 			str = "B_NAME_NOT_FOUND";
133aad997bdSTyler Dauwalder 			break;
134aad997bdSTyler Dauwalder 
135aad997bdSTyler Dauwalder 		case B_NAME_IN_USE:
136aad997bdSTyler Dauwalder 			str = "B_NAME_IN_USE";
137aad997bdSTyler Dauwalder 			break;
138aad997bdSTyler Dauwalder 
139aad997bdSTyler Dauwalder 		case B_TIMED_OUT:
140aad997bdSTyler Dauwalder 			str = "B_TIMED_OUT";
141aad997bdSTyler Dauwalder 			break;
142aad997bdSTyler Dauwalder 
143aad997bdSTyler Dauwalder 		case B_INTERRUPTED:
144aad997bdSTyler Dauwalder 			str = "B_INTERRUPTED";
145aad997bdSTyler Dauwalder 			break;
146aad997bdSTyler Dauwalder 
147aad997bdSTyler Dauwalder 		case B_WOULD_BLOCK:
148aad997bdSTyler Dauwalder 			str = "B_WOULD_BLOCK";
149aad997bdSTyler Dauwalder 			break;
150aad997bdSTyler Dauwalder 
151aad997bdSTyler Dauwalder 		case B_CANCELED:
152aad997bdSTyler Dauwalder 			str = "B_CANCELED";
153aad997bdSTyler Dauwalder 			break;
154aad997bdSTyler Dauwalder 
155aad997bdSTyler Dauwalder 		case B_NO_INIT:
156aad997bdSTyler Dauwalder 			str = "B_NO_INIT";
157aad997bdSTyler Dauwalder 			break;
158aad997bdSTyler Dauwalder 
159aad997bdSTyler Dauwalder 		case B_BUSY:
160aad997bdSTyler Dauwalder 			str = "B_BUSY";
161aad997bdSTyler Dauwalder 			break;
162aad997bdSTyler Dauwalder 
163aad997bdSTyler Dauwalder 		case B_NOT_ALLOWED:
164aad997bdSTyler Dauwalder 			str = "B_NOT_ALLOWED";
165aad997bdSTyler Dauwalder 			break;
166aad997bdSTyler Dauwalder 
167aad997bdSTyler Dauwalder 
168aad997bdSTyler Dauwalder 		// Kernel Errors
169aad997bdSTyler Dauwalder 		case B_BAD_ADDRESS:
170aad997bdSTyler Dauwalder 			str = "B_BAD_ADDRESS";
171aad997bdSTyler Dauwalder 			break;
172aad997bdSTyler Dauwalder 
1731007bf16SIngo Weinhold 		case B_BAD_TEAM_ID:
1741007bf16SIngo Weinhold 			str = "B_BAD_TEAM_ID";
1751007bf16SIngo Weinhold 			break;
1761007bf16SIngo Weinhold 
177aad997bdSTyler Dauwalder 		// OS Errors
178aad997bdSTyler Dauwalder 		case B_BAD_PORT_ID:
179aad997bdSTyler Dauwalder 			str = "B_BAD_PORT_ID";
180aad997bdSTyler Dauwalder 			break;
181aad997bdSTyler Dauwalder 
182aad997bdSTyler Dauwalder 		// Anything Else
183aad997bdSTyler Dauwalder 		default:
184aad997bdSTyler Dauwalder 			str = "??????????";
185aad997bdSTyler Dauwalder 			break;
186aad997bdSTyler Dauwalder 
187aad997bdSTyler Dauwalder 	}
188aad997bdSTyler Dauwalder 
189aad997bdSTyler Dauwalder 	cout << endl << "DecodeResult() -- " "0x" << hex << result << " (" << dec << result << ") == " << str << endl;
190aad997bdSTyler Dauwalder 
191aad997bdSTyler Dauwalder 	return result;
192aad997bdSTyler Dauwalder }
193aad997bdSTyler Dauwalder 
1941b89aa98SIngo Weinhold _EXPORT
IntToStr(int i)195aa94570aSIngo Weinhold string IntToStr(int i) {
196a6b33ea3STyler Dauwalder 	char num[32];
197a6b33ea3STyler Dauwalder 	sprintf(num, "%d", i);
198aa94570aSIngo Weinhold 	return string(num);
199a6b33ea3STyler Dauwalder }
200a6b33ea3STyler Dauwalder 
2011b89aa98SIngo Weinhold _EXPORT
ExecCommand(const char * command)202aad997bdSTyler Dauwalder void ExecCommand(const char *command) {
203aad997bdSTyler Dauwalder 	if (command)
204aad997bdSTyler Dauwalder 		system(command);
205aad997bdSTyler Dauwalder }
206aad997bdSTyler Dauwalder 
2071b89aa98SIngo Weinhold _EXPORT
ExecCommand(const char * command,const char * parameter)208aad997bdSTyler Dauwalder void ExecCommand(const char *command, const char *parameter) {
209aad997bdSTyler Dauwalder 	if (command && parameter) {
210aad997bdSTyler Dauwalder 		char *cmdLine = new char[strlen(command) + strlen(parameter) + 1];
211aad997bdSTyler Dauwalder 		strcpy(cmdLine, command);
212aad997bdSTyler Dauwalder 		strcat(cmdLine, parameter);
213aad997bdSTyler Dauwalder 		system(cmdLine);
214aad997bdSTyler Dauwalder 		delete[] cmdLine;
215aad997bdSTyler Dauwalder 	}
216aad997bdSTyler Dauwalder }
217aad997bdSTyler Dauwalder 
2181b89aa98SIngo Weinhold _EXPORT
ExecCommand(const char * command,const char * parameter1,const char * parameter2)219aad997bdSTyler Dauwalder void ExecCommand(const char *command, const char *parameter1,
220aad997bdSTyler Dauwalder 							const char *parameter2) {
221aad997bdSTyler Dauwalder 	if (command && parameter1 && parameter2) {
222aad997bdSTyler Dauwalder 		char *cmdLine = new char[strlen(command) + strlen(parameter1)
223aad997bdSTyler Dauwalder 								 + 1 + strlen(parameter2) + 1];
224aad997bdSTyler Dauwalder 		strcpy(cmdLine, command);
225aad997bdSTyler Dauwalder 		strcat(cmdLine, parameter1);
226aad997bdSTyler Dauwalder 		strcat(cmdLine, " ");
227aad997bdSTyler Dauwalder 		strcat(cmdLine, parameter2);
228aad997bdSTyler Dauwalder 		system(cmdLine);
229aad997bdSTyler Dauwalder 		delete[] cmdLine;
230aad997bdSTyler Dauwalder 	}
231aad997bdSTyler Dauwalder }
232