PCU_Tests_NS: allow an UNBLOCK message to arrive before ALIVE
The ALIVE PDU does not have to be sent before an UNBLOCK message. Ignore UNBLOCK messages in cases a single ALIVE is expected. According to TS 48.016 v5.2.0, 7.4: "Upon successful completion of an NS-VC reset procedure, a BSS (or SGSN) shall start timer Tns-test, then [..]" The ALIVE should arive Tns-test after the reset procedure (typ. 1s-60s). Change-Id: I11d77b7477981998082967e5123b61636af2b980
This commit is contained in:
parent
1220a24ebd
commit
355ab56a24
|
@ -109,9 +109,11 @@ testcase TC_ns_alive() runs on RAW_Test_CT {
|
|||
/* Expect inbound NS-RESET procedure */
|
||||
as_rx_ns_reset_ack(oneshot := true);
|
||||
|
||||
alt {
|
||||
/* wait for one ALIVE cycle, then ACK any further ALIVE in the background */
|
||||
as_rx_alive_tx_ack(oneshot := true);
|
||||
setverdict(pass);
|
||||
[] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)) { setverdict(pass); };
|
||||
[] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; }
|
||||
}
|
||||
}
|
||||
|
||||
/* Test for NS-RESET after NS-ALIVE timeout */
|
||||
|
@ -123,12 +125,16 @@ testcase TC_ns_alive_timeout_reset() runs on RAW_Test_CT {
|
|||
as_rx_ns_reset_ack(oneshot := true);
|
||||
|
||||
/* wait for at least one NS-ALIVE */
|
||||
NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE));
|
||||
alt {
|
||||
[] as_rx_alive_tx_ack(oneshot := true) { };
|
||||
[] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; }
|
||||
}
|
||||
|
||||
/* wait for NS-RESET to re-appear, ignoring any NS-ALIVE until then */
|
||||
alt {
|
||||
[] as_rx_ns_reset_ack(oneshot := true) { setverdict(pass); }
|
||||
[] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; }
|
||||
[] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,8 +146,7 @@ testcase TC_ns_unblock() runs on RAW_Test_CT {
|
|||
/* Expect inbound NS-RESET procedure */
|
||||
as_rx_ns_reset_ack(oneshot := true);
|
||||
|
||||
/* wait for one ALIVE cycle, then ACK any further ALIVE in the background */
|
||||
as_rx_alive_tx_ack(oneshot := true);
|
||||
/* keep it alive */
|
||||
activate(as_rx_alive_tx_ack());
|
||||
|
||||
as_rx_ns_unblock_ack(oneshot := true);
|
||||
|
@ -156,8 +161,7 @@ testcase TC_ns_unblock_retrans() runs on RAW_Test_CT {
|
|||
/* Expect inbound NS-RESET procedure */
|
||||
as_rx_ns_reset_ack(oneshot := true);
|
||||
|
||||
/* wait for one ALIVE cycle, then ACK any further ALIVE in the background */
|
||||
as_rx_alive_tx_ack(oneshot := true);
|
||||
/* keep it alive */
|
||||
activate(as_rx_alive_tx_ack());
|
||||
|
||||
/* wait for first NS-UNBLOCK, don't respond */
|
||||
|
@ -176,8 +180,7 @@ testcase TC_ns_full_bringup() runs on RAW_Test_CT {
|
|||
/* Expect inbound NS-RESET procedure */
|
||||
as_rx_ns_reset_ack(oneshot := true);
|
||||
|
||||
/* wait for one ALIVE cycle, then ACK any further ALIVE in the background */
|
||||
as_rx_alive_tx_ack(oneshot := true);
|
||||
/* keep it alive */
|
||||
activate(as_rx_alive_tx_ack());
|
||||
|
||||
as_rx_ns_unblock_ack(oneshot := true);
|
||||
|
@ -203,8 +206,7 @@ testcase TC_ns_so_block() runs on RAW_Test_CT {
|
|||
/* Expect inbound NS-RESET procedure */
|
||||
as_rx_ns_reset_ack(oneshot := true);
|
||||
|
||||
/* wait for one ALIVE cycle, then ACK any further ALIVE in the background */
|
||||
as_rx_alive_tx_ack(oneshot := true);
|
||||
/* keep it alive */
|
||||
activate(as_rx_alive_tx_ack());
|
||||
|
||||
as_rx_ns_unblock_ack(oneshot := true);
|
||||
|
|
Loading…
Reference in New Issue