Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / ucharstrOper / TucharstrOper.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 * Szabados, Kristof
12 *
970ed795
EL
13 ******************************************************************************/
14module TucharstrOper
15{
16type component ucharstrOper_comptype { }
17
18type universal charstring myustr0
19type myustr0 myustr1
20type myustr0 myustr2 (char(0, 0, 0, 1)..char(0, 0, 1, 0))
21type myustr0 myustr3 (char(0, 0, 0, 0), char(0, 0, 0, 1), char(0, 0, 1, 0))
22type myustr0 myustr4 (char(0, 0, 0, 0) & char(0, 0, 0, 0), c_myustr0)
23type myustr0 myustr5 (c_myustr0..c_myustr0) length(lengthof(c_myustr0))
24type universal charstring myustr6 (pattern "abc?\q{0, 0, 0, 65}")
25type myustr0 myustr7 (pattern "abc*xyz")
26type myustr7 myustr8 length(0) // It should be an empty set.
27type myustr1 myustr9 length(2)
28type universal charstring MyUCharString1 ("a".."z")
29type universal charstring MyUCharString2 (char(0, 0, 1, 111)..char(0, 0, 1, 113))
30type universal charstring myustr10 (myustr2, myustr3)
31type universal charstring myustr11 length(0..infinity) // Full set.
32
33const myustr0 c_myustr0 := char(0, 0, 0, 0)
34const myustr7 c_myustr1 := "abcxyz"
35const myustr10 c_myustr2 := char(0, 0, 0, 1)
36
37template myustr0 t_myustr0 := char(0, 0, 0, 0)
38template myustr7 t_myustr1 := "abc" & c_myustr1 & "xyz"
39template myustr3 t_myustr2 := pattern char(0, 0, 0, 1)
40template myustr10 t_myustr3 := c_myustr2
41template myustr2 t_myustr4 := char(0, 0, 0, 1) length(1)
42
43function f_ustr1() return myustr7 {
44 if (lengthof(t_myustr1) > lengthof(c_myustr1)) { return valueof(t_myustr1) }
45 else { return c_myustr1 }
46}
47
48testcase ucharstrSubtypes() runs on ucharstrOper_comptype {
49 var template myustr2 vt_myustr1 := char(0, 0, 0, 1) // Value range.
50 var template myustr3 vt_myustr2 := vt_myustr1 // Value list.
51 var template myustr5 vt_myustr3 := char(0, 0, 0, 0) // Length and value range.
52 var template myustr9 vt_myustr4 := valueof(vt_myustr3) & valueof(vt_myustr3) // Length only.
53 var myustr2 v_myustr1 := char(0, 0, 0, 1)
54 var myustr3 v_myustr2 := v_myustr1
55 var myustr5 v_myustr3 := char(0, 0, 0, 0)
56 var myustr9 v_myustr4 := v_myustr3 & v_myustr3
57
58 if (valueof(vt_myustr1) == v_myustr1 and v_myustr2 == valueof(vt_myustr2)) { setverdict(pass) }
59 else { setverdict(fail) }
60 if (valueof(vt_myustr3) == v_myustr3 and v_myustr4 == valueof(vt_myustr4)) { setverdict(pass) }
61 else { setverdict(fail) }
62 if (f_ustr1() == "abc" & c_myustr1 & "xyz") { setverdict(pass) }
63 else { setverdict(fail) }
64}
65
66testcase ucharstrIsvalue() runs on ucharstrOper_comptype {
67 var universal charstring us := "foo";
68 var universal charstring un;
69 var template universal charstring ust := "bar";
70
71 if ( isvalue(us) ) { setverdict(pass); } else { setverdict(fail); };
72 if ( isvalue(un) ) { setverdict(fail); } else { setverdict(pass); };
73 if ( isvalue(ust) ) { setverdict(pass); } else { setverdict(fail); };
74}
75
76testcase ucharstrIsbound() runs on ucharstrOper_comptype {
77 var universal charstring us := "foo";
78 var universal charstring un;
79 var template universal charstring ust := "bar";
80
81 if ( isbound(un) ) { setverdict(fail); } else { setverdict(pass); };
82 if ( isbound(un[0]) ) { setverdict(fail); } else { setverdict(pass); };
83 if ( isbound(us) ) { setverdict(pass); } else { setverdict(fail); };
84 if ( isbound(ust) ) { setverdict(pass); } else { setverdict(fail); };
85}
86
87testcase CR_TR00018474() runs on ucharstrOper_comptype {
88 // Indexing of string template variables.
89 var template universal charstring vtu1 := "fisherman"
90 var template universal charstring vtu2 := char(0, 0, 0, 65) & "F" & char(0, 0, 0, 65)
91 vtu1[0] := "F"
92 if (match(char(0, 0, 0, 70) & char(0, 0, 0, 105) & char(0, 0, 0, 115) & char(0, 0, 0, 104) & char(0, 0, 0, 101) & char(0, 0, 0, 114) & char(0, 0, 0, 109) & char(0, 0, 0, 97) & char(0, 0, 0, 110), vtu1)) { setverdict(pass) } else { setverdict(fail) }
93 vtu1[0] := "F" // Indexed assignment notation cannot be used here.
94 vtu1[1] := "i" // Still works, nothing special.
95 if (match(char(0, 0, 0, 70) & char(0, 0, 0, 105) & char(0, 0, 0, 115) & char(0, 0, 0, 104) & char(0, 0, 0, 101) & char(0, 0, 0, 114) & char(0, 0, 0, 109) & char(0, 0, 0, 97) & char(0, 0, 0, 110), vtu1)) { setverdict(pass) } else { setverdict(fail) }
96 vtu2[0] := "B"
97 if (match("BF" & char(0, 0, 0, 65), vtu2)) { setverdict(pass) } else { setverdict(fail) }
98}
99
100control {
101 const universal charstring cl_1 := char(0, 0, 0, 0)
102 const universal charstring cl_2 := "abcxyz"
103 var universal charstring vl_1 := char(0, 0, 0, 0)
104 var universal charstring vl_2 := "abcxyz"
105
106 execute(ucharstrSubtypes());
107 execute(ucharstrIsvalue());
108 execute(ucharstrIsbound());
109 execute(CR_TR00018474());
110}
111}
This page took 0.099712 seconds and 5 git commands to generate.