From 8e1dfd0d0fb24de9d600fd9cbdf38b2efcbde225 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Mon, 7 Sep 2020 04:26:20 +0200 Subject: [PATCH] SGSN: introduce NS tests Similiar to the PCU_Tests_NS introduce SGSN_Tests_NS. Change-Id: Ib2bffbb110961474928f35d212cb492d4b6fdee0 --- sgsn/SGSN_Tests.cfg | 1 + sgsn/SGSN_Tests.ttcn | 3 ++- sgsn/SGSN_Tests_NS.ttcn | 58 +++++++++++++++++++++++++++++++++++++++++ sgsn/gen_links.sh | 3 +-- 4 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 sgsn/SGSN_Tests_NS.ttcn diff --git a/sgsn/SGSN_Tests.cfg b/sgsn/SGSN_Tests.cfg index d6182eb79..d5c3a4cbe 100644 --- a/sgsn/SGSN_Tests.cfg +++ b/sgsn/SGSN_Tests.cfg @@ -42,3 +42,4 @@ SGSN_Tests.mp_ggsn_ip := "127.0.0.103" [EXECUTE] SGSN_Tests.control SGSN_Tests_Iu.control +SGSN_Tests_NS.control diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index abbcb6480..b42020d08 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -12,6 +12,7 @@ module SGSN_Tests { */ friend module SGSN_Tests_Iu; +friend module SGSN_Tests_NS; import from General_Types all; import from Osmocom_Types all; @@ -257,7 +258,7 @@ private function f_init_gtp(charstring id) runs on test_CT { vc_GTP.start(GTP_Emulation.main(gtp_cfg)); } -private function f_init_vty() runs on test_CT { +friend function f_init_vty() runs on test_CT { map(self:SGSNVTY, system:SGSNVTY); f_vty_set_prompts(SGSNVTY); f_vty_transceive(SGSNVTY, "enable"); diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn new file mode 100644 index 000000000..cce32cc16 --- /dev/null +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -0,0 +1,58 @@ +module SGSN_Tests_NS { + +/* Osmocom SGSN test suite in TTCN-3 + * (C) 2020 sysmocom - s.f.m.c. GmbH + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +import from Osmocom_Types all; +import from Osmocom_Gb_Types all; +import from Osmocom_VTY_Functions all; +import from NS_CodecPort all; +import from NS_Types all; +import from RAW_NS all; +import from SGSN_Tests all; + +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"); + + /* Send a NS-ALIVE */ + f_outgoing_ns_reset(); + + f_sleep(1.0); + f_cleanup(); +} + +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"); + + /* Send a NS-ALIVE */ + NSCP[0].send(t_NS_Send(g_ns_conn_id[0], 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 { repeat; } + } + + f_sleep(1.0); + f_cleanup(); +} + +control { + execute( TC_NS_connect_alive() ); + execute( TC_NS_connect_reset() ); +} + +} diff --git a/sgsn/gen_links.sh b/sgsn/gen_links.sh index c9de23afd..334df590e 100755 --- a/sgsn/gen_links.sh +++ b/sgsn/gen_links.sh @@ -92,8 +92,7 @@ FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " FILES+="RAN_Emulation.ttcnpp RAN_Adapter.ttcnpp SCCP_Templates.ttcn " # IPA_Emulation + dependencies FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc Native_Functions.ttcn Native_FunctionDefs.cc GSUP_Types.ttcn GSUP_Emulation.ttcn " -FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Emulation.ttcn -GTP_Templates.ttcn IPCP_Types.ttcn " +FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Emulation.ttcn GTP_Templates.ttcn IPCP_Types.ttcn RAW_NS.ttcn " gen_links $DIR $FILES ignore_pp_results