Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / templateRecof / TmultiplePermutations.ttcn
CommitLineData
970ed795 1/******************************************************************************
3abe9331 2 * Copyright (c) 2000-2015 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
7 ******************************************************************************/
8// Test cases for TR HQ19911:
9// Adding multiple permutations to the same template variable, testing if permutation data is
10// cleared properly between commands
11module TmultiplePermutations {
12
13type record of integer RoI;
14type record of float RoF;
15type record of charstring RoCS;
16
17type record Roios {
18 RoI roi,
19 octetstring os
20}
21
22type component CT_empty { };
23type component CT_perm {
24 var template RoI vt_comp_perm := { permutation(1,2,3) };
25}
26
27template RoI t_perm1 := { permutation(10,20,30) };
28template RoI t_perm2 := { 1, 2, permutation(5, ?) };
29template RoI t_simple := { 6, 7, 8 };
30
31function f_do_nothing(in template RoI p_roi) runs on CT_empty return template RoI {
32 return p_roi;
33}
34
35modulepar {
36 template RoI mpt_roi := { };
37}
38
39// Testing permutation with template variable in a component
40testcase tc_mul_perm_component1() runs on CT_perm {
41 setverdict(pass);
42}
43
44testcase tc_mul_perm_component2() runs on CT_perm {
45 setverdict(pass);
46}
47
48// Testing multiple permutations on a template variable
49testcase tc_mul_perm_var() runs on CT_empty {
50 var template RoI vt_roi := { permutation(2) };
51 vt_roi := { permutation(3,4,7) };
52 setverdict(pass);
53}
54
55testcase tc_mul_perm_temp() runs on CT_empty {
56 var template RoI vt_roi := { permutation(5,2) };
57 vt_roi := t_perm1;
58 vt_roi := t_perm2;
59 setverdict(pass);
60}
61
62testcase tc_mul_perm_var2() runs on CT_empty {
63 var template RoI vt_roi1 := { permutation(1,2,3,4) };
64 var template RoI vt_roi2 := { permutation(5,6) };
65 vt_roi2 := valueof(vt_roi1) & { 10, 20, 30 };
66 vt_roi2 := t_perm2;
67 vt_roi1 := vt_roi2;
68 vt_roi1 := vt_roi1;
69 setverdict(pass);
70}
71
72testcase tc_mul_perm_var_f() runs on CT_empty {
73 var template RoF vt_rof := { 1.0, 0.0, permutation(9.5, *) };
74 vt_rof := { 0.0, permutation(1.0, 2.0, ?), 10.0, permutation(2.73, 3.14, *) };
75 vt_rof := { permutation( (0.0 .. 1.0) ) };
76 setverdict(pass);
77}
78
79testcase tc_mul_perm_var_cs() runs on CT_empty {
80 var template RoCS vt_rocs := { "one", "two", permutation("six", "seven", "eight") };
81 vt_rocs := { permutation("cat", "dog", pattern "a*d" length (4..10) ) };
82 vt_rocs := { permutation( ("a".."f") ) };
83 setverdict(pass);
84}
85
86testcase tc_mul_perm_func() runs on CT_empty {
87 var template RoI vt_roi := { 1, 2, permutation(6,7,8) };
88 vt_roi := f_do_nothing(vt_roi);
89 setverdict(pass);
90}
91
92testcase tc_mul_perm_modulepar() runs on CT_empty {
93 var template RoI vt_roi := { permutation(8,9) };
94 vt_roi := mpt_roi;
95 vt_roi := { permutation(8,9,10) };
96 setverdict(pass);
97}
98
99testcase tc_mul_perm_all_from() runs on CT_empty {
100 var template RoI vt_roi := { 1, 2, permutation(3, 4, all from t_simple ) };
101 vt_roi := { permutation(-2, -1, all from t_simple) };
102 vt_roi := { -2, -1, permutation(all from t_simple) };
103 setverdict(pass);
104}
105
106testcase tc_mul_perm_var3() runs on CT_empty {
107 var template RoI vt_roi := { permutation( 1, 2, 3 ), 10 };
108 vt_roi := { 1, complement(1, 2, 3), 3, 4 };
109 var template RoI vt_target := { 1, complement(1, 2, 3), 3, 4 };
110 if (log2str(vt_roi) == log2str(vt_target)) { setverdict(pass); }
111 else { setverdict(fail, vt_roi); }
112}
113
114testcase tc_mul_perm_field() runs on CT_empty {
115 var template Roios vt_roios := { { permutation (1, 2, 3) } , 'DEAD'O };
116 vt_roios.roi := { 1, permutation(2, 3) };
117 vt_roios.roi := { permutation(7, lengthof(vt_roios.roi)), 19 };
118 setverdict(pass);
119}
120
121control {
122 execute(tc_mul_perm_component1());
123 execute(tc_mul_perm_component2());
124 execute(tc_mul_perm_var());
125 execute(tc_mul_perm_temp());
126 execute(tc_mul_perm_var2());
127 execute(tc_mul_perm_var_f());
128 execute(tc_mul_perm_var_cs());
129 execute(tc_mul_perm_func());
130 execute(tc_mul_perm_modulepar());
131 execute(tc_mul_perm_all_from());
132 execute(tc_mul_perm_var3());
133 execute(tc_mul_perm_field());
134}
135
136} // end of module
This page took 0.037321 seconds and 5 git commands to generate.