diff options
Diffstat (limited to 'sgsn/SGSN_Tests_NS.ttcn')
-rw-r--r-- | sgsn/SGSN_Tests_NS.ttcn | 95 |
1 files changed, 83 insertions, 12 deletions
diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn index cce32cc1..e1bc4a70 100644 --- a/sgsn/SGSN_Tests_NS.ttcn +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -13,7 +13,7 @@ module SGSN_Tests_NS { import from Osmocom_Types all; import from Osmocom_Gb_Types all; import from Osmocom_VTY_Functions all; -import from NS_CodecPort all; +import from Misc_Helpers all; import from NS_Types all; import from RAW_NS all; import from SGSN_Tests all; @@ -23,36 +23,107 @@ type component RAW_Test_CT extends RAW_NS_CT, test_CT { testcase TC_NS_connect_reset() runs on RAW_Test_CT { f_init_vty(); - f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0, tc_offset := 10); - f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock enabled"); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); /* Send a NS-ALIVE */ f_outgoing_ns_reset(); f_sleep(1.0); - f_cleanup(); + f_clean_ns_codec(); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } testcase TC_NS_connect_alive() runs on RAW_Test_CT { f_init_vty(); - f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0, tc_offset := 20); - f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock disabled"); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); /* Send a NS-ALIVE */ - NSCP[0].send(t_NS_Send(g_ns_conn_id[0], t_NS_ALIVE)); + NSCP[0].send(t_NS_ALIVE); alt { - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); - [] NSCP[0].receive(t_NS_RecvFrom(tr_NS_STATUS(*))) { setverdict(fail); } + [] NSCP[0].receive(t_NS_ALIVE_ACK); + [] NSCP[0].receive(tr_NS_STATUS(*)) { setverdict(fail); } [] NSCP[0].receive { repeat; } } f_sleep(1.0); - f_cleanup(); + f_clean_ns_codec(); + setverdict(pass); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + +/* perform outgoing SNS-SIZE procedure */ +testcase TC_SNS_size() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + setverdict(pass); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + +/* outgoing SNS-SIZE procedure with more BSS side IPs than SGSN can handle */ +testcase TC_SNS_size_too_big() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(cause := NS_CAUSE_INVALID_NR_OF_NSVCS, num_ip := 100); + setverdict(pass); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + +/* perform outgoing SNS-CONFIG procedure (for BSS) */ +testcase TC_SNS_config_bss() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + setverdict(pass); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + +/* perform incoming SNS-CONFIG procedure (for SGSN) */ +testcase TC_SNS_config_sgsn() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + setverdict(pass); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + +/* perform full SNS handshake and then outbound NS-ALIVE */ +testcase TC_SNS_and_alive() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 120.0); + g_handle_rx_alive := true; + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + f_outgoing_ns_alive(); + setverdict(pass); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } control { - execute( TC_NS_connect_alive() ); - execute( TC_NS_connect_reset() ); + + if (mp_nsconfig[0].handle_sns) { + execute( TC_SNS_size() ); + execute( TC_SNS_size_too_big() ); + execute( TC_SNS_config_bss() ); + execute( TC_SNS_config_sgsn() ); + execute( TC_SNS_and_alive() ); + } else { + execute( TC_NS_connect_alive() ); + execute( TC_NS_connect_reset() ); + } } } |