daniel submitted this change.

View Change


Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve
tests: Test gsmtap logging if write queue fills up

Change-Id: Id5ae0c4c3820a9ed59eaf4003d2c57b6bdfe3468
---
M tests/Makefile.am
A tests/logging/logging_test_gsmtap.c
A tests/logging/logging_test_gsmtap.err
M tests/testsuite.at
4 files changed, 285 insertions(+), 0 deletions(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index d4bfe26..4eac635 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -15,6 +15,7 @@
gsm0808/gsm0808_test gsm0408/gsm0408_test \
gprs/gprs_test kasumi/kasumi_test gea/gea_test \
logging/logging_test codec/codec_test \
+ logging/logging_test_gsmtap \
loggingrb/loggingrb_test strrb/strrb_test \
comp128/comp128_test \
bitvec/bitvec_test msgb/msgb_test bits/bitcomp_test \
@@ -242,6 +243,8 @@
logging_logging_vty_test_SOURCES = logging/logging_vty_test.c
logging_logging_vty_test_LDADD = $(top_builddir)/src/vty/libosmovty.la $(LDADD)

+logging_logging_test_gsmtap_SOURCES = logging/logging_test_gsmtap.c
+
vty_vty_transcript_test_SOURCES = vty/vty_transcript_test.c
vty_vty_transcript_test_LDADD = $(top_builddir)/src/vty/libosmovty.la $(LDADD)

@@ -419,6 +422,7 @@
msgfile/msgfile_test.ok msgfile/msgconfig.cfg \
logging/logging_test.ok logging/logging_test.err \
logging/logging_vty_test.vty \
+ logging/logging_test_gsmtap.err \
fr/fr_test.ok loggingrb/logging_test.ok \
loggingrb/logging_test.err strrb/strrb_test.ok \
codec/codec_test.ok \
@@ -574,6 +578,8 @@
logging/logging_test \
>$(srcdir)/logging/logging_test.ok \
2>$(srcdir)/logging/logging_test.err
+ logging/logging_test_gsmtap \
+ 2>&1 |grep -v "enqueueing message failed" >$(srcdir)/logging/logging_test_gsmtap.err
codec/codec_test \
>$(srcdir)/codec/codec_test.ok
codec/codec_ecu_fr_test \
diff --git a/tests/logging/logging_test_gsmtap.c b/tests/logging/logging_test_gsmtap.c
new file mode 100644
index 0000000..5ede5a4
--- /dev/null
+++ b/tests/logging/logging_test_gsmtap.c
@@ -0,0 +1,64 @@
+/* simple test for gsmtap logging */
+/*
+ * (C) 2023 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
+ * All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <osmocom/core/select.h>
+#include <osmocom/core/logging.h>
+#include <osmocom/core/utils.h>
+
+#include <stdlib.h>
+
+static const struct log_info_cat default_categories[] = {};
+
+const struct log_info log_info = {
+ .cat = default_categories,
+ .num_cat = ARRAY_SIZE(default_categories),
+};
+
+extern struct log_info *osmo_log_info;
+
+int main(int argc, char **argv)
+{
+ struct log_target *stderr_target;
+ struct log_target *gsmtap_target;
+
+ log_init(&log_info, NULL);
+ stderr_target = log_target_create_stderr();
+ log_add_target(stderr_target);
+ log_set_all_filter(stderr_target, 1);
+ log_set_print_filename2(stderr_target, LOG_FILENAME_NONE);
+ log_set_print_category_hex(stderr_target, 0);
+ log_set_print_category(stderr_target, 1);
+ log_set_use_color(stderr_target, 0);
+ log_parse_category_mask(stderr_target, "DLGLOBAL,1");
+
+ gsmtap_target = log_target_create_gsmtap("127.0.0.2", 4729, "gsmtap", 1, 1);
+ log_add_target(gsmtap_target);
+ log_set_all_filter(gsmtap_target, 1);
+ log_parse_category_mask(gsmtap_target, "DLGLOBAL,1");
+
+ log_target_file_switch_to_stream(stderr_target);
+
+ log_set_category_filter(stderr_target, DLIO, 1, LOGL_DEBUG);
+
+ for (int i = 0; i < 200; i++)
+ DEBUGP(DLGLOBAL, "Repeating message (i = %d)\n", i);
+
+ for (int i = 0; i < 200; i++)
+ osmo_select_main(1);
+
+ return 0;
+}
diff --git a/tests/logging/logging_test_gsmtap.err b/tests/logging/logging_test_gsmtap.err
new file mode 100644
index 0000000..92016ab
--- /dev/null
+++ b/tests/logging/logging_test_gsmtap.err
@@ -0,0 +1,200 @@
+DLGLOBAL Repeating message (i = 0)
+DLGLOBAL Repeating message (i = 1)
+DLGLOBAL Repeating message (i = 2)
+DLGLOBAL Repeating message (i = 3)
+DLGLOBAL Repeating message (i = 4)
+DLGLOBAL Repeating message (i = 5)
+DLGLOBAL Repeating message (i = 6)
+DLGLOBAL Repeating message (i = 7)
+DLGLOBAL Repeating message (i = 8)
+DLGLOBAL Repeating message (i = 9)
+DLGLOBAL Repeating message (i = 10)
+DLGLOBAL Repeating message (i = 11)
+DLGLOBAL Repeating message (i = 12)
+DLGLOBAL Repeating message (i = 13)
+DLGLOBAL Repeating message (i = 14)
+DLGLOBAL Repeating message (i = 15)
+DLGLOBAL Repeating message (i = 16)
+DLGLOBAL Repeating message (i = 17)
+DLGLOBAL Repeating message (i = 18)
+DLGLOBAL Repeating message (i = 19)
+DLGLOBAL Repeating message (i = 20)
+DLGLOBAL Repeating message (i = 21)
+DLGLOBAL Repeating message (i = 22)
+DLGLOBAL Repeating message (i = 23)
+DLGLOBAL Repeating message (i = 24)
+DLGLOBAL Repeating message (i = 25)
+DLGLOBAL Repeating message (i = 26)
+DLGLOBAL Repeating message (i = 27)
+DLGLOBAL Repeating message (i = 28)
+DLGLOBAL Repeating message (i = 29)
+DLGLOBAL Repeating message (i = 30)
+DLGLOBAL Repeating message (i = 31)
+DLGLOBAL Repeating message (i = 32)
+DLGLOBAL Repeating message (i = 33)
+DLGLOBAL Repeating message (i = 34)
+DLGLOBAL Repeating message (i = 35)
+DLGLOBAL Repeating message (i = 36)
+DLGLOBAL Repeating message (i = 37)
+DLGLOBAL Repeating message (i = 38)
+DLGLOBAL Repeating message (i = 39)
+DLGLOBAL Repeating message (i = 40)
+DLGLOBAL Repeating message (i = 41)
+DLGLOBAL Repeating message (i = 42)
+DLGLOBAL Repeating message (i = 43)
+DLGLOBAL Repeating message (i = 44)
+DLGLOBAL Repeating message (i = 45)
+DLGLOBAL Repeating message (i = 46)
+DLGLOBAL Repeating message (i = 47)
+DLGLOBAL Repeating message (i = 48)
+DLGLOBAL Repeating message (i = 49)
+DLGLOBAL Repeating message (i = 50)
+DLGLOBAL Repeating message (i = 51)
+DLGLOBAL Repeating message (i = 52)
+DLGLOBAL Repeating message (i = 53)
+DLGLOBAL Repeating message (i = 54)
+DLGLOBAL Repeating message (i = 55)
+DLGLOBAL Repeating message (i = 56)
+DLGLOBAL Repeating message (i = 57)
+DLGLOBAL Repeating message (i = 58)
+DLGLOBAL Repeating message (i = 59)
+DLGLOBAL Repeating message (i = 60)
+DLGLOBAL Repeating message (i = 61)
+DLGLOBAL Repeating message (i = 62)
+DLGLOBAL Repeating message (i = 63)
+DLGLOBAL Repeating message (i = 64)
+DLGLOBAL Repeating message (i = 65)
+DLGLOBAL Repeating message (i = 66)
+DLGLOBAL Repeating message (i = 67)
+DLGLOBAL Repeating message (i = 68)
+DLGLOBAL Repeating message (i = 69)
+DLGLOBAL Repeating message (i = 70)
+DLGLOBAL Repeating message (i = 71)
+DLGLOBAL Repeating message (i = 72)
+DLGLOBAL Repeating message (i = 73)
+DLGLOBAL Repeating message (i = 74)
+DLGLOBAL Repeating message (i = 75)
+DLGLOBAL Repeating message (i = 76)
+DLGLOBAL Repeating message (i = 77)
+DLGLOBAL Repeating message (i = 78)
+DLGLOBAL Repeating message (i = 79)
+DLGLOBAL Repeating message (i = 80)
+DLGLOBAL Repeating message (i = 81)
+DLGLOBAL Repeating message (i = 82)
+DLGLOBAL Repeating message (i = 83)
+DLGLOBAL Repeating message (i = 84)
+DLGLOBAL Repeating message (i = 85)
+DLGLOBAL Repeating message (i = 86)
+DLGLOBAL Repeating message (i = 87)
+DLGLOBAL Repeating message (i = 88)
+DLGLOBAL Repeating message (i = 89)
+DLGLOBAL Repeating message (i = 90)
+DLGLOBAL Repeating message (i = 91)
+DLGLOBAL Repeating message (i = 92)
+DLGLOBAL Repeating message (i = 93)
+DLGLOBAL Repeating message (i = 94)
+DLGLOBAL Repeating message (i = 95)
+DLGLOBAL Repeating message (i = 96)
+DLGLOBAL Repeating message (i = 97)
+DLGLOBAL Repeating message (i = 98)
+DLGLOBAL Repeating message (i = 99)
+DLGLOBAL Repeating message (i = 100)
+DLGLOBAL Repeating message (i = 101)
+DLGLOBAL Repeating message (i = 102)
+DLGLOBAL Repeating message (i = 103)
+DLGLOBAL Repeating message (i = 104)
+DLGLOBAL Repeating message (i = 105)
+DLGLOBAL Repeating message (i = 106)
+DLGLOBAL Repeating message (i = 107)
+DLGLOBAL Repeating message (i = 108)
+DLGLOBAL Repeating message (i = 109)
+DLGLOBAL Repeating message (i = 110)
+DLGLOBAL Repeating message (i = 111)
+DLGLOBAL Repeating message (i = 112)
+DLGLOBAL Repeating message (i = 113)
+DLGLOBAL Repeating message (i = 114)
+DLGLOBAL Repeating message (i = 115)
+DLGLOBAL Repeating message (i = 116)
+DLGLOBAL Repeating message (i = 117)
+DLGLOBAL Repeating message (i = 118)
+DLGLOBAL Repeating message (i = 119)
+DLGLOBAL Repeating message (i = 120)
+DLGLOBAL Repeating message (i = 121)
+DLGLOBAL Repeating message (i = 122)
+DLGLOBAL Repeating message (i = 123)
+DLGLOBAL Repeating message (i = 124)
+DLGLOBAL Repeating message (i = 125)
+DLGLOBAL Repeating message (i = 126)
+DLGLOBAL Repeating message (i = 127)
+DLGLOBAL Repeating message (i = 128)
+DLGLOBAL Repeating message (i = 129)
+DLGLOBAL Repeating message (i = 130)
+DLGLOBAL Repeating message (i = 131)
+DLGLOBAL Repeating message (i = 132)
+DLGLOBAL Repeating message (i = 133)
+DLGLOBAL Repeating message (i = 134)
+DLGLOBAL Repeating message (i = 135)
+DLGLOBAL Repeating message (i = 136)
+DLGLOBAL Repeating message (i = 137)
+DLGLOBAL Repeating message (i = 138)
+DLGLOBAL Repeating message (i = 139)
+DLGLOBAL Repeating message (i = 140)
+DLGLOBAL Repeating message (i = 141)
+DLGLOBAL Repeating message (i = 142)
+DLGLOBAL Repeating message (i = 143)
+DLGLOBAL Repeating message (i = 144)
+DLGLOBAL Repeating message (i = 145)
+DLGLOBAL Repeating message (i = 146)
+DLGLOBAL Repeating message (i = 147)
+DLGLOBAL Repeating message (i = 148)
+DLGLOBAL Repeating message (i = 149)
+DLGLOBAL Repeating message (i = 150)
+DLGLOBAL Repeating message (i = 151)
+DLGLOBAL Repeating message (i = 152)
+DLGLOBAL Repeating message (i = 153)
+DLGLOBAL Repeating message (i = 154)
+DLGLOBAL Repeating message (i = 155)
+DLGLOBAL Repeating message (i = 156)
+DLGLOBAL Repeating message (i = 157)
+DLGLOBAL Repeating message (i = 158)
+DLGLOBAL Repeating message (i = 159)
+DLGLOBAL Repeating message (i = 160)
+DLGLOBAL Repeating message (i = 161)
+DLGLOBAL Repeating message (i = 162)
+DLGLOBAL Repeating message (i = 163)
+DLGLOBAL Repeating message (i = 164)
+DLGLOBAL Repeating message (i = 165)
+DLGLOBAL Repeating message (i = 166)
+DLGLOBAL Repeating message (i = 167)
+DLGLOBAL Repeating message (i = 168)
+DLGLOBAL Repeating message (i = 169)
+DLGLOBAL Repeating message (i = 170)
+DLGLOBAL Repeating message (i = 171)
+DLGLOBAL Repeating message (i = 172)
+DLGLOBAL Repeating message (i = 173)
+DLGLOBAL Repeating message (i = 174)
+DLGLOBAL Repeating message (i = 175)
+DLGLOBAL Repeating message (i = 176)
+DLGLOBAL Repeating message (i = 177)
+DLGLOBAL Repeating message (i = 178)
+DLGLOBAL Repeating message (i = 179)
+DLGLOBAL Repeating message (i = 180)
+DLGLOBAL Repeating message (i = 181)
+DLGLOBAL Repeating message (i = 182)
+DLGLOBAL Repeating message (i = 183)
+DLGLOBAL Repeating message (i = 184)
+DLGLOBAL Repeating message (i = 185)
+DLGLOBAL Repeating message (i = 186)
+DLGLOBAL Repeating message (i = 187)
+DLGLOBAL Repeating message (i = 188)
+DLGLOBAL Repeating message (i = 189)
+DLGLOBAL Repeating message (i = 190)
+DLGLOBAL Repeating message (i = 191)
+DLGLOBAL Repeating message (i = 192)
+DLGLOBAL Repeating message (i = 193)
+DLGLOBAL Repeating message (i = 194)
+DLGLOBAL Repeating message (i = 195)
+DLGLOBAL Repeating message (i = 196)
+DLGLOBAL Repeating message (i = 197)
+DLGLOBAL Repeating message (i = 198)
+DLGLOBAL Repeating message (i = 199)
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 64ebedf..b525928 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -201,6 +201,12 @@
AT_CHECK([$abs_top_builddir/tests/logging/logging_test wqueue], [0], [expout], [experr])
AT_CLEANUP

+AT_SETUP([logging_gsmtap])
+AT_KEYWORDS([logging_gsmtap])
+cat $abs_srcdir/logging/logging_test_gsmtap.err > experr
+AT_CHECK([$abs_top_builddir/tests/logging/logging_test_gsmtap 3>&1 1>&2 2>&3 |grep -v "enqueueing message failed" 3>&1 1>&2 2>&3 ], [], [ignore], [experr])
+AT_CLEANUP
+
AT_SETUP([codec])
AT_KEYWORDS([codec])
cat $abs_srcdir/codec/codec_test.ok > expout

To view, visit change 34967. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Id5ae0c4c3820a9ed59eaf4003d2c57b6bdfe3468
Gerrit-Change-Number: 34967
Gerrit-PatchSet: 5
Gerrit-Owner: daniel <dwillmann@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: arehbein <arehbein@sysmocom.de>
Gerrit-Reviewer: daniel <dwillmann@sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>
Gerrit-MessageType: merged