Sync with 5.1.0
[deliverable/titan.core.git] / regression_test / hexstrOper / ThexstrOper.ttcn
CommitLineData
970ed795
EL
1/******************************************************************************
2 * Copyright (c) 2000-2014 Ericsson Telecom AB
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
7 ******************************************************************************/
8module ThexstrOper
9{
10type component hexstrOper_comptype { }
11
12type hexstring myhstr0
13type hexstring myhstr1 length(1)
14type hexstring myhstr2 length(0..1)
15type hexstring myhstr3 ('0'H, '1'H, '00'H, '01'H, '10'H, '11'H) length(1)
16type hexstring myhstr4 ('0'H, '1'H)
17type hexstring myhstr5 (int2hex(0, 1) & ''H, int2hex(1, 1))
18type myhstr5 myhstr6
19type myhstr6 myhstr7 (c_myhstr1, int2hex(hex2int(c_myhstr1), 1))
20type myhstr6 myhstr8 (int2hex(hex2int('0'H), 1))
21type hexstring myhstr9 (myhstr2, myhstr3)
22type hexstring myhstr10 length(0..infinity) // Full set.
23
24const hexstring c_myhstr1 := '0'H
25const myhstr9 c_myhstr2 := c_myhstr1
26
27template hexstring t_myhstr1 := '0'H
28template myhstr9 t_myhstr2 := t_myhstr1
29template myhstr3 t_myhstr3 := '0'H length(1)
30// TITAN doesn't allow patterns to be other than `charstring' or `universal
31// charstring' types. It's denied by the grammar.
32
33function f_hstr1() return myhstr6 {
34 return substr(replace(int2hex(0, 1) & int2hex(1, 1), 0, 1, '1'H), 0, 1)
35}
36
37testcase hexstrSubtypes() runs on hexstrOper_comptype {
38 var template myhstr1 vt_myhstr1 := '0'H // Simple length.
39 var template myhstr2 vt_myhstr2 := ''H // Length with range.
40 var template myhstr3 vt_myhstr3 := vt_myhstr1 // Values and length.
41 var template myhstr4 vt_myhstr4 := vt_myhstr1 // Values only.
42 var myhstr1 v_myhstr1 := '0'H
43 var myhstr2 v_myhstr2 := ''H
44 var myhstr3 v_myhstr3 := v_myhstr1
45 var myhstr4 v_myhstr4 := v_myhstr1
46
47 if (valueof(vt_myhstr1) == v_myhstr1 and v_myhstr2 == valueof(vt_myhstr2)) { setverdict(pass) }
48 else { setverdict(fail) }
49 if (valueof(vt_myhstr3) == v_myhstr3 and v_myhstr4 == valueof(vt_myhstr4)) { setverdict(pass) }
50 else { setverdict(fail) }
51 if (f_hstr1() == '1'H) { setverdict(pass) }
52 else { setverdict(fail) }
53}
54
55testcase hexstrIsvalue() runs on hexstrOper_comptype{
56 var hexstring hstr0;
57 var hexstring hstr1 := '1111'H;
58 var template hexstring thstr;
59
60 if ( isvalue(hstr0) ) { setverdict(fail); } else { setverdict(pass); };
61 if ( isvalue(hstr1) ) { setverdict(pass); } else { setverdict(fail); };
62 if ( isvalue(thstr) ) { setverdict(fail); } else { setverdict(pass); };
63}
64
65testcase hexstrIsbound() runs on hexstrOper_comptype {
66 var hexstring hstr0;
67 var hexstring hstr1 := '1111'H;
68 var template hexstring thstr;
69
70 if ( isbound(hstr0) ) { setverdict(fail); } else { setverdict(pass); };
71 if ( isbound(hstr0[0]) ) { setverdict(fail); } else { setverdict(pass); };
72 if ( isbound(hstr1) ) { setverdict(pass); } else { setverdict(fail); };
73 if ( isbound(thstr) ) { setverdict(fail); } else { setverdict(pass); };
74}
75
76testcase CR_TR00018474() runs on hexstrOper_comptype {
77 // Indexing of string template variables.
78 var template hexstring vth1 := 'AABBCCDDEE'H
79 var template hexstring vth2 := 'AABB?CC'H // It's a pattern, cannot be indexed.
80 vth1[0] := 'B'H
81 if (match('BABBCCDDEE'H, vth1)) { setverdict(pass) } else { setverdict(fail) }
82 vth1[0] := 'B'H // Indexed assignment notation cannot be used here.
83 vth1[1] := 'A'H // Still works, nothing special.
84 if (match('BABBCCDDEE'H, vth1)) { setverdict(pass) } else { setverdict(fail) }
85}
86
87control {
88 const hexstring cl_1 := '0'H
89 var hexstring vl_1;
90
91 execute(hexstrSubtypes());
92 execute(hexstrIsvalue());
93 execute(hexstrIsbound());
94 execute(CR_TR00018474());
95}
96}
This page took 0.027889 seconds and 5 git commands to generate.