aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2023-07-06 12:55:36 +0200
committerosmith <osmith@sysmocom.de>2023-07-10 07:02:59 +0000
commitf543548505202aa2d676dd3b4246e07b97f2afc3 (patch)
treec4a511a873517d2dc103c66125b0ed42a8797c64
parent5b1ab541a2078df8f6b9bb4df59c7c49007af963 (diff)
test: add csd_test
Show that csd_bs_list_remove() is currently broken, the next patch will fix it. Related: OS#4394 Change-Id: Icc98de75e97c75216a71caf94355d09330c95cba
-rw-r--r--configure.ac1
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/csd/Makefile.am37
-rw-r--r--tests/csd/csd_test.c44
-rw-r--r--tests/csd/csd_test.err0
-rw-r--r--tests/csd/csd_test.ok11
-rw-r--r--tests/testsuite.at7
7 files changed, 101 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 44b08814a..61df7de89 100644
--- a/configure.ac
+++ b/configure.ac
@@ -249,6 +249,7 @@ AC_OUTPUT(
tests/msc_vlr/Makefile
tests/sdp_msg/Makefile
tests/mncc/Makefile
+ tests/csd/Makefile
doc/Makefile
doc/examples/Makefile
doc/manuals/Makefile
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5b77250de..839e53b34 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -4,6 +4,7 @@ SUBDIRS = \
db_sms \
sdp_msg \
mncc \
+ csd \
$(NULL)
if BUILD_SMPP
diff --git a/tests/csd/Makefile.am b/tests/csd/Makefile.am
new file mode 100644
index 000000000..581f7d402
--- /dev/null
+++ b/tests/csd/Makefile.am
@@ -0,0 +1,37 @@
+AM_CPPFLAGS = \
+ $(all_includes) \
+ -I$(top_srcdir)/include \
+ $(NULL)
+
+AM_CFLAGS = \
+ -Wall \
+ -ggdb3 \
+ $(LIBOSMOCORE_CFLAGS) \
+ $(NULL)
+
+AM_LDFLAGS = \
+ $(COVERAGE_LDFLAGS) \
+ -no-install \
+ $(NULL)
+
+LDADD = \
+ $(top_builddir)/src/libmsc/libmsc.a \
+ $(LIBOSMOCORE_LIBS) \
+ $(NULL)
+
+EXTRA_DIST = \
+ csd_test.ok \
+ csd_test.err \
+ $(NULL)
+
+check_PROGRAMS = \
+ csd_test \
+ $(NULL)
+
+csd_test_SOURCES = \
+ csd_test.c \
+ $(NULL)
+
+.PHONY: update_exp
+update_exp:
+ $(builddir)/csd_test >$(srcdir)/csd_test.ok 2>$(srcdir)/csd_test.err
diff --git a/tests/csd/csd_test.c b/tests/csd/csd_test.c
new file mode 100644
index 000000000..ad3b0daf4
--- /dev/null
+++ b/tests/csd/csd_test.c
@@ -0,0 +1,44 @@
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <osmocom/core/application.h>
+#include <osmocom/msc/csd_bs.h>
+#include <osmocom/msc/debug.h>
+
+void test_csd_bs_list_remove(void)
+{
+ struct csd_bs_list list = {
+ .count = 3,
+ .bs = {
+ CSD_BS_21_T_V110_0k3,
+ CSD_BS_22_T_V110_1k2,
+ CSD_BS_24_T_V110_2k4,
+ },
+ };
+
+ printf("=== %s ===\n", __func__);
+ printf("initial:\n");
+ printf(" %s\n", csd_bs_list_to_str(&list));
+
+ printf("removing BS25T (not in the list):\n");
+ csd_bs_list_remove(&list, CSD_BS_25_T_V110_4k8);
+ printf(" %s\n", csd_bs_list_to_str(&list));
+
+ printf("removing BS22T:\n");
+ csd_bs_list_remove(&list, CSD_BS_22_T_V110_1k2);
+ printf(" %s\n", csd_bs_list_to_str(&list));
+
+ printf("removing BS24T:\n");
+ csd_bs_list_remove(&list, CSD_BS_24_T_V110_2k4);
+ printf(" %s\n", csd_bs_list_to_str(&list));
+
+ printf("removing BS21T:\n");
+ csd_bs_list_remove(&list, CSD_BS_21_T_V110_0k3);
+ printf(" %s\n", csd_bs_list_to_str(&list));
+}
+
+int main(void)
+{
+ test_csd_bs_list_remove();
+ return 0;
+}
diff --git a/tests/csd/csd_test.err b/tests/csd/csd_test.err
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/csd/csd_test.err
diff --git a/tests/csd/csd_test.ok b/tests/csd/csd_test.ok
new file mode 100644
index 000000000..8ba59b3db
--- /dev/null
+++ b/tests/csd/csd_test.ok
@@ -0,0 +1,11 @@
+=== test_csd_bs_list_remove ===
+initial:
+ BS21T,BS22T,BS24T
+removing BS25T (not in the list):
+ BS21T,BS22T,BS24T
+removing BS22T:
+ BS21T,BS22T
+removing BS24T:
+ BS21T,BS22T
+removing BS21T:
+ BS21T
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 58855f817..fbf594b48 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -121,3 +121,10 @@ cat $abs_srcdir/mncc/mncc_test.ok > expout
cat $abs_srcdir/mncc/mncc_test.err > experr
AT_CHECK([$abs_top_builddir/tests/mncc/mncc_test], [], [expout], [experr])
AT_CLEANUP
+
+AT_SETUP([csd_test])
+AT_KEYWORDS([csd_test])
+cat $abs_srcdir/csd/csd_test.ok > expout
+cat $abs_srcdir/csd/csd_test.err > experr
+AT_CHECK([$abs_top_builddir/tests/csd/csd_test], [], [expout], [experr])
+AT_CLEANUP