daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/34967?usp=email )
Change subject: tests: Test gsmtap logging if write queue fills up ......................................................................
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, 419 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/67/34967/1
diff --git a/tests/Makefile.am b/tests/Makefile.am index 5f4914e..8c8e370 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 \ diff --git a/tests/logging/logging_test_gsmtap.c b/tests/logging/logging_test_gsmtap.c new file mode 100644 index 0000000..f84cdce --- /dev/null +++ b/tests/logging/logging_test_gsmtap.c @@ -0,0 +1,66 @@ +/* simple test for the debug interface */ +/* + * (C) 2008, 2009 by Holger Hans Peter Freyther zecke@selfish.org + * 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, DLGLOBAL, 1, LOGL_DEBUG); + + for (int i = 0; i < 200; i++) { + DEBUGP(DLGLOBAL, "Repeating message (i = %i)\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..dcba5cf --- /dev/null +++ b/tests/logging/logging_test_gsmtap.err @@ -0,0 +1,336 @@ +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 wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 65) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 66) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 67) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 68) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 69) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 70) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 71) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 72) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 73) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 74) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 75) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 76) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 77) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 78) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 79) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 80) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 81) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 82) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 83) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 84) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 85) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 86) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 87) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 88) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 89) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 90) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 91) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 92) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 93) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 94) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 95) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 96) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 97) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 98) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 99) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 100) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 101) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 102) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 103) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 104) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 105) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 106) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 107) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 108) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 109) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 110) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 111) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 112) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 113) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 114) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 115) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 116) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 117) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 118) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 119) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 120) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 121) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 122) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 123) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 124) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 125) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 126) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 127) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 128) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 129) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 130) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 131) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 132) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 133) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 134) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 135) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 136) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 137) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 138) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 139) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 140) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 141) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 142) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 143) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 144) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 145) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 146) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 147) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 148) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 149) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 150) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 151) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 152) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 153) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 154) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 155) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 156) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 157) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 158) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 159) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 160) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 161) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 162) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 163) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 164) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 165) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 166) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 167) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 168) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 169) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 170) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 171) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 172) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 173) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 174) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 175) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 176) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 177) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 178) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 179) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 180) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 181) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 182) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 183) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 184) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 185) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 186) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 187) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 188) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 189) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 190) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 191) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 192) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 193) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 194) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 195) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 196) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 197) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 198) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb +DLGLOBAL Repeating message (i = 199) +DLGLOBAL wqueue(0x611000000328) is full. Rejecting msgb diff --git a/tests/testsuite.at b/tests/testsuite.at index 3366995..20e9d03 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -201,6 +201,13 @@ 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.ok > expout +cat $abs_srcdir/logging/logging_test_gsmtap.err > experr +AT_CHECK([$abs_top_builddir/tests/logging/logging_test_gsmtap], [0], [expout], [experr]) +AT_CLEANUP + AT_SETUP([codec]) AT_KEYWORDS([codec]) cat $abs_srcdir/codec/codec_test.ok > expout