path correction
[deliverable/titan.core.git] / regression_test / octetstrOper / ToctetstrOper.ttcn
CommitLineData
970ed795 1/******************************************************************************
d44e3c4f 2 * Copyright (c) 2000-2016 Ericsson Telecom AB
970ed795
EL
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
d44e3c4f 7 *
8 * Contributors:
9 * Balasko, Jeno
10 * Kovacs, Ferenc
11 * Raduly, Csaba
12 * Szabados, Kristof
13 * Szabo, Janos Zoltan – initial implementation
14 *
970ed795
EL
15 ******************************************************************************/
16module ToctetstrOper
17{type component octetstrOper_comptype { };
18const octetstring ToctetstrOper_const1:='AA11'O;
19
20testcase octetstrAssign() runs on octetstrOper_comptype
21{ var octetstring x1:='0BF2'O;
22 var octetstring x2,x3,x4;
23 x4:='AA'O;
24 x2:='AB54'O;
25 x3:=''O;
26 x4:='AABB'O;
27 if (x1=='0BF2'O) {setverdict(pass);} //at declaration
28 else {setverdict(fail);}
29 if (x2=='AB54'O) {setverdict(pass);} //later
30 else {setverdict(fail);}
31 if (x3==''O) {setverdict(pass);} //empty string
32 else {setverdict(fail);}
33 if (x4=='AABB'O) {setverdict(pass);} //with different size
34 else {setverdict(fail);}
35}
36
37testcase octetstrAssignElem() runs on octetstrOper_comptype
38{ var octetstring x1,x2,x3,x4,x5,x6,x7;
39 x1:='AAAAAA'O;
40 x4:='777777'O;
41 x2:='BBBBBB'O;
42 x5:='AABBCC'O;
43 x6:='AABBCC'O;
44 x3:='66'O;
45 x3:=x5[1];
46 x1[1]:='0C'O;
47 x4[1]:=x2[2];
48 x7:='66'O;
49 x5[0]:=x7;
50 x6[3]:='DD'O;
51 if (x6[0]=='AA'O) {setverdict(pass);} //accessing of an element
52 else {setverdict(fail);}
53 if (x3=='BB'O) {setverdict(pass);} //change string to element
54 else {setverdict(fail);}
55 if (x1=='AA0CAA'O) {setverdict(pass);} //change element to value
56 else {setverdict(fail);}
57 if (x4=='77BB77'O) {setverdict(pass);} //change element to element
58 else {setverdict(fail);}
59 if (x5=='66BBCC'O) {setverdict(pass);} //change element to string
60 else {setverdict(fail);}
61 if (x6=='AABBCCDD'O) {setverdict(pass);} //adding element
62 else {setverdict(fail);}
63}
64
65testcase octetstrLengthof() runs on octetstrOper_comptype
66{ var octetstring x1:='AABB'O;
67 var octetstring x2,x3,x4,x5;
68 x2:='AABB'O;
69 x4:='AA'O;
70 x5:='AABB'O;
71 x3:=''O;
72 x4:='AABB'O;
73 x5[2]:='CC'O;
74 if (lengthof(x1)==2) {setverdict(pass);} //at declaration
75 else {setverdict(fail);}
76 if (lengthof(x2)==2) {setverdict(pass);} //later
77 else {setverdict(fail);}
78 if (lengthof(x3)==0) {setverdict(pass);} //empty string
79 else {setverdict(fail);}
80 if (lengthof(x4)==2) {setverdict(pass);} //change of size
81 else {setverdict(fail);}
82 if (lengthof(x5)==3) {setverdict(pass);} //add element
83 else {setverdict(fail);}
84}
85
86testcase octetstrConst() runs on octetstrOper_comptype {
87const octetstring ToctetstrOper_const3:='DD22'O;
88if (ToctetstrOper_const1=='AA11'O) {setverdict(pass);} //definition part
89 else {setverdict(fail);}
90if (ToctetstrOper_const3=='DD22'O) {setverdict(pass);} //testcase
91 else {setverdict(fail);}
92}
93
94testcase octetstrComp_str_str() runs on octetstrOper_comptype
95{var octetstring x1,x2,x3;
96 x1:='A1B2'O;
97 x2:='A1B2'O;
98 x3:='A1B2C3'O;
99 if (x1==x2) {setverdict(pass);} //equality, equals
100 else {setverdict(fail);}
101 if (not(x3==x2)) {setverdict(pass);} //equality, not equals
102 else {setverdict(fail);}
103 if (x1!=x3) {setverdict(pass);} //non-equality, not equals
104 else {setverdict(fail);}
105 if (not(x1!=x2)) {setverdict(pass);} //non-equality, equals
106 else {setverdict(fail);}
107}
108
109testcase octetstrComp_el_str() runs on octetstrOper_comptype
110{var octetstring x1,x2,x3;
111 x1:='A1B2'O;
112 x2:='A1'O;
113 x3:='B2'O;
114 if (x1[1]==x3) {setverdict(pass);} //equality, equals
115 else {setverdict(fail);}
116 if (not(x1[0]==x3)) {setverdict(pass);} //equality, not equals
117 else {setverdict(fail);}
118 if (x1[0]!=x3) {setverdict(pass);} //non-equality, not equals
119 else {setverdict(fail);}
120 if (not(x1[1]!=x3)) {setverdict(pass);} //non-equality, equals
121 else {setverdict(fail);}
122}
123
124
125testcase octetstrComp_str_el() runs on octetstrOper_comptype
126{var octetstring x1,x2;
127 x1:='A1B2'O;
128 x2:='A1'O;
129 if (x2==x1[0]) {setverdict(pass);} //equality, equals
130 else {setverdict(fail);}
131 if (not(x2==x1[1])) {setverdict(pass);} //equality, not equals
132 else {setverdict(fail);}
133 if (x2!=x1[1]) {setverdict(pass);} //non-equality, not equals
134 else {setverdict(fail);}
135 if (not(x2!=x1[0])) {setverdict(pass);} //non-equality, equals
136 else {setverdict(fail);}
137}
138
139testcase octetstrComp_el_el() runs on octetstrOper_comptype
140{var octetstring x1,x2;
141 x1:='A1B2'O;
142 x2:='A1B2'O;
143 if (x1[1]==x2[1]) {setverdict(pass);} //equality, equals
144 else {setverdict(fail);}
145 if (not(x1[0]==x2[1])) {setverdict(pass);} //equality, not equals
146 else {setverdict(fail);}
147 if (x1[1]!=x2[0]) {setverdict(pass);} //non-equality, not equals
148 else {setverdict(fail);}
149 if (not(x1[1]!=x2[1])) {setverdict(pass);} //non-equality, equals
150 else {setverdict(fail);}
151}
152
153testcase octetstrConcat() runs on octetstrOper_comptype
154{var octetstring x1,x2,x3,x4,x5,x6;
155 x1:='A1B2'O;
156 x2:='C3D4'O;
157 x3:= x1 & x2;
158 x4:=x1&x2[1];
159 x5:=x1[1]&x2;
160 x6:=x1[0]&x2[1];
161 if ((x3=='A1B2C3D4'O)and(lengthof(x3)==4)) {setverdict(pass);} //string&string
162 else {setverdict(fail);}
163 if ((x4=='A1B2D4'O)and(lengthof(x4)==3)) {setverdict(pass);} //string&element
164 else {setverdict(fail);}
165 if ((x5=='B2C3D4'O)and(lengthof(x5)==3)) {setverdict(pass);} //element&string
166 else {setverdict(fail);}
167 if ((x6=='A1D4'O)and(lengthof(x6)==2)) {setverdict(pass);} //element&element
168 else {setverdict(fail);}
169}
170
171testcase octetstrNot_str() runs on octetstrOper_comptype
172{ var octetstring x1,x2;
173 x1:='0123456789ABCDEF'O;
174 x2:=not4b(x1);
175 if (x2=='FEDCBA9876543210'O) {setverdict(pass);}
176 else {setverdict(fail);}
177}
178
179testcase octetstrNot_el() runs on octetstrOper_comptype
180{ var octetstring x1,x2,x3;
181 x1:='A1B2C3'O;
182 x2:=not4b(x1[1]);
183 x3:=not4b(x1[2]);
184 if ((x2=='4D'O)and(x3=='3C'O)) {setverdict(pass);}
185 else {setverdict(fail);}
186}
187
188
189testcase octetstrAnd_str_str() runs on octetstrOper_comptype
190{ var octetstring x1,x2,x3;
191 x1:='8DE9A3'O;
192 x2:='7352B6'O;
193 x3:=x1 and4b x2;
194 if (x3=='0140A2'O) {setverdict(pass);}
195 else {setverdict(fail);}
196}
197
198testcase octetstrAnd_el_str() runs on octetstrOper_comptype
199{ var octetstring x1,x2,x3,x4;
200 x1:='A3A3'O;
201 x2:='B6'O;
202 x3:=x1[0] and4b 'B6'O;
203 x4:=x1[0] and4b x2;
204 if (x3=='A2'O) {setverdict(pass);} //element_value
205 else {setverdict(fail);}
206 if (x4=='A2'O) {setverdict(pass);} //element_string
207 else {setverdict(fail);}
208}
209
210
211testcase octetstrAnd_str_el() runs on octetstrOper_comptype
212{ var octetstring x1,x2,x3,x4;
213 x1:='A3A3'O;
214 x2:='B6'O;
215 x3:='B6'O and4b x1[0];
216 x4:=x2 and4b x1[1];
217 if (x3=='A2'O) {setverdict(pass);} //value_element
218 else {setverdict(fail);}
219 if (x4=='A2'O) {setverdict(pass);} //string_element
220 else {setverdict(fail);}
221}
222
223testcase octetstrAnd_el_el() runs on octetstrOper_comptype
224{ var octetstring x1,x2,x3;
225 x1:='A3A3'O;
226 x2:='B6B6'O;
227 x3:=x2[0] and4b x1[0];
228 if (x3=='A2'O) {setverdict(pass);}
229 else {setverdict(fail);}
230}
231
232testcase octetstrOr_str_str() runs on octetstrOper_comptype
233{ var octetstring x1,x2,x3;
234 x1:='8DE9A3'O;
235 x2:='7352B6'O;
236 x3:=x1 or4b x2;
237 if (x3=='FFFBB7'O) {setverdict(pass);}
238 else {setverdict(fail);}
239}
240
241testcase octetstrOr_el_str() runs on octetstrOper_comptype
242{ var octetstring x1,x2,x3,x4;
243 x1:='A3A3'O;
244 x2:='B6'O;
245 x3:=x1[0] or4b 'B6'O;
246 x4:=x1[1] or4b x2;
247 if (x3=='B7'O) {setverdict(pass);} //element_value
248 else {setverdict(fail);}
249 if (x4=='B7'O) {setverdict(pass);} //element_string
250 else {setverdict(fail);}
251}
252
253testcase octetstrOr_str_el() runs on octetstrOper_comptype
254{ var octetstring x1,x2,x3,x4;
255 x1:='A3A3'O;
256 x2:='B6'O;
257 x3:='B6'O or4b x1[0];
258 x4:=x2 or4b x1[1];
259 if (x3=='B7'O) {setverdict(pass);} //value_element
260 else {setverdict(fail);}
261 if (x4=='B7'O) {setverdict(pass);} //string_element
262 else {setverdict(fail);}
263}
264
265testcase octetstrOr_el_el() runs on octetstrOper_comptype
266{ var octetstring x1,x2,x3;
267 x1:='3333'O;
268 x2:='B6B6'O;
269 x3:=x2[0] or4b x1[1];
270 if ((x3=='B7'O)) {setverdict(pass);}
271 else {setverdict(fail);}
272}
273
274
275testcase octetstrXor_str_str() runs on octetstrOper_comptype
276{ var octetstring x1,x2,x3;
277 x1:='ACDE9833'O;
278 x2:='B8352765'O;
279 x3:=x1 xor4b x2;
970ed795
EL
280 if (x3=='14EBBF56'O) {setverdict(pass);}
281 else {setverdict(fail);}
282}
283
284testcase octetstrXor_el_str() runs on octetstrOper_comptype
285{ var octetstring x1,x2,x3,x4;
286 x1:='A3A3'O;
287 x2:='B6'O;
288 x3:=x1[0] xor4b 'B6'O;
289 x4:=x1[1] xor4b x2;
290 if (x3=='15'O) {setverdict(pass);} //element_value
291 else {setverdict(fail);}
292 if (x4=='15'O) {setverdict(pass);} //element_string
293 else {setverdict(fail);}
294
295}
296
297testcase octetstrXor_str_el() runs on octetstrOper_comptype
298{ var octetstring x1,x2,x3,x4;
299 x1:='C3C3'O;
300 x2:='86'O;
301 x3:='86'O xor4b x1[0];
302 x4:=x2 xor4b x1[1];
303 if (x3=='45'O) {setverdict(pass);} //value_element
304 else {setverdict(fail);}
305 if (x4=='45'O) {setverdict(pass);} //string_element
306 else {setverdict(fail);}
307}
308
309testcase octetstrXor_el_el() runs on octetstrOper_comptype
310{ var octetstring x1,x2,x3;
311 x1:='D3D3'O;
312 x2:='3636'O;
313 x3:=x2[0] xor4b x1[1];
314 if ((x3=='E5'O)) {setverdict(pass);}
315 else {setverdict(fail);}
316}
317
318testcase octetstrShiftRight1() runs on octetstrOper_comptype
319{ var octetstring x1,x2;
320 x1:='ABCDEF'O;
321 x2:=x1 >> 1;
322 if (x2=='00ABCD'O) {setverdict(pass);}
323 else {setverdict(fail);}
324}
325
326testcase octetstrShiftRight2() runs on octetstrOper_comptype
327{ var octetstring x1,x2;
328 x1:='ABCDEF'O;
329 x2:=x1 >> 2;
330 if (x2=='0000AB'O) {setverdict(pass);}
331 else {setverdict(fail);}
332}
333
334testcase octetstrShiftRightSum() runs on octetstrOper_comptype
335{ var octetstring x1,x2;
336 x1:='ABCDEF'O;
337 x2:=x1 >> (1+1);
338 if (x2=='0000AB'O) {setverdict(pass);}
339 else {setverdict(fail);}
340}
341
342testcase octetstrShiftRightEmpty() runs on octetstrOper_comptype
343{ var octetstring x1,x2;
344 x1:=''O;
345 x2:=x1 >> (1);
346 if (x2==''O) {setverdict(pass);}
347 else {setverdict(fail);}
348}
349
350
351testcase octetstrShiftLeft1() runs on octetstrOper_comptype
352{ var octetstring x1,x2;
353 x1:='ABCDEF'O;
354 x2:=x1 << 1;
355 if (x2=='CDEF00'O) {setverdict(pass);}
356 else {setverdict(fail);}
357}
358
359testcase octetstrShiftLeft2() runs on octetstrOper_comptype
360{ var octetstring x1,x2;
361 x1:='ABCDEF'O;
362 x2:=x1 << 2;
363 if (x2=='EF0000'O) {setverdict(pass);}
364 else {setverdict(fail);}
365}
366
367testcase octetstrShiftLeftSum() runs on octetstrOper_comptype
368{ var octetstring x1,x2;
369 x1:='ABCDEF'O;
370 x2:=x1 << (1+1);
371 if (x2=='EF0000'O) {setverdict(pass);}
372 else {setverdict(fail);}
373}
374
375testcase octetstrShiftLeftEmpty() runs on octetstrOper_comptype
376{ var octetstring x1,x2;
377 x1:=''O;
378 x2:=x1 << (1);
379 if (x2==''O) {setverdict(pass);}
380 else {setverdict(fail);}
381}
382
383testcase octetstrRotateRight1() runs on octetstrOper_comptype
384{ var octetstring x1,x2;
385 x1:='ABCDEF'O;
386 x2:=x1 @> 1;
387 if (x2=='EFABCD'O) {setverdict(pass);}
388 else {setverdict(fail);}
389}
390
391testcase octetstrRotateRight2() runs on octetstrOper_comptype
392{ var octetstring x1,x2;
393 x1:='ABCDEF'O;
394 x2:=x1 @> 2;
395 if (x2=='CDEFAB'O) {setverdict(pass);}
396 else {setverdict(fail);}
397}
398
399testcase octetstrRotateRightSum() runs on octetstrOper_comptype
400{ var octetstring x1,x2;
401 x1:='ABCDEF'O;
402 x2:=x1 @> (1+1);
403 if (x2=='CDEFAB'O) {setverdict(pass);}
404 else {setverdict(fail);}
405}
406
407testcase octetstrRotateRightEmpty() runs on octetstrOper_comptype
408{ var octetstring x1,x2;
409 x1:=''O;
410 x2:=x1 @> (1);
411 if (x2==''O) {setverdict(pass);}
412 else {setverdict(fail);}
413}
414
415
416testcase octetstrRotateLeft1() runs on octetstrOper_comptype
417{ var octetstring x1,x2;
418 x1:='ABCDEF'O;
419 x2:=x1 <@ 1;
420 if (x2=='CDEFAB'O) {setverdict(pass);}
421 else {setverdict(fail);}
422}
423
424testcase octetstrRotateLeft2() runs on octetstrOper_comptype
425{ var octetstring x1,x2;
426 x1:='ABCDEF'O;
427 x2:=x1 <@ 2;
428 if (x2=='EFABCD'O) {setverdict(pass);}
429 else {setverdict(fail);}
430}
431
432testcase octetstrRotateLeftSum() runs on octetstrOper_comptype
433{ var octetstring x1,x2;
434 x1:='ABCDEF'O;
435 x2:=x1 <@ (1+1);
436 if (x2=='EFABCD'O) {setverdict(pass);}
437 else {setverdict(fail);}
438}
439
440testcase octetstrRotateLeftEmpty() runs on octetstrOper_comptype
441{ var octetstring x1,x2;
442 x1:=''O;
443 x2:=x1 <@ (1);
444 if (x2==''O) {setverdict(pass);}
445 else {setverdict(fail);}
446}
447
448const integer c_myval1 := 16
449type octetstring myostr1
450type octetstring myostr2 length(1)
451type octetstring myostr3 length(0..1)
452type octetstring myostr4 ('00'O, '01'O, '10'O, '11'O) length(1)
453// Extending restrictions shouldn't be allowed.
454type myostr4 myostr5 (int2oct(c_myval1, 1)) length(1)
455type octetstring myostr6 length(0..infinity)
456type octetstring myostr7 (''O, '00'O, '01'O)
457type octetstring myostr8 (myostr3, myostr4)
458
459const myostr8 c_myostr1 := '00'O
460
461template myostr8 t_myostr1 := '00'O
462template myostr6 t_myostr2 := '0011'O length(2)
463template myostr4 t_myostr3 := t_myostr1 length(1)
464
465function f_ostr1() return myostr6 {
466 var myostr3 v_myostr1 := '00'O
467 return v_myostr1 & '11'O
468}
469
470testcase octetstrSubtypes() runs on octetstrOper_comptype {
471 var template myostr2 vt_myostr1 := '00'O // Length only.
472 var template myostr3 vt_myostr2 := ''O // Length with range.
473 var template myostr4 vt_myostr3 := vt_myostr1 // Value list with length.
474 var template myostr7 vt_myostr4 := vt_myostr2 // Value list only.
475 var myostr2 v_myostr1 := '00'O
476 var myostr3 v_myostr2 := ''O
477 var myostr4 v_myostr3 := v_myostr1
478 var myostr7 v_myostr4 := v_myostr2
479
480 if (valueof(vt_myostr1) == v_myostr1 and v_myostr2 == valueof(vt_myostr2)) { setverdict(pass) }
481 else { setverdict(fail) }
482 if (valueof(vt_myostr3) == v_myostr3 and v_myostr4 == valueof(vt_myostr4)) { setverdict(pass) }
483 else { setverdict(fail) }
484 if (f_ostr1() == '0011'O and '00'O & '11'O == f_ostr1()) { setverdict(pass) }
485 else { setverdict(fail) }
486}
487
488testcase octetstrIsvalue() runs on octetstrOper_comptype{
489 var octetstring ostr0;
490 var octetstring ostr1 := '1234'O;
491 var template octetstring tostr;
492
493 if ( isvalue(ostr0) ) { setverdict(fail); } else { setverdict(pass); };
494 if ( isvalue(ostr1) ) { setverdict(pass); } else { setverdict(fail); };
495 if ( isvalue(tostr) ) { setverdict(fail); } else { setverdict(pass); };
496}
497
498testcase octetstrIsbound() runs on octetstrOper_comptype{
499 var octetstring ostr0;
500 var octetstring ostr1 := '1234'O;
501 var template octetstring tostr;
502
503 if ( isbound(ostr0) ) { setverdict(fail); } else { setverdict(pass); };
504 if ( isbound(ostr0[0]) ) { setverdict(fail); } else { setverdict(pass); };
505 if ( isbound(ostr1) ) { setverdict(pass); } else { setverdict(fail); };
506 if ( isbound(tostr) ) { setverdict(fail); } else { setverdict(pass); };
507}
508
509testcase tc_simple_octetstring_unbound() runs on octetstrOper_comptype {
510 var octetstring vl_o1;
511 if(ispresent(vl_o1)){setverdict(fail)} else {setverdict(pass)} //fail
512 var octetstring vl_o2:='ABBA'O;
513 if(ispresent(vl_o2)) {setverdict(pass)} else {setverdict(fail)} //not logged
514 var octetstring vl_o3;
515 if(isbound(vl_o3)){setverdict(fail)} else {setverdict(pass)}
516 vl_o3:='ABBA'O;
517 if(isbound(vl_o3)) {setverdict(pass)} else {setverdict(fail)}
518}
519
520control {
521 const octetstring cl_1:='AA11'O;
522 var octetstring vl_1;
523
524 execute(octetstrAssign());
525 execute(octetstrAssignElem());
526 execute(octetstrLengthof());
527 execute(octetstrConst());
528 execute(octetstrComp_str_str());
529 execute(octetstrComp_el_str());
530 execute(octetstrComp_str_el());
531 execute(octetstrComp_el_el());
532 execute(octetstrConcat());
533 execute(octetstrNot_str());
534 execute(octetstrNot_el());
535 execute(octetstrAnd_str_str());
536 execute(octetstrAnd_el_str());
537 execute(octetstrAnd_str_el());
538 execute(octetstrAnd_el_el());
539 execute(octetstrOr_str_str());
540 execute(octetstrOr_el_str());
541 execute(octetstrOr_str_el());
542 execute(octetstrOr_el_el());
543 execute(octetstrXor_str_str());
544 execute(octetstrXor_el_str());
545 execute(octetstrXor_str_el());
546 execute(octetstrXor_el_el());
547 execute(octetstrShiftRight1());
548 execute(octetstrShiftRight2());
549 execute(octetstrShiftRightSum());
550 execute(octetstrShiftRightEmpty());
551 execute(octetstrShiftLeft1());
552 execute(octetstrShiftLeft2());
553 execute(octetstrShiftLeftSum());
554 execute(octetstrShiftLeftEmpty());
555 execute(octetstrRotateRight1());
556 execute(octetstrRotateRight2());
557 execute(octetstrRotateRightSum());
558 execute(octetstrRotateRightEmpty());
559 execute(octetstrRotateLeft1());
560 execute(octetstrRotateLeft2());
561 execute(octetstrRotateLeftSum());
562 execute(octetstrRotateLeftEmpty());
563 execute(octetstrSubtypes());
564 execute(octetstrIsvalue());
565 execute(octetstrIsbound());
566 execute(tc_simple_octetstring_unbound());
567}
568}
This page took 0.085929 seconds and 5 git commands to generate.