1 void Compare(TList& a, TList& b) {
3 Assert(a.GetSize() == b.GetSize());
11 while ((valA = (AliDCSValue*) iterA.Next())) {
12 valB = (AliDCSValue*) iterB.Next();
14 cout<<valA->ToString()<<endl;
15 cout<<valB->ToString()<<endl;
17 Assert(valA->GetSimpleValue() == valB->GetSimpleValue());
18 Assert(valA->GetTimeStamp() == valB->GetTimeStamp());
23 void CompareStr(TList& a, TList& b) {
25 cout<<"A size: "<<a.GetSize()<<endl;
26 cout<<"B size: "<<b.GetSize()<<endl;
28 Assert(a.GetSize() == b.GetSize());
36 while ((valA = (TObjString*) iterA.Next())) {
37 valB = (TObjString*) iterB.Next();
39 cout<<valA->String()<<endl;
40 cout<<valB->String()<<endl;
42 Assert(valA->String() == valB->String());
46 void PrintBuffer(const char* buffer, UInt_t size) {
48 cout<<"BUFFER START"<<endl;
50 for (UInt_t k = 0; k < size; k ++) {
51 cout<<" "<<(UInt_t) (UChar_t) buffer[k]<<" ";
57 cout<<endl<<"BUFFER END"<<endl;
62 gSystem->Load("libSHUTTLE");
64 TTimeStamp currentTime;
65 TString requestString("value.int.something");
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();
79 AliDCSMessage newRequestMsg(requestMsg.GetMessage(),
80 requestMsg.GetMessageSize());
81 newRequestMsg.LoadFromBuffer();
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);
91 AliDCSMessage countMsg;
92 countMsg.CreateCountMessage(200);
94 Assert(countMsg.GetType() == AliDCSMessage::kCount);
95 Assert(countMsg.GetCount() == 200);
96 countMsg.StoreToBuffer();
98 AliDCSMessage newCountMsg(countMsg.GetMessage(),
99 countMsg.GetMessageSize());
100 newCountMsg.LoadFromBuffer();
102 Assert(newCountMsg.GetType() == AliDCSMessage::kCount);
103 Assert(newCountMsg.GetCount() == 200);
111 rsMsg.CreateResultSetMessage(AliSimpleValue::kBool);
113 Assert(rsMsg.GetType() == AliDCSMessage::kResultSet);
117 values.Add(new AliDCSValue(kFALSE, currentTime.GetSec()));
118 values.Add(new AliDCSValue(kTRUE, currentTime.GetSec() + 1));
119 values.Add(new AliDCSValue(kFALSE, currentTime.GetSec()+ 200));
121 rsMsg.AddValue(*(AliDCSValue*) values.At(0));
122 rsMsg.AddValue(*(AliDCSValue*) values.At(1));
123 rsMsg.AddValue(*(AliDCSValue*) values.At(2));
124 rsMsg.StoreToBuffer();
126 PrintBuffer(rsMsg.GetMessage(), rsMsg.GetMessageSize());
128 AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize());
129 nrsMsg.LoadFromBuffer();
131 Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet);
132 Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kBool);
136 Assert(nrsMsg.GetValues(nvalues) == maxCount);
138 Compare(values, nvalues);
142 rsMsg.CreateResultSetMessage(AliSimpleValue::kByte);
144 Assert(rsMsg.GetType() == AliDCSMessage::kResultSet);
148 values.Add(new AliDCSValue((Char_t) 25, currentTime.GetSec()));
149 values.Add(new AliDCSValue((Char_t) 0, currentTime.GetSec() + 1));
150 values.Add(new AliDCSValue((Char_t) 255, currentTime.GetSec()+ 200));
152 rsMsg.AddValue(*(AliDCSValue*) values.At(0));
153 rsMsg.AddValue(*(AliDCSValue*) values.At(1));
154 rsMsg.AddValue(*(AliDCSValue*) values.At(2));
155 rsMsg.StoreToBuffer();
157 AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize());
158 nrsMsg.LoadFromBuffer();
160 Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet);
161 Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kByte);
165 Assert(nrsMsg.GetValues(nvalues) == maxCount);
167 Compare(values, nvalues);
172 rsMsg.CreateResultSetMessage(AliSimpleValue::kInt);
174 Assert(rsMsg.GetType() == AliDCSMessage::kResultSet);
178 values.Add(new AliDCSValue(100, currentTime.GetSec()));
179 values.Add(new AliDCSValue(10, currentTime.GetSec() + 1));
180 values.Add(new AliDCSValue(666, currentTime.GetSec()+ 200));
182 rsMsg.AddValue(*(AliDCSValue*) values.At(0));
183 rsMsg.AddValue(*(AliDCSValue*) values.At(1));
184 rsMsg.AddValue(*(AliDCSValue*) values.At(2));
185 rsMsg.StoreToBuffer();
187 AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize());
188 nrsMsg.LoadFromBuffer();
190 Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet);
191 Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kInt);
195 Assert(nrsMsg.GetValues(nvalues) == maxCount);
197 Compare(values, nvalues);
201 rsMsg.CreateResultSetMessage(AliSimpleValue::kUInt);
203 Assert(rsMsg.GetType() == AliDCSMessage::kResultSet);
207 values.Add(new AliDCSValue((UInt_t) 1000, currentTime.GetSec()));
208 values.Add(new AliDCSValue((UInt_t) 104, currentTime.GetSec() + 1));
209 values.Add(new AliDCSValue((UInt_t) 6665, currentTime.GetSec()+ 200));
211 rsMsg.AddValue(*(AliDCSValue*) values.At(0));
212 rsMsg.AddValue(*(AliDCSValue*) values.At(1));
213 rsMsg.AddValue(*(AliDCSValue*) values.At(2));
214 rsMsg.StoreToBuffer();
216 AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize());
217 nrsMsg.LoadFromBuffer();
219 Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet);
220 Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kUInt);
224 Assert(nrsMsg.GetValues(nvalues) == maxCount);
226 Compare(values, nvalues);
230 rsMsg.CreateResultSetMessage(AliSimpleValue::kFloat);
232 Assert(rsMsg.GetType() == AliDCSMessage::kResultSet);
236 values.Add(new AliDCSValue((Float_t) 1000.55, currentTime.GetSec()));
237 values.Add(new AliDCSValue((Float_t) 10.4, currentTime.GetSec() + 1));
238 values.Add(new AliDCSValue((Float_t) 6665.1, currentTime.GetSec()+ 200));
240 rsMsg.AddValue(*(AliDCSValue*) values.At(0));
241 rsMsg.AddValue(*(AliDCSValue*) values.At(1));
242 rsMsg.AddValue(*(AliDCSValue*) values.At(2));
243 rsMsg.StoreToBuffer();
245 AliDCSMessage nrsMsg(rsMsg.GetMessage(), rsMsg.GetMessageSize());
246 nrsMsg.LoadFromBuffer();
248 Assert(nrsMsg.GetType() == AliDCSMessage::kResultSet);
249 Assert(nrsMsg.GetSimpleValueType() == AliSimpleValue::kFloat);
253 Assert(nrsMsg.GetValues(nvalues) == maxCount);
255 Compare(values, nvalues);
259 TString errorString("This is an error string");
261 AliDCSMessage errorMsg;
262 errorMsg.CreateErrorMessage(AliDCSMessage::kUnknownAliasDPName,
264 Assert(errorMsg.GetType() == AliDCSMessage::kError);
265 Assert(errorMsg.GetErrorCode() == AliDCSMessage::kUnknownAliasDPName);
266 Assert(errorMsg.GetErrorString() == errorString);
267 errorMsg.StoreToBuffer();
269 AliDCSMessage newErrorMsg(errorMsg.GetMessage(),
270 errorMsg.GetMessageSize());
271 newErrorMsg.LoadFromBuffer();
273 Assert(newErrorMsg.GetType() == AliDCSMessage::kError);
274 Assert(newErrorMsg.GetErrorCode()
275 == AliDCSMessage::kUnknownAliasDPName);
276 Assert(newErrorMsg.GetErrorString() == errorString);
278 // MultiRequest Message
280 requests.SetOwner(1);
281 requests.Add(new TObjString("alias1.test"));
282 requests.Add(new TObjString("alias2.test"));
283 requests.Add(new TObjString("alias3.test"));
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");
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();
299 PrintBuffer(multiMsg.GetMessage(), multiMsg.GetMessageSize());
301 AliDCSMessage nmultiMsg(multiMsg.GetMessage(),
302 multiMsg.GetMessageSize());
303 nmultiMsg.LoadFromBuffer();
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);
310 PrintBuffer(nmultiMsg.GetMessage(), nmultiMsg.GetMessageSize());
313 nrequests.SetOwner(1);
314 nmultiMsg.GetRequestStrings(nrequests);
316 CompareStr(requests, nrequests);