tests: Test gsmtap logging if write queue fills up

Change-Id: Id5ae0c4c3820a9ed59eaf4003d2c57b6bdfe3468
This commit is contained in:
Daniel Willmann 2023-11-03 21:19:03 +01:00
parent 7f2b22b5fc
commit 1cfce70c8f
4 changed files with 276 additions and 0 deletions

View File

@ -15,6 +15,7 @@ check_PROGRAMS = timer/timer_test sms/sms_test ussd/ussd_test \
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_test_SOURCES = logging/logging_test.c
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 @@ EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) \
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 @@ endif
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 \

View File

@ -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;
}

View File

@ -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)

View File

@ -201,6 +201,12 @@ cat $abs_srcdir/logging/logging_test.err > experr
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