From 1eba37487b19f6fece628c9a79386e69328cc297 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 25 Feb 2018 12:48:14 +0100 Subject: [PATCH] bts: Introduce f_rsl_transceive() and reduce code duplication Change-Id: I56de61e08bd1508a0531f720561ead84d1075de3 --- bts/BTS_Tests.ttcn | 56 +++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 00143bfa6..267d7a3a4 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -225,34 +225,36 @@ runs on ConnHdlr { fn.apply(id); } - -function f_rsl_chan_act(RSL_IE_ChannelMode mode) runs on ConnHdlr { - RSL.send(ts_RSL_CHAN_ACT(g_chan_nr, mode)); +function f_rsl_transceive(template RSL_Message tx, template RSL_Message exp_rx, charstring id) +runs on ConnHdlr { + timer T := 3.0; + RSL.send(tx); + T.start; alt { - [] RSL.receive(tr_RSL_CHAN_ACT_ACK(g_chan_nr)) { - g_Tmeas_exp.start; + [] RSL.receive(exp_rx) { + T.stop; + setverdict(pass); } - [] RSL.receive(tr_RSL_CHAN_ACT_NACK(g_chan_nr)) { - setverdict(fail, "Unexpected RF CHAN ACT NACK"); + [] T.timeout { + setverdict(fail, "Timeout expecting " & id); + self.stop; + } + [] RSL.receive { + setverdict(fail, "Unexpected RSL message received"); } } } +function f_rsl_chan_act(RSL_IE_ChannelMode mode) runs on ConnHdlr { + f_rsl_transceive(ts_RSL_CHAN_ACT(g_chan_nr, mode), tr_RSL_CHAN_ACT_ACK(g_chan_nr), + "RSL CHAN ACT"); +} + function f_rsl_chan_deact() runs on ConnHdlr { - timer T := 3.0; - RSL.send(ts_RSL_RF_CHAN_REL(g_chan_nr)); - T.start; - alt { - [] RSL.receive(tr_RSL_RF_CHAN_REL_ACK(g_chan_nr)) { - g_Tmeas_exp.stop; - } - [] T.timeout { - setverdict(fail, "Timeout waiting for RF CHAN REL ACK"); - } - } + f_rsl_transceive(ts_RSL_RF_CHAN_REL(g_chan_nr), tr_RSL_RF_CHAN_REL_ACK(g_chan_nr), + "RF CHAN REL"); } - private template ConnHdlrPars t_Pars(template RslChannelNr chan_nr, template RSL_IE_ChannelMode chan_mode, float t_guard := 20.0) := { @@ -1001,20 +1003,8 @@ testcase TC_rsl_ie_content_error() runs on test_CT { /* Send IPA DLCX to inactive lchan */ function f_TC_ipa_dlcx_not_active(charstring id) runs on ConnHdlr { - timer T := 3.0; - RSL.send(ts_RSL_IPA_DLCX(g_chan_nr, 0)); - T.start; - alt { - [] RSL.receive(tr_RSL_IPA_DLCX_ACK(g_chan_nr, ?, ?)) { - setverdict(pass); - } - [] RSL.receive(tr_RSL_IPA_DLCX_NACK(g_chan_nr, ?)) { - setverdict(fail); - } - [] T.timeout { - setverdict(fail, "Timeout expecting RF_CHAN_REL_ACK"); - } - } + f_rsl_transceive(ts_RSL_IPA_DLCX(g_chan_nr, 0), tr_RSL_IPA_DLCX_ACK(g_chan_nr, ?, ?), + "IPA DLCX ACK"); } testcase TC_ipa_dlcx_not_active() runs on test_CT { var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN));