]>
Commit | Line | Data |
---|---|---|
d477ad88 | 1 | void Compare(TObjArray& a, TObjArray& b) { |
73abe331 | 2 | |
3 | Assert(a.GetSize() == b.GetSize()); | |
4 | ||
5 | TIter iterA(&a); | |
6 | TIter iterB(&b); | |
7 | ||
8 | AliDCSValue* valA; | |
9 | AliDCSValue* valB; | |
10 | ||
11 | while ((valA = (AliDCSValue*) iterA.Next())) { | |
12 | valB = (AliDCSValue*) iterB.Next(); | |
13 | ||
14 | cout<<valA->ToString()<<endl; | |
15 | cout<<valB->ToString()<<endl; | |
16 | ||
17 | Assert(valA->GetSimpleValue() == valB->GetSimpleValue()); | |
18 | Assert(valA->GetTimeStamp() == valB->GetTimeStamp()); | |
19 | } | |
20 | ||
21 | } | |
22 | ||
d477ad88 | 23 | void CompareStr(TObjArray& a, TObjArray& b) { |
73abe331 | 24 | |
25 | cout<<"A size: "<<a.GetSize()<<endl; | |
26 | cout<<"B size: "<<b.GetSize()<<endl; | |
27 | ||
28 | Assert(a.GetSize() == b.GetSize()); | |
29 | ||
30 | TIter iterA(&a); | |
31 | TIter iterB(&b); | |
32 | ||
33 | TObjString* valA; | |
34 | TObjString* valB; | |
35 | ||
36 | while ((valA = (TObjString*) iterA.Next())) { | |
37 | valB = (TObjString*) iterB.Next(); | |
38 | ||
39 | cout<<valA->String()<<endl; | |
40 | cout<<valB->String()<<endl; | |
41 | ||
42 | Assert(valA->String() == valB->String()); | |
43 | } | |
44 | } | |
45 | ||
46 | void PrintBuffer(const char* buffer, UInt_t size) { | |
47 | ||
48 | cout<<"BUFFER START"<<endl; | |
49 | ||
50 | for (UInt_t k = 0; k < size; k ++) { | |
51 | cout<<" "<<(UInt_t) (UChar_t) buffer[k]<<" "; | |
52 | if (!(k + 1 % 50)) { | |
53 | cout<<endl; | |
54 | } | |
55 | } | |
56 | ||
57 | cout<<endl<<"BUFFER END"<<endl; | |
58 | } | |
59 | ||
60 | void TestMessage() { | |
61 | ||
62 | gSystem->Load("libSHUTTLE"); | |
63 | ||
64 | TTimeStamp currentTime; | |
65 | TString requestString("value.int.something"); | |
66 | ||
67 | // Request Message | |
68 | AliDCSMessage requestMsg; | |
69 | requestMsg.CreateRequestMessage(AliDCSMessage::kAlias, | |
70 | currentTime.GetSec(), currentTime.GetSec() + 10, | |
71 | requestString.Data()); | |
72 | Assert(requestMsg.GetType() == AliDCSMessage::kRequest); | |
73 | Assert(requestMsg.GetRequestType() == AliDCSMessage::kAlias); | |
74 | Assert(requestMsg.GetStartTime() == currentTime.GetSec()); | |
75 | Assert(requestMsg.GetEndTime() == currentTime.GetSec() + 10); | |
76 | Assert(requestMsg.GetRequestString() == requestString); | |
77 | requestMsg.StoreToBuffer(); | |
78 | ||
79 | AliDCSMessage newRequestMsg(requestMsg.GetMessage(), | |
80 | requestMsg.GetMessageSize()); | |
81 | newRequestMsg.LoadFromBuffer(); | |
82 | ||
83 | Assert(newRequestMsg.GetType() == AliDCSMessage::kRequest); | |
84 | Assert(newRequestMsg.GetRequestType() == AliDCSMessage::kAlias); | |
85 | Assert(newRequestMsg.GetStartTime() == currentTime.GetSec()); | |
86 | Assert(newRequestMsg.GetEndTime() == currentTime.GetSec() + 10); | |
87 | Assert(newRequestMsg.GetRequestString() == requestString); | |
88 | ||
89 | ||
90 | // Count Message | |
91 | AliDCSMessage countMsg; | |
92 | countMsg.CreateCountMessage(200); | |
93 | ||
94 | Assert(countMsg.GetType() == AliDCSMessage::kCount); | |
95 | Assert(countMsg.GetCount() == 200); | |
96 | countMsg.StoreToBuffer(); | |
97 | ||
98 | AliDCSMessage newCountMsg(countMsg.GetMessage(), | |
99 | countMsg.GetMessageSize()); | |
100 | newCountMsg.LoadFromBuffer(); | |
101 | ||
102 | Assert(newCountMsg.GetType() == AliDCSMessage::kCount); | |
103 | Assert(newCountMsg.GetCount() == 200); | |
104 | ||
105 | // ResultSet Message | |
106 | ||
107 | Int_t maxCount = 3; | |
108 | ||
109 | // Bool | |
110 | AliDCSMessage rsMsg; | |
111 | rsMsg.CreateResultSetMessage(AliSimpleValue::kBool); | |
112 | ||
113 | Assert(rsMsg.GetType() == AliDCSMessage::kResultSet); | |
114 | ||
d477ad88 | 115 | TObjArray values; |
73abe331 | 116 | values.SetOwner(1); |
d477ad88 | 117 | values.AddLast(new AliDCSValue(kFALSE, currentTime.GetSec())); |
118 | values.AddLast(new AliDCSValue(kTRUE, currentTime.GetSec() + 1)); | |
119 | values.AddLast(new AliDCSValue(kFALSE, currentTime.GetSec()+ 200)); | |
73abe331 | 120 | |
121 | rsMsg.AddValue(*(AliDCSValue*) values.At(0)); | |
122 | rsMsg.AddValue(*(AliDCSValue*) values.At(1)); | |
123 | rsMsg.AddValue(*(AliDCSValue*) values.At(2)); | |
124 | rsMsg.StoreToBuffer(); | |
125 | ||
126 | PrintBuffer(rsMsg.GetMessage(), rsMsg.GetMessageSize()); | |
127 | ||
128 | AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize()); | |
129 | nrsMsg.LoadFromBuffer(); | |
130 | ||
131 | Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet); | |
132 | Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kBool); | |
133 | ||
d477ad88 | 134 | TObjArray nvalues; |
73abe331 | 135 | nvalues.SetOwner(1); |
136 | Assert(nrsMsg.GetValues(nvalues) == maxCount); | |
137 | ||
138 | Compare(values, nvalues); | |
139 | ||
140 | // Byte | |
141 | AliDCSMessage rsMsg; | |
142 | rsMsg.CreateResultSetMessage(AliSimpleValue::kByte); | |
143 | ||
144 | Assert(rsMsg.GetType() == AliDCSMessage::kResultSet); | |
145 | ||
d477ad88 | 146 | TObjArray values; |
73abe331 | 147 | values.SetOwner(1); |
d477ad88 | 148 | values.AddLast(new AliDCSValue((Char_t) 25, currentTime.GetSec())); |
149 | values.AddLast(new AliDCSValue((Char_t) 0, currentTime.GetSec() + 1)); | |
150 | values.AddLast(new AliDCSValue((Char_t) 255, currentTime.GetSec()+ 200)); | |
73abe331 | 151 | |
152 | rsMsg.AddValue(*(AliDCSValue*) values.At(0)); | |
153 | rsMsg.AddValue(*(AliDCSValue*) values.At(1)); | |
154 | rsMsg.AddValue(*(AliDCSValue*) values.At(2)); | |
155 | rsMsg.StoreToBuffer(); | |
156 | ||
157 | AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize()); | |
158 | nrsMsg.LoadFromBuffer(); | |
159 | ||
160 | Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet); | |
161 | Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kByte); | |
162 | ||
d477ad88 | 163 | TObjArray nvalues; |
73abe331 | 164 | nvalues.SetOwner(1); |
165 | Assert(nrsMsg.GetValues(nvalues) == maxCount); | |
166 | ||
167 | Compare(values, nvalues); | |
168 | ||
169 | ||
170 | // Int | |
171 | AliDCSMessage rsMsg; | |
172 | rsMsg.CreateResultSetMessage(AliSimpleValue::kInt); | |
173 | ||
174 | Assert(rsMsg.GetType() == AliDCSMessage::kResultSet); | |
175 | ||
d477ad88 | 176 | TObjArray values; |
73abe331 | 177 | values.SetOwner(1); |
d477ad88 | 178 | values.AddLast(new AliDCSValue(100, currentTime.GetSec())); |
179 | values.AddLast(new AliDCSValue(10, currentTime.GetSec() + 1)); | |
180 | values.AddLast(new AliDCSValue(666, currentTime.GetSec()+ 200)); | |
73abe331 | 181 | |
182 | rsMsg.AddValue(*(AliDCSValue*) values.At(0)); | |
183 | rsMsg.AddValue(*(AliDCSValue*) values.At(1)); | |
184 | rsMsg.AddValue(*(AliDCSValue*) values.At(2)); | |
185 | rsMsg.StoreToBuffer(); | |
186 | ||
187 | AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize()); | |
188 | nrsMsg.LoadFromBuffer(); | |
189 | ||
190 | Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet); | |
191 | Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kInt); | |
192 | ||
d477ad88 | 193 | TObjArray nvalues; |
73abe331 | 194 | nvalues.SetOwner(1); |
195 | Assert(nrsMsg.GetValues(nvalues) == maxCount); | |
196 | ||
197 | Compare(values, nvalues); | |
198 | ||
199 | // UInt | |
200 | AliDCSMessage rsMsg; | |
201 | rsMsg.CreateResultSetMessage(AliSimpleValue::kUInt); | |
202 | ||
203 | Assert(rsMsg.GetType() == AliDCSMessage::kResultSet); | |
204 | ||
d477ad88 | 205 | TObjArray values; |
73abe331 | 206 | values.SetOwner(1); |
d477ad88 | 207 | values.AddLast(new AliDCSValue((UInt_t) 1000, currentTime.GetSec())); |
208 | values.AddLast(new AliDCSValue((UInt_t) 104, currentTime.GetSec() + 1)); | |
209 | values.AddLast(new AliDCSValue((UInt_t) 6665, currentTime.GetSec()+ 200)); | |
73abe331 | 210 | |
211 | rsMsg.AddValue(*(AliDCSValue*) values.At(0)); | |
212 | rsMsg.AddValue(*(AliDCSValue*) values.At(1)); | |
213 | rsMsg.AddValue(*(AliDCSValue*) values.At(2)); | |
214 | rsMsg.StoreToBuffer(); | |
215 | ||
216 | AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize()); | |
217 | nrsMsg.LoadFromBuffer(); | |
218 | ||
219 | Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet); | |
220 | Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kUInt); | |
221 | ||
d477ad88 | 222 | TObjArray nvalues; |
73abe331 | 223 | nvalues.SetOwner(1); |
224 | Assert(nrsMsg.GetValues(nvalues) == maxCount); | |
225 | ||
226 | Compare(values, nvalues); | |
227 | ||
228 | // Float | |
229 | AliDCSMessage rsMsg; | |
230 | rsMsg.CreateResultSetMessage(AliSimpleValue::kFloat); | |
231 | ||
232 | Assert(rsMsg.GetType() == AliDCSMessage::kResultSet); | |
233 | ||
d477ad88 | 234 | TObjArray values; |
73abe331 | 235 | values.SetOwner(1); |
d477ad88 | 236 | values.AddLast(new AliDCSValue((Float_t) 1000.55, currentTime.GetSec())); |
237 | values.AddLast(new AliDCSValue((Float_t) 10.4, currentTime.GetSec() + 1)); | |
238 | values.AddLast(new AliDCSValue((Float_t) 6665.1, currentTime.GetSec()+ 200)); | |
73abe331 | 239 | |
240 | rsMsg.AddValue(*(AliDCSValue*) values.At(0)); | |
241 | rsMsg.AddValue(*(AliDCSValue*) values.At(1)); | |
242 | rsMsg.AddValue(*(AliDCSValue*) values.At(2)); | |
243 | rsMsg.StoreToBuffer(); | |
244 | ||
245 | AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize()); | |
246 | nrsMsg.LoadFromBuffer(); | |
247 | ||
248 | Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet); | |
249 | Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kFloat); | |
250 | ||
d477ad88 | 251 | TObjArray nvalues; |
73abe331 | 252 | nvalues.SetOwner(1); |
253 | Assert(nrsMsg.GetValues(nvalues) == maxCount); | |
254 | ||
255 | Compare(values, nvalues); | |
256 | ||
257 | ||
258 | // Error Message | |
259 | TString errorString("This is an error string"); | |
260 | ||
261 | AliDCSMessage errorMsg; | |
262 | errorMsg.CreateErrorMessage(AliDCSMessage::kUnknownAliasDPName, | |
263 | errorString); | |
264 | Assert(errorMsg.GetType() == AliDCSMessage::kError); | |
265 | Assert(errorMsg.GetErrorCode() == AliDCSMessage::kUnknownAliasDPName); | |
266 | Assert(errorMsg.GetErrorString() == errorString); | |
267 | errorMsg.StoreToBuffer(); | |
268 | ||
269 | AliDCSMessage newErrorMsg(errorMsg.GetMessage(), | |
270 | errorMsg.GetMessageSize()); | |
271 | newErrorMsg.LoadFromBuffer(); | |
272 | ||
273 | Assert(newErrorMsg.GetType() == AliDCSMessage::kError); | |
274 | Assert(newErrorMsg.GetErrorCode() | |
275 | == AliDCSMessage::kUnknownAliasDPName); | |
276 | Assert(newErrorMsg.GetErrorString() == errorString); | |
277 | ||
278 | // MultiRequest Message | |
d477ad88 | 279 | TObjArray requests; |
73abe331 | 280 | requests.SetOwner(1); |
d477ad88 | 281 | requests.AddLast(new TObjString("alias1.test")); |
282 | requests.AddLast(new TObjString("alias2.test")); | |
283 | requests.AddLast(new TObjString("alias3.test")); | |
73abe331 | 284 | |
285 | AliDCSMessage multiMsg; | |
286 | multiMsg.CreateMultiRequestMessage(AliDCSMessage::kAlias, | |
287 | currentTime.GetSec(), | |
288 | currentTime.GetSec() + 10); | |
289 | multiMsg.AddRequestString("alias1.test"); | |
290 | multiMsg.AddRequestString("alias2.test"); | |
291 | multiMsg.AddRequestString("alias3.test"); | |
292 | ||
293 | Assert(multiMsg.GetType() == AliDCSMessage::kMultiRequest); | |
294 | Assert(multiMsg.GetRequestType() == AliDCSMessage::kAlias); | |
295 | Assert(multiMsg.GetStartTime() == currentTime.GetSec()); | |
296 | Assert(multiMsg.GetEndTime() == currentTime.GetSec() + 10); | |
297 | multiMsg.StoreToBuffer(); | |
298 | ||
299 | PrintBuffer(multiMsg.GetMessage(), multiMsg.GetMessageSize()); | |
300 | ||
301 | AliDCSMessage nmultiMsg(multiMsg.GetMessage(), | |
302 | multiMsg.GetMessageSize()); | |
303 | nmultiMsg.LoadFromBuffer(); | |
304 | ||
305 | Assert(nmultiMsg.GetType() == AliDCSMessage::kMultiRequest); | |
306 | Assert(nmultiMsg.GetRequestType() == AliDCSMessage::kAlias); | |
307 | Assert(nmultiMsg.GetStartTime() == currentTime.GetSec()); | |
308 | Assert(nmultiMsg.GetEndTime() == currentTime.GetSec() + 10); | |
309 | ||
310 | PrintBuffer(nmultiMsg.GetMessage(), nmultiMsg.GetMessageSize()); | |
311 | ||
d477ad88 | 312 | TObjArray nrequests; |
73abe331 | 313 | nrequests.SetOwner(1); |
314 | nmultiMsg.GetRequestStrings(nrequests); | |
315 | ||
316 | CompareStr(requests, nrequests); | |
317 | } | |
318 |