diff options
-rw-r--r-- | bts/BTS_Tests.ttcn | 65 |
1 files changed, 48 insertions, 17 deletions
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 8895c6ba..68503dd1 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -469,25 +469,14 @@ private function f_init_trxc(TRXC_CODEC_PT pt, charstring id, } /* global init function */ -friend function f_init() runs on test_CT { +friend function f_init(uint8_t trx_nr := 0) +runs on test_CT +{ + var TrxParsItem trx_pars := mp_trx_pars[trx_nr]; var charstring id := testcasename(); - g_AllChannels := { - /* TS 1..4: TCH/F */ - valueof(ts_RslChanNr_Bm(1)), valueof(ts_RslChanNr_Bm(2)), - valueof(ts_RslChanNr_Bm(3)), valueof(ts_RslChanNr_Bm(4)), - /* TS 5: TCH/H */ - valueof(ts_RslChanNr_Lm(5,0)), valueof(ts_RslChanNr_Lm(5,1)), - /* TS 0: SDCCH/4 */ - valueof(ts_RslChanNr_SDCCH4(0,0)), valueof(ts_RslChanNr_SDCCH4(0,1)), - valueof(ts_RslChanNr_SDCCH4(0,2)), valueof(ts_RslChanNr_SDCCH4(0,3)), - /* TS 6: SDCCH/8 */ - valueof(ts_RslChanNr_SDCCH8(6,0)), valueof(ts_RslChanNr_SDCCH8(6,1)), - valueof(ts_RslChanNr_SDCCH8(6,2)), valueof(ts_RslChanNr_SDCCH8(6,3)), - valueof(ts_RslChanNr_SDCCH8(6,4)), valueof(ts_RslChanNr_SDCCH8(6,5)), - valueof(ts_RslChanNr_SDCCH8(6,6)), valueof(ts_RslChanNr_SDCCH8(6,7)) - }; - /* FIXME: FACCH/H is unreliable with calypso firmware, see OS#3653 */ + /* FIXME: FACCH/H is unreliable with calypso firmware, see OS#3653. + * TODO: also generate this list dynamically from module parameters. */ if (mp_bts_trxc_port != -1) { g_AllChanTypes := { /* TS 1..4: TCH/F */ @@ -509,6 +498,48 @@ friend function f_init() runs on test_CT { valueof(ts_RslChanNr_SDCCH8(6,4)) }; } + + g_AllChannels := { }; + + /* Generate list of all logical channels from module parameters */ + for (var integer tn := 0; tn < lengthof(trx_pars.ts); tn := tn + 1) { + select (trx_pars.ts[tn].config) { + case (GSM_PCHAN_CCCH_SDCCH4) { + g_AllChannels := g_AllChannels & + { valueof(ts_RslChanNr_SDCCH4(tn, 0)), + valueof(ts_RslChanNr_SDCCH4(tn, 1)), + valueof(ts_RslChanNr_SDCCH4(tn, 2)), + valueof(ts_RslChanNr_SDCCH4(tn, 3)) }; + } + case (GSM_PCHAN_SDCCH8) { + g_AllChannels := g_AllChannels & + { valueof(ts_RslChanNr_SDCCH8(tn, 0)), + valueof(ts_RslChanNr_SDCCH8(tn, 1)), + valueof(ts_RslChanNr_SDCCH8(tn, 2)), + valueof(ts_RslChanNr_SDCCH8(tn, 3)), + valueof(ts_RslChanNr_SDCCH8(tn, 4)), + valueof(ts_RslChanNr_SDCCH8(tn, 5)), + valueof(ts_RslChanNr_SDCCH8(tn, 6)), + valueof(ts_RslChanNr_SDCCH8(tn, 7)) }; + } + case (GSM_PCHAN_TCHH_TCHF_PDCH) { + g_AllChannels := g_AllChannels & + { valueof(ts_RslChanNr_Lm(tn, 0)), + valueof(ts_RslChanNr_Lm(tn, 1)), + valueof(ts_RslChanNr_Bm(tn)) }; + } + case (GSM_PCHAN_TCHH) { + g_AllChannels := g_AllChannels & + { valueof(ts_RslChanNr_Lm(tn, 0)), + valueof(ts_RslChanNr_Lm(tn, 1)) }; + } + case (GSM_PCHAN_TCHF, GSM_PCHAN_TCHF_PDCH) { + g_AllChannels := g_AllChannels & + { valueof(ts_RslChanNr_Bm(tn)) }; + } + } + } + f_init_rsl(id); f_sleep(0.5); /* workaround for OS#3000 */ f_init_vty(id); |