Make f_{block,unblock}_ptp_bvc_from_pcu handle multiple SGSNs

Those tests predated SGSN pooling support and needed to update
their assumptions to also cover other SGSNs in the pool.

We could come up with more complex, auto-scaling mechanisms to handle
different numbers of SGSNs, but that would make the code quite
unreadable, as it means we cannot use interleave but have to dynamically
activate altsteps for counting.  I went for the simpler approach
instead.

Change-Id: I8c3ec4e00b78cff40ac72bc857161fa7abc352b0
Related: OS#4968
This commit is contained in:
Harald Welte 2021-03-30 13:19:56 +02:00
parent b1cc0b24d3
commit 572b0179ae
1 changed files with 9 additions and 2 deletions

View File

@ -325,6 +325,9 @@ type record of BssgpConfig BssgpConfigs;
type record of NSConfiguration NSConfigurations;
type record of BssgpCellId BssgpCellIds;
/* you cannot simply change this to any larger number of SGSNs and expect all test
* cases to work. This would have overly complicated the code. Check below for
* tests that use interleave on SGSN_MGMT.receive() for each SGSN NSEI for example */
const integer NUM_SGSN := 2;
type component test_CT {
@ -2399,7 +2402,9 @@ private function f_block_ptp_bvc_from_pcu(integer pcu_idx, integer bvc_idx) runs
/* expect state on both PCU and SGSN side to change */
interleave {
[] PCU_MGMT.receive(tr_BssgpStsInd(nsei_pcu, bvc_cfg.bvci, BVC_S_BLOCKED)) from bvc_ct;
[] SGSN_MGMT.receive(tr_BssgpStsInd(*, bvc_cfg.bvci, BVC_S_BLOCKED));
[] SGSN_MGMT.receive(tr_BssgpStsInd(mp_nsconfig_sgsn[0].nsei, bvc_cfg.bvci, BVC_S_BLOCKED));
[] SGSN_MGMT.receive(tr_BssgpStsInd(mp_nsconfig_sgsn[1].nsei, bvc_cfg.bvci, BVC_S_BLOCKED));
/* Doesn't auto-scale with NUM_SGSN */
}
setverdict(pass);
}
@ -2425,7 +2430,9 @@ private function f_unblock_ptp_bvc_from_pcu(integer pcu_idx, integer bvc_idx) ru
/* expect state on both PCU and SGSN side to change */
interleave {
[] PCU_MGMT.receive(tr_BssgpStsInd(nsei_pcu, bvc_cfg.bvci, BVC_S_UNBLOCKED)) from bvc_ct;
[] SGSN_MGMT.receive(tr_BssgpStsInd(*, bvc_cfg.bvci, BVC_S_UNBLOCKED));
[] SGSN_MGMT.receive(tr_BssgpStsInd(mp_nsconfig_sgsn[0].nsei, bvc_cfg.bvci, BVC_S_UNBLOCKED));
[] SGSN_MGMT.receive(tr_BssgpStsInd(mp_nsconfig_sgsn[1].nsei, bvc_cfg.bvci, BVC_S_UNBLOCKED));
/* Doesn't auto-scale with NUM_SGSN */
}
setverdict(pass);
}