]> git.uio.no Git - u/mrichter/AliRoot.git/blame - SHUTTLE/test/TestMessage.C
update (alberto):
[u/mrichter/AliRoot.git] / SHUTTLE / test / TestMessage.C
CommitLineData
d477ad88 1void 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 23void 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
46void 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
60void 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