Code and sample output to test new classes.
[dyninst.git] / pdutil / tests / utilTest.C
1
2 /*
3  *
4  * Code to test functions from libUtil & class List from list.h
5  *        
6  * This code has been purified
7  *
8  * Verified output is in util_out
9  *
10  * $Log: utilTest.C,v $
11  * Revision 1.1  1994/08/17 18:26:16  markc
12  * Code and sample output to test new classes.
13  *
14  *
15  */
16 #include <string.h>
17 #include "../h/rpcUtil.h"
18
19 #pragma implementation "list.h"
20 #include "../h/list.h"
21
22 #pragma implementation "cstring.h"
23 #include "../h/cstring.h"
24
25 void dump_res(char **res)
26 {
27   int i=0;
28
29   cout << "DUMP STRING:";
30   while (res[i]) {
31     cout << "%s,", res[i];
32     delete [] res[i];
33     i++;
34   }
35   cout << endl;
36   delete [] res;
37 }
38
39 void test_list()
40 {
41   List<int> ilist;
42   List<char*> slist;
43   char *s1 = strdup("happy");
44   char *s2 = strdup("sad");
45
46   cout << " ilist = " << ilist << endl;
47   cout << " ilist is " << (ilist.empty() ? " " : " NOT ") << " empty " << endl;
48   cout << " slist = " << slist << endl;
49   cout << " slist is " << (slist.empty() ? " " : " NOT ") << " empty " << endl;
50
51   ilist.add(1);
52   ilist.add(2);
53   ilist.add(3);
54   
55   slist.add(s1);
56   slist.add(s2);
57   
58   cout << " ilist = " << ilist << endl;
59   cout << " ilist is " << (ilist.empty() ? " " : " NOT ") << " empty " << endl;
60   cout << " slist = " << slist << endl;
61   cout << " slist is " << (slist.empty() ? " " : " NOT ") << " empty " << endl;
62
63   ilist.removeAll();
64
65   List<char*> walk;
66   char *temp;
67   for (walk=slist; temp = *walk; walk++)
68     delete [] temp;
69   slist.removeAll();
70
71   HTable<char*> hashEm;
72   HTable<Cstring> hashC;
73
74   Cstring c1("c1"), c2("c2"), c3("c4"), c4("a1"), c5("a2"), c6("c3");
75
76   char *a1= strdup("a1");
77   char *a3= strdup("a3");
78   char *a2= strdup("a2");
79   char *b3= strdup("b3");
80   char *aa= strdup("aa");
81   char *ba= strdup("ba");
82
83   hashEm.add(a1, (void*) a1);
84   hashEm.add(a2, (void*) a2);
85   hashEm.add(a3, (void*) a3);
86   hashEm.add(b3, (void*) b3);
87   hashEm.add(aa, (void*) aa);
88   hashEm.add(ba, (void*) ba);
89
90   cout << "hashEm = " << hashEm << endl;
91
92   hashC.add(c1, (void*) c1.get());
93   hashC.add(c2, (void*) c2.get());
94   hashC.add(c3, (void*) c3.get());
95   hashC.add(c4, (void*) c4.get());
96   hashC.add(c5, (void*) c5.get());
97   hashC.add(c6, (void*) c6.get());
98
99   cout << "hashC = " << hashC << endl;
100
101   hashC.destroy();
102
103   HTable<char *> wht;
104
105   char *tm;
106   for (wht=hashEm; tm=*wht; wht++)
107     delete [] tm;
108   hashEm.destroy();
109 }
110
111
112 main()
113 {
114   int ct;
115   char **answer;
116   char *a1; 
117   char *a2; 
118   char *a3; 
119   char *a4; 
120   char *a5; 
121   char *a6; 
122   char *a7; 
123   char *a8; 
124   char *a9; 
125   char *a10;
126   char *a11; 
127   char *a12;
128   a1 = strdup("           ");
129   a2 = strdup("   mark");
130   a3 = strdup("mark  ");
131   a4 = strdup("mark ");
132   a5 = strdup("   mark ");
133   a6 = strdup(" mark mark");
134   a7 = strdup(" mark  mark");
135   a8 = strdup(" mark mark ");
136   a9 = strdup(" mark  mark  ");
137   a10 = strdup("mark mark ");
138   a11 = strdup("  mark1  mark2 mark3   mark4");
139   a12 = strdup("  mark1  mark2 mark3    mark4 mark5    mark6 mark7 mark8     mark9           mark10    ");
140    
141
142   cout << "String is: " << a1 << endl;
143   answer = RPCgetArg(ct, a1);
144   dump_res(answer);
145
146   cout << "String is: " << a2 << endl;
147   answer = RPCgetArg(ct, a2);
148   dump_res(answer);
149
150   cout << "String is: " << a3 << endl;
151   answer = RPCgetArg(ct, a3);
152   dump_res(answer);
153
154   cout << "String is: " << a4 << endl;
155   answer = RPCgetArg(ct, a4);
156   dump_res(answer);
157
158   cout << "String is: " << a5 << endl;
159   answer = RPCgetArg(ct, a5);
160   dump_res(answer);
161
162   cout << "String is: " << a6 << endl;
163   answer = RPCgetArg(ct, a6);
164   dump_res(answer);
165
166   cout << "String is: " << a7 << endl;
167   answer = RPCgetArg(ct, a7);
168   dump_res(answer);
169
170   cout << "String is: " << a8 << endl;
171   answer = RPCgetArg(ct, a8);
172   dump_res(answer);
173
174   cout << "String is: " << a9 << endl;
175   answer = RPCgetArg(ct, a9);
176   dump_res(answer);
177
178   cout << "String is: " << a10 << endl;
179   answer = RPCgetArg(ct, a10);
180   dump_res(answer);
181
182   cout << "String is: " << a11 << endl;
183   answer = RPCgetArg(ct, a11);
184   dump_res(answer);
185
186   cout << "String is: " << a12 << endl;
187   answer = RPCgetArg(ct, a12);
188   dump_res(answer);
189
190   delete [] a1;
191   delete [] a2;
192   delete [] a3;
193   delete [] a4;
194   delete [] a5;
195   delete [] a6;
196   delete [] a7;
197   delete [] a8;
198   delete [] a9;
199   delete [] a10;
200   delete [] a11;
201   delete [] a12;
202
203   test_list();
204 }