Commit | Line | Data |
---|---|---|
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 | |
11 | module TmultiplePermutations { | |
12 | ||
13 | type record of integer RoI; | |
14 | type record of float RoF; | |
15 | type record of charstring RoCS; | |
16 | ||
17 | type record Roios { | |
18 | RoI roi, | |
19 | octetstring os | |
20 | } | |
21 | ||
22 | type component CT_empty { }; | |
23 | type component CT_perm { | |
24 | var template RoI vt_comp_perm := { permutation(1,2,3) }; | |
25 | } | |
26 | ||
27 | template RoI t_perm1 := { permutation(10,20,30) }; | |
28 | template RoI t_perm2 := { 1, 2, permutation(5, ?) }; | |
29 | template RoI t_simple := { 6, 7, 8 }; | |
30 | ||
31 | function f_do_nothing(in template RoI p_roi) runs on CT_empty return template RoI { | |
32 | return p_roi; | |
33 | } | |
34 | ||
35 | modulepar { | |
36 | template RoI mpt_roi := { }; | |
37 | } | |
38 | ||
39 | // Testing permutation with template variable in a component | |
40 | testcase tc_mul_perm_component1() runs on CT_perm { | |
41 | setverdict(pass); | |
42 | } | |
43 | ||
44 | testcase tc_mul_perm_component2() runs on CT_perm { | |
45 | setverdict(pass); | |
46 | } | |
47 | ||
48 | // Testing multiple permutations on a template variable | |
49 | testcase 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 | ||
55 | testcase 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 | ||
62 | testcase 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 | ||
72 | testcase 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 | ||
79 | testcase 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 | ||
86 | testcase 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 | ||
92 | testcase 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 | ||
99 | testcase 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 | ||
106 | testcase 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 | ||
114 | testcase 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 | ||
121 | control { | |
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 |