pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41785?usp=email )
Change subject: bts: Fix sporadic failure in TC_rsl_ms_pwr_ctrl ......................................................................
bts: Fix sporadic failure in TC_rsl_ms_pwr_ctrl
Fix following sporadic race condition: TTCN-MS IUTS-BTS TTCN-BSC | |<----CHAN_ACT------| |<--SACCH(A)-- | | | |<--MS_PWR_CTRL(B)- | |<--SACCH(B)---|
Change-Id: I088b58bf76765c8a5bd167590c5afc5055fbdbf8 --- M bts/BTS_Tests.ttcn 1 file changed, 10 insertions(+), 1 deletion(-)
Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 26fe18d..c681da9 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -3834,6 +3834,7 @@ private function f_tc_rsl_ms_pwr_ctrl(charstring id) runs on ConnHdlr { var SacchL1Header l1h; var uint5_t power_level := 0; + var boolean first_after_wait := true;
f_l1_tune(L1CTL); RSL.clear; @@ -3849,10 +3850,18 @@ alt { [] as_l1_sacch_l1h(l1h, do_apply := false) { if (l1h.ms_power_lvl != power_level) { - setverdict(fail, "Power level := ", l1h.ms_power_lvl, "does not ", + if (first_after_wait) { + /* It may happen that BTS transmits SACCH before it receives our RSL MS POWER CONTROL: */ + log("Power level := ", l1h.ms_power_lvl, " does not ", + "match the signaled (RSL) power level := ", power_level); + first_after_wait := false; + repeat; + } + setverdict(fail, "Power level := ", l1h.ms_power_lvl, " does not ", "match the signaled (RSL) power level := ", power_level); Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } + first_after_wait := true;
/* Signal a new power level via RSL for the next turn. */ if (power_level < 31) {