This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9904 ) Change subject: BTS_Tests: Ensure mtc.stop is called after setverdict(fail, ...) ...................................................................... BTS_Tests: Ensure mtc.stop is called after setverdict(fail, ...) This will prevent subsequent failures from overwriting the verdict so we can easily see the root cause of the test failure. Change-Id: Iba59a69127e845cadbe9aaa1dabd87ff5ce8b43b --- M bts/BTS_Tests.ttcn 1 file changed, 74 insertions(+), 40 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index aee081e..4f0f0ef 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -257,7 +257,7 @@ } [] pt.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(?, ?, ?))) -> value sd { setverdict(fail, "Invalid PCU Version/BTS Number received"); - self.stop; + mtc.stop; } } @@ -276,7 +276,7 @@ [] as_pcu_info_ind(pt, pcu_conn_id, pcu_last_info); [] T.timeout { setverdict(fail, "Timeout waiting for PCU INFO_IND"); - self.stop; + mtc.stop; } } } @@ -316,7 +316,7 @@ [] RSL_CCHAN.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}); [] T.timeout { setverdict(fail, "Timeout waiting for ASP_IPA_EVENT_UP"); - self.stop; + mtc.stop; } } f_sleep(0.5); /* workaround for OS#3000 */ @@ -389,7 +389,7 @@ private altstep as_Tguard() runs on ConnHdlr { [] g_Tguard.timeout { setverdict(fail, "Tguard timeout"); - self.stop; + mtc.stop; } } @@ -404,7 +404,7 @@ "", -1, -1, {udp:={}}, {}); if (not ispresent(res.connId)) { setverdict(fail, "Could not connect to trx-control interface of trxcon, check your configuration"); - self.stop; + mtc.stop; } g_bb_trxc_conn_id := res.connId; } @@ -455,14 +455,14 @@ } [] T.timeout { setverdict(fail, "Timeout expecting " & id); - self.stop; + mtc.stop; } [not ignore_other] as_l1_sacch(); [not ignore_other] as_meas_res(); [not ignore_other] as_l1_dcch(); [not ignore_other] RSL.receive { setverdict(fail, "Unexpected RSL message received"); - self.stop; + mtc.stop; } [ignore_other] RSL.receive { repeat; } } @@ -550,6 +550,7 @@ alt { [] RSL.receive(tr_RSL_CHAN_ACT_ACK(g_chan_nr)) { setverdict(fail, "Unexpected CHAN ACT ACK on double activation"); + mtc.stop; } [] RSL.receive(tr_RSL_CHAN_ACT_NACK(g_chan_nr)) { setverdict(pass); @@ -577,6 +578,7 @@ } [] T.timeout { setverdict(fail, "Timeout expecting RF_CHAN_REL_ACK"); + mtc.stop; } } } @@ -594,6 +596,7 @@ alt { [] RSL.receive(tr_RSL_CHAN_ACT_ACK(g_chan_nr)) { setverdict(fail, "Unexpected CHAN ACT ACK"); + mtc.stop; } [] RSL.receive(tr_RSL_CHAN_ACT_NACK(g_chan_nr)) { setverdict(pass); @@ -667,6 +670,7 @@ alt { [not exp] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(0))) { setverdict(fail, "Received SACCH when not expecting it"); + mtc.stop; } [not exp] T_sacch.timeout { setverdict(pass); @@ -676,6 +680,7 @@ } [exp] T_sacch.timeout { setverdict(fail, "Timeout waiting for SACCH on ", g_chan_nr); + mtc.stop; } [] L1CTL.receive { repeat; } [] RSL.receive { repeat; } @@ -740,7 +745,7 @@ [] L1CTL.receive { repeat; } [] T_sacch.timeout { setverdict(fail, "Timeout waiting for SACCH ", l3_exp); - self.stop; + mtc.stop; } } } @@ -986,7 +991,7 @@ var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra)); if (fn == fn_last) { setverdict(fail, "Two RACH in same FN?!?"); - self.stop; + mtc.stop; } fn_last := fn; @@ -998,12 +1003,12 @@ } [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(?, ?, ?))) { setverdict(fail, "Unexpected CHAN RQD"); - self.stop; + mtc.stop; } [] RSL_CCHAN.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for CHAN RQD"); - self.stop; + mtc.stop; } } } @@ -1024,7 +1029,7 @@ var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra)); if (fn == fn_last) { setverdict(fail, "Two RACH in same FN?!?"); - self.stop; + mtc.stop; } fn_last := fn; } @@ -1055,7 +1060,7 @@ "", -1, -1, {udp:={}}, {}); if (not ispresent(res.connId)) { setverdict(fail, "Could not connect to trx-control interface of trxcon, check your configuration"); - self.stop; + mtc.stop; } g_bb_trxc_conn_id := res.connId; } @@ -1079,6 +1084,7 @@ } [not expect_pass] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(ra, fn))) { setverdict(fail, "RACH passed but was expected to be dropped: ", toffs256); + mtc.stop; } [] RSL_CCHAN.receive { repeat; } [not expect_pass] T.timeout { @@ -1086,6 +1092,7 @@ } [expect_pass] T.timeout { setverdict(fail, "Timeout waiting for CHAN RQD"); + mtc.stop; } } } @@ -1287,16 +1294,16 @@ repeat; } else { setverdict(fail, "Received unspecific MEAS RES ", rsl); - self.stop; + mtc.stop; } } [] RSL.receive(tr_RSL_MEAS_RES(?)) -> value rsl { setverdict(fail, "Received unexpected MEAS RES ", rsl); - self.stop; + mtc.stop; } [g_Tmeas_exp.running] g_Tmeas_exp.timeout { setverdict(fail, "Didn't receive expected measurement result") - self.stop; + mtc.stop; } } @@ -1312,7 +1319,7 @@ case (RSL_ALG_ID_A5_7) { return 7; } case else { setverdict(fail, "Unknwon Algorithm ID"); - self.stop; + mtc.stop; } } } @@ -1328,7 +1335,7 @@ case (RSL_ALG_ID_A5_7) { return '110'B; } case else { setverdict(fail, "Unknwon Algorithm ID"); - self.stop; + mtc.stop; } } } @@ -1405,12 +1412,13 @@ [] as_l1_dcch(); [] L1CTL.receive { repeat; } [g_Tmeas_exp.running] T.timeout { - /* as_meas_res() would have done setverdict(fail) / self.stop in case + /* as_meas_res() would have done setverdict(fail) / mtc.stop in case * of any earlier errors, so if we reach this timeout, we're good */ setverdict(pass); } [] T.timeout { setverdict(fail, "No MEAS RES received at all"); + mtc.stop; } } f_rsl_chan_deact(); @@ -1494,6 +1502,7 @@ [] RSL.receive { repeat }; [] T.timeout { setverdict(fail, "No CONN FAIL IND received"); + mtc.stop; } } f_rsl_chan_deact(); @@ -1639,6 +1648,7 @@ } [not cfg.exp_overload] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_PAGING_LOAD_IND(0))) { setverdict(fail, "Unexpected PCH Overload"); + mtc.stop; } [cfg.exp_load_ind] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_PAGING_LOAD_IND)) { log("Rx LOAD_IND"); @@ -1664,6 +1674,7 @@ [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_PAGING_LOAD_IND)) { repeat; } [] T_wait.timeout { setverdict(fail, "Waiting for empty paging queue"); + mtc.stop; } [] as_rsl_res_ind(); } @@ -1830,7 +1841,7 @@ if (not match(rr, tr_IMM_ASS(42, ?, 5, ?, ?))) { /* FIXME: Why are we seeing paging requests on PCH/AGCH? */ //setverdict(fail, "Unexpected IMM-ASS values on AGCH: ", rr); - //self.stop; + //mtc.stop; } else { num_rx := num_rx+1; } @@ -1843,6 +1854,7 @@ log("AGCH test: " & res_str); if (num_rx + num_del != num_tx) { setverdict(fail, "RX + DEL != TX ?!?: " & res_str); + mtc.stop } rx_ratio := int2float(num_rx) / int2float(num_tx); if (rx_ratio < exp_pass*0.8 or rx_ratio > exp_pass*1.2) { @@ -1850,6 +1862,7 @@ } else { setverdict(pass); } + f_shutdown(); } /* send a long burst of 1000 IMM.ASS with 20ms spacing (50 per s); expect 75% of them to be deleted */ @@ -1903,6 +1916,7 @@ function f_ensure_si_vec_contains(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false) { if (not f_si_vecslot_contains(arr[tc], key, ext_bcch)) { setverdict(fail, "No ", key, " in TC=", tc, "!"); + mtc.stop; } } @@ -1922,7 +1936,7 @@ var integer count := 0; if (sizeof(arr) < m) { setverdict(fail, "Error: Insufficient SI in array"); - self.stop; + mtc.stop; } for (var integer i:= 0; i < m; i := i + 1) { var integer fn_mod51 := arr[i].frame_number mod 51; @@ -1944,6 +1958,7 @@ function f_ensure_si_vec_contains_n_of_m(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false, integer n, integer m) { if (not f_si_vecslot_contains_n_of_m(arr[tc], key, ext_bcch, n, m)) { setverdict(fail, "Not ", n, "/", m, " of ", key, " in TC=", tc, "!"); + mtc.stop; } } @@ -1965,6 +1980,7 @@ function f_ensure_si_vec_contains_only(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false) { if (not f_si_vecslot_contains_only(arr[tc], key, ext_bcch)) { setverdict(fail, "Not all ", key, " in TC=", tc, "!"); + mtc.stop; } } @@ -1994,6 +2010,7 @@ for (i := 0; i < sizeof(si_per_tc); i := i + 1) { if (sizeof(si_per_tc[i]) == 0) { setverdict(fail, "No SI messages for TC=", i); + mtc.stop; } } if (cfg.si1_present) { @@ -2076,6 +2093,7 @@ } if (f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_13alt)) { setverdict(fail, "Cannot have SI13alt and SI13"); + mtc.stop; } } if (cfg.si16_present or cfg.si17_present) { @@ -2086,6 +2104,7 @@ } if (f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_22)) { setverdict(fail, "Cannot have SI16/SI17 and SI22!"); + mtc.stop; } if (not cfg.bcch_extended) { testcase.stop("Error: SI16/SI17 requires BCCH Extd!"); @@ -2131,6 +2150,7 @@ } if (f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_13)) { setverdict(fail, "Cannot have SI13alt and SI13"); + mtc.stop; } if (not cfg.bcch_extended) { f_ensure_si_vec_contains_n_of_m(si_per_tc, 4, SYSTEM_INFORMATION_TYPE_13alt, false, 1, 4); @@ -2162,6 +2182,7 @@ f_ensure_si_vec_contains_n_of_m(si_per_tc, 4, SYSTEM_INFORMATION_TYPE_21, true, 1, 4); if (f_si_vecslot_contains(si_per_tc[4], SYSTEM_INFORMATION_TYPE_21)) { setverdict(fail, "Cannot have SI21 on BCCH Norm if BCCH Extd enabled!"); + mtc.stop; } } } @@ -2176,6 +2197,7 @@ if (f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_16) or f_si_vec_contains(si_per_tc, SYSTEM_INFORMATION_TYPE_17)) { setverdict(fail, "Cannot have SI16/SI17 and SI22!"); + mtc.stop; } if (not cfg.bcch_extended) { testcase.stop("Error: SI22 requires BCCH Extd!"); @@ -2337,12 +2359,14 @@ } [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_ERROR_REPORT(?))) { setverdict(fail, "Wrong cause in RSL ERR REP"); + mtc.stop; } [] RSL_CCHAN.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for RSL ERR REP"); + mtc.stop; } } } @@ -2489,7 +2513,7 @@ alt { [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RTS_REQ(bts_nr))) { setverdict(fail, "PCU RTS.req before PDCH active?"); - self.stop; + mtc.stop; } [] PCU.receive { repeat; } [] T.timeout { } @@ -2507,15 +2531,16 @@ [not exp_success] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RTS_REQ(bts_nr, trx_nr, ts_nr))) { setverdict(fail, "Unexpected RTS.req for supposedly failing activation"); - self.stop; + mtc.stop; } [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RTS_REQ)) { setverdict(fail, "RTS.req for wrong TRX/TS"); - self.stop; + mtc.stop; } [] PCU.receive { repeat; } [exp_success] T.timeout { setverdict(fail, "Timeout waiting for PCU RTS.req"); + mtc.stop; } [not exp_success] T.timeout { setverdict(pass); @@ -2536,7 +2561,7 @@ alt { [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RTS_REQ(bts_nr, trx_nr, ts_nr))) { setverdict(fail, "Received unexpected PCU RTS.req"); - self.stop; + mtc.stop; } [] PCU.receive { repeat; } [] T.timeout { @@ -2607,7 +2632,7 @@ [] PCU.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for SI13"); - self.stop; + mtc.stop; } } } @@ -2641,6 +2666,7 @@ [] PCU.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for RTS.ind"); + mtc.stop; } } } @@ -2714,6 +2740,7 @@ [] L1CTL.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for PCU-originated AGCH block on Um"); + mtc.stop; } } } @@ -2738,6 +2765,7 @@ [] L1CTL.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for PCU-originated AGCH block on Um"); + mtc.stop; } } } @@ -2754,7 +2782,7 @@ var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra)); if (fn == fn_last) { setverdict(fail, "Two RACH in same FN?!?"); - self.stop; + mtc.stop; } fn_last := fn; @@ -2766,12 +2794,12 @@ } [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RACH_IND)) { setverdict(fail, "Unexpected RACH IND"); - self.stop; + mtc.stop; } [] PCU.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for RACH IND"); - self.stop; + mtc.stop; } } } @@ -2810,12 +2838,12 @@ } [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_PAG_REQ)) { setverdict(fail, "Unexpected PAGING REQ"); - self.stop; + mtc.stop; } [] PCU.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for PAGING REQ"); - self.stop; + mtc.stop; } } } @@ -2837,7 +2865,7 @@ [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '1'B) { setverdict(fail, "PCUIF_INFO_IND PDCH_MASK not '1' after PDCH ACT"); - self.stop; + mtc.stop; } } [] PCU.receive { repeat; } @@ -2858,7 +2886,7 @@ [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '0'B) { setverdict(fail, "PCUIF_INFO_IND PDCH_MASK not '0' after PDCH DEACT"); - self.stop; + mtc.stop; } } [] PCU.receive { repeat; } @@ -3021,7 +3049,7 @@ [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '1'B) { setverdict(fail, "PCUIF_INFO_IND PDCH_MASK not '1' after PDCH ACT"); - self.stop; + mtc.stop; } } [] PCU.receive { repeat; } @@ -3044,7 +3072,7 @@ [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '0'B) { setverdict(fail, "PCUIF_INFO_IND PDCH_MASK not '0' after PDCH DEACT"); - self.stop; + mtc.stop; } } [] PCU.receive { repeat; } @@ -3130,7 +3158,7 @@ [] RSL.receive(tr_RSL_IPA_PDCH_ACT_NACK(g_chan_nr, ?)); [] RSL.receive(tr_RSL_IPA_PDCH_ACT_ACK(g_chan_nr, ?)) { setverdict(fail, "Unexpected PDCH ACT ACK"); - self.stop; + mtc.stop; } [] RSL.receive { repeat; } } @@ -3254,6 +3282,7 @@ setverdict(pass); } else { setverdict(fail, "Unexpected EST IND with L3 in ", tc); + mtc.stop; } } [tc.l3 == ''O] RSL.receive(tr_RSL_EST_IND_NOL3(g_chan_nr, tc.link_id)) { @@ -3261,10 +3290,12 @@ setverdict(pass); } else { setverdict(fail, "Unexpected EST IND without L3 in ", tc); + mtc.stop; } } [tc.exp] T.timeout { setverdict(fail, "Timeout waiting for EST IND"); + mtc.stop; } [not tc.exp] T.timeout { setverdict(pass); @@ -3326,7 +3357,7 @@ [] L1CTL.receive { repeat; } [] T.timeout { setverdict(fail, "Timeout waiting for SABM"); - self.stop; + mtc.stop; } } @@ -3381,7 +3412,7 @@ alt { [] T.timeout { setverdict(fail, "Timeout waiting for LAPDm ", exp); - self.stop; + mtc.stop; } [] as_l1_exp_lapdm(exp); } @@ -3397,7 +3428,7 @@ [l3 == ''O] RSL.receive(tr_RSL_EST_IND_NOL3(g_chan_nr, link_id)); [] RSL.receive(tr_RSL_ERROR_IND(g_chan_nr, link_id, ?)) { setverdict(fail, "Failing due to RSL_ERROR_IND"); - self.stop; + mtc.stop; } [] RSL.receive { repeat; } } @@ -3613,6 +3644,7 @@ } [] T.timeout { setverdict(fail, "Timeout waiting for UNIT_DATA_IND"); + mtc.stop; } [] RSL.receive { repeat; } } @@ -3723,12 +3755,13 @@ lf.ab := dec_LapdmFrameAB(enc); } else { setverdict(fail, "unsupported frame type"); - self.stop; + mtc.stop; } /* check if decoder result matches expectation */ if (not match(lf, exp_match)) { setverdict(fail, name, ": decoded LAPDm doesn't match"); + mtc.stop; } else { log(name, ": matched"); setverdict(pass); @@ -3738,6 +3771,7 @@ reenc := enc_LapdmFrame(lf); if (enc != reenc) { setverdict(fail, name, ": re-encoded LAPDm frame doesn't match"); + mtc.stop; } else { setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/9904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iba59a69127e845cadbe9aaa1dabd87ff5ce8b43b Gerrit-Change-Number: 9904 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann at sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180707/953c817f/attachment.htm>