s1gw: initial osmo-s1gw testsuite skeleton

Change-Id: If0521cbfe9576c2529bf13579899bc64a50e45b3
Related: SYS#6772
diff --git a/Makefile b/Makefile
index d216aab..5a35e6e 100644
--- a/Makefile
+++ b/Makefile
@@ -39,6 +39,7 @@
 	pcu \
 	pgw \
 	remsim \
+	s1gw \
 	sccp \
 	selftest \
 	sgsn \
diff --git a/s1gw/S1GW_Tests.cfg b/s1gw/S1GW_Tests.cfg
new file mode 100644
index 0000000..336be14
--- /dev/null
+++ b/s1gw/S1GW_Tests.cfg
@@ -0,0 +1,18 @@
+[ORDERED_INCLUDE]
+# Common configuration, shared between test suites
+"../Common.cfg"
+# testsuite specific configuration, not expected to change
+"./S1GW_Tests.default"
+
+# Local configuration below
+
+[LOGGING]
+
+[TESTPORT_PARAMETERS]
+
+[MODULE_PARAMETERS]
+
+[MAIN_CONTROLLER]
+
+[EXECUTE]
+S1GW_Tests.control
diff --git a/s1gw/S1GW_Tests.default b/s1gw/S1GW_Tests.default
new file mode 100644
index 0000000..1c220d8
--- /dev/null
+++ b/s1gw/S1GW_Tests.default
@@ -0,0 +1,12 @@
+[LOGGING]
+FileMask := LOG_ALL | TTCN_MATCHING;
+mtc.FileMask := ERROR | WARNING | PARALLEL | VERDICTOP;
+
+[TESTPORT_PARAMETERS]
+
+
+[MODULE_PARAMETERS]
+
+[MAIN_CONTROLLER]
+
+[EXECUTE]
diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn
new file mode 100644
index 0000000..7f9bd44
--- /dev/null
+++ b/s1gw/S1GW_Tests.ttcn
@@ -0,0 +1,31 @@
+/* OsmoS1GW (S1AP Gateway) test suite in TTCN-3
+ *
+ * (C) 2024 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
+ * Author: Vadim Yanitskiy <vyanitskiy@sysmocom.de>
+ *
+ * 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
+ */
+
+module S1GW_Tests {
+
+import from General_Types all;
+import from Native_Functions all;
+import from IPL4asp_Types all;
+import from Misc_Helpers all;
+import from S1AP_Types all;
+import from S1AP_Templates all;
+import from S1AP_PDU_Descriptions all;
+import from S1AP_IEs all;
+import from S1AP_PDU_Contents all;
+import from S1AP_Constants all;
+import from Osmocom_Types all;
+
+control {
+}
+
+}
diff --git a/s1gw/gen_links.sh b/s1gw/gen_links.sh
new file mode 100755
index 0000000..9587c59
--- /dev/null
+++ b/s1gw/gen_links.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+BASEDIR=../deps
+
+. ../gen_links.sh.inc
+
+DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src
+FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h"
+FILES+=" TCCEncoding_Functions.ttcn TCCEncoding.cc "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src
+FILES="Socket_API_Definitions.ttcn"
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/titan.TestPorts.IPL4asp/src
+FILES="IPL4asp_Functions.ttcn  IPL4asp_PT.cc  IPL4asp_PT.hh IPL4asp_PortType.ttcn  IPL4asp_Types.ttcn  IPL4asp_discovery.cc IPL4asp_protocol_L234.hh"
+gen_links $DIR $FILES
+
+DIR=../library/s1ap
+FILES="S1AP_CommonDataTypes.asn S1AP_Constants.asn S1AP_Containers.asn S1AP_IEs.asn "
+FILES+="S1AP_PDU_Contents.asn S1AP_PDU_Descriptions.asn "
+FILES+="S1AP_EncDec.cc S1AP_Types.ttcn S1AP_Templates.ttcn "
+gen_links $DIR $FILES
+
+DIR=../library
+FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc IPCP_Types.ttcn "
+FILES+="S1AP_CodecPort.ttcn S1AP_CodecPort_CtrlFunctDef.cc S1AP_CodecPort_CtrlFunct.ttcn "
+gen_links $DIR $FILES
+
+ignore_pp_results
diff --git a/s1gw/regen_makefile.sh b/s1gw/regen_makefile.sh
new file mode 100755
index 0000000..7eef51b
--- /dev/null
+++ b/s1gw/regen_makefile.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+NAME=S1GW_Tests
+
+FILES="
+	*.asn
+	*.ttcn
+	IPL4asp_PT.cc
+	IPL4asp_discovery.cc
+	Native_FunctionDefs.cc
+	S1AP_CodecPort_CtrlFunctDef.cc
+	S1AP_EncDec.cc
+	TCCConversion.cc
+	TCCEncoding.cc
+	TCCInterface.cc
+"
+
+
+export CPPFLAGS_TTCN3="
+"
+
+../regen-makefile.sh -e $NAME $FILES
+
+sed -i -e '/^CPPFLAGS/ s/$/ `pkg-config --cflags libfftranscode`/' Makefile
+sed -i -e '/^LDFLAGS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
+sed -i -e '/^LINUX_LIBS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile