/****************************************************************************** * Copyright (c) 2000-2015 Ericsson Telecom AB * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html ******************************************************************************/ // Test cases for TR HQ19911: // Adding multiple permutations to the same template variable, testing if permutation data is // cleared properly between commands module TmultiplePermutations { type record of integer RoI; type record of float RoF; type record of charstring RoCS; type record Roios { RoI roi, octetstring os } type component CT_empty { }; type component CT_perm { var template RoI vt_comp_perm := { permutation(1,2,3) }; } template RoI t_perm1 := { permutation(10,20,30) }; template RoI t_perm2 := { 1, 2, permutation(5, ?) }; template RoI t_simple := { 6, 7, 8 }; function f_do_nothing(in template RoI p_roi) runs on CT_empty return template RoI { return p_roi; } modulepar { template RoI mpt_roi := { }; } // Testing permutation with template variable in a component testcase tc_mul_perm_component1() runs on CT_perm { setverdict(pass); } testcase tc_mul_perm_component2() runs on CT_perm { setverdict(pass); } // Testing multiple permutations on a template variable testcase tc_mul_perm_var() runs on CT_empty { var template RoI vt_roi := { permutation(2) }; vt_roi := { permutation(3,4,7) }; setverdict(pass); } testcase tc_mul_perm_temp() runs on CT_empty { var template RoI vt_roi := { permutation(5,2) }; vt_roi := t_perm1; vt_roi := t_perm2; setverdict(pass); } testcase tc_mul_perm_var2() runs on CT_empty { var template RoI vt_roi1 := { permutation(1,2,3,4) }; var template RoI vt_roi2 := { permutation(5,6) }; vt_roi2 := valueof(vt_roi1) & { 10, 20, 30 }; vt_roi2 := t_perm2; vt_roi1 := vt_roi2; vt_roi1 := vt_roi1; setverdict(pass); } testcase tc_mul_perm_var_f() runs on CT_empty { var template RoF vt_rof := { 1.0, 0.0, permutation(9.5, *) }; vt_rof := { 0.0, permutation(1.0, 2.0, ?), 10.0, permutation(2.73, 3.14, *) }; vt_rof := { permutation( (0.0 .. 1.0) ) }; setverdict(pass); } testcase tc_mul_perm_var_cs() runs on CT_empty { var template RoCS vt_rocs := { "one", "two", permutation("six", "seven", "eight") }; vt_rocs := { permutation("cat", "dog", pattern "a*d" length (4..10) ) }; vt_rocs := { permutation( ("a".."f") ) }; setverdict(pass); } testcase tc_mul_perm_func() runs on CT_empty { var template RoI vt_roi := { 1, 2, permutation(6,7,8) }; vt_roi := f_do_nothing(vt_roi); setverdict(pass); } testcase tc_mul_perm_modulepar() runs on CT_empty { var template RoI vt_roi := { permutation(8,9) }; vt_roi := mpt_roi; vt_roi := { permutation(8,9,10) }; setverdict(pass); } testcase tc_mul_perm_all_from() runs on CT_empty { var template RoI vt_roi := { 1, 2, permutation(3, 4, all from t_simple ) }; vt_roi := { permutation(-2, -1, all from t_simple) }; vt_roi := { -2, -1, permutation(all from t_simple) }; setverdict(pass); } testcase tc_mul_perm_var3() runs on CT_empty { var template RoI vt_roi := { permutation( 1, 2, 3 ), 10 }; vt_roi := { 1, complement(1, 2, 3), 3, 4 }; var template RoI vt_target := { 1, complement(1, 2, 3), 3, 4 }; if (log2str(vt_roi) == log2str(vt_target)) { setverdict(pass); } else { setverdict(fail, vt_roi); } } testcase tc_mul_perm_field() runs on CT_empty { var template Roios vt_roios := { { permutation (1, 2, 3) } , 'DEAD'O }; vt_roios.roi := { 1, permutation(2, 3) }; vt_roios.roi := { permutation(7, lengthof(vt_roios.roi)), 19 }; setverdict(pass); } control { execute(tc_mul_perm_component1()); execute(tc_mul_perm_component2()); execute(tc_mul_perm_var()); execute(tc_mul_perm_temp()); execute(tc_mul_perm_var2()); execute(tc_mul_perm_var_f()); execute(tc_mul_perm_var_cs()); execute(tc_mul_perm_func()); execute(tc_mul_perm_modulepar()); execute(tc_mul_perm_all_from()); execute(tc_mul_perm_var3()); execute(tc_mul_perm_field()); } } // end of module