From 9fbcb4517194592b87fb2ab6e6f7330922020447 Mon Sep 17 00:00:00 2001 From: Sukchan Lee Date: Tue, 6 Feb 2018 11:59:49 +0900 Subject: [PATCH] testsuite is added. (refer to libosmocom) --- .gitignore | 12 +++++++++++ configure.ac | 1 + src/app/context.c | 3 ++- test/Makefile.am | 44 +++++++++++++++++++++++++++++++++----- test/testsuite.at | 34 +++++++++++++++++++++++++++++ test/testutil.c | 4 ++-- test/volte/pcscf_fd_path.c | 2 -- test/volte/testutil.c | 4 ++-- 8 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 test/testsuite.at diff --git a/.gitignore b/.gitignore index a7fc8908f..45da84674 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *.la *.conf .deps +.dirstamp .libs # generated files @@ -33,6 +34,13 @@ Makefile Makefile.in m4 +# autotest +test/package.m4 +test/atconfig +test/testsuite +test/testsuite.dir/ +test/testsuite.log + # executables lib/core/test/testcore test/testvolte @@ -58,3 +66,7 @@ debian/nextepc-sgw debian/nextepc-pgw debian/nextepc-pcrf debian/nextepc-hss + +# webui +webui/.next/ +webui/node_modules/ diff --git a/configure.ac b/configure.ac index 6dfa853bb..2df9840e3 100644 --- a/configure.ac +++ b/configure.ac @@ -17,6 +17,7 @@ CORE_CONFIG_NICE(config.nice) dnl Must come before AM_INIT_AUTOMAKE. AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_TESTDIR(test) AM_INIT_AUTOMAKE([1.10 -Wall -Werror foreign subdir-objects]) # Where to generate output; srcdir location. diff --git a/src/app/context.c b/src/app/context.c index 161eb804c..a976b2790 100644 --- a/src/app/context.c +++ b/src/app/context.c @@ -58,7 +58,8 @@ status_t context_read_file() d_assert(config->path, return CORE_ERROR,); file = fopen(config->path, "rb"); - d_assert(file, return CORE_ERROR,); + d_assert(file, return CORE_ERROR, + "Failed to read configuration file `%s`", config->path); d_assert(yaml_parser_initialize(&parser), return CORE_ERROR,); yaml_parser_set_input_file(&parser, file); diff --git a/test/Makefile.am b/test/Makefile.am index a19cfef0e..3f978d1d4 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -12,9 +12,6 @@ testepc_SOURCES = \ security_test.c s1setup_test.c attach_test.c volte_test.c handover_test.c \ $(NULL) -check-local: testepc - ./testepc -f sample.conf - testvolte_SOURCES = \ abts.h abts.c testpacket.h testpacket.c \ volte/testutil.h volte/testutil.c \ @@ -50,7 +47,44 @@ DEFS = \ -DFD_EXT_DIR=\"$(abs_top_builddir)/lib/@FREEDIAMETER_DIR@/extensions\" \ $(NULL) -TESTS = testvolte +TESTSUITE = $(srcdir)/testsuite + +check-local: atconfig $(TESTSUITE) + $(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS) + +installcheck-local: atconfig $(TESTSUITE) + $(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir)' \ + $(TESTSUITEFLAGS) + +clean-local: + test ! -f '$(TESTSUITE)' || \ + $(SHELL) '$(TESTSUITE)' --clean + +AUTOM4TE = $(SHELL) $(top_srcdir)/build-aux/missing --run autom4te +AUTOTEST = $(AUTOM4TE) --language=autotest +$(TESTSUITE): $(srcdir)/testsuite.at $(srcdir)/package.m4 + $(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at + mv $@.tmp $@ + +# The `:;' works around a Bash 3.2 bug when the output is not writeable. +$(srcdir)/package.m4: $(top_srcdir)/configure.ac + :;{ \ + echo '# Signature of the current package.' && \ + echo 'm4_define([AT_PACKAGE_NAME],' && \ + echo ' [$(PACKAGE_NAME)])' && \ + echo 'm4_define([AT_PACKAGE_TARNAME],' && \ + echo ' [$(PACKAGE_TARNAME)])' && \ + echo 'm4_define([AT_PACKAGE_VERSION],' && \ + echo ' [$(PACKAGE_VERSION)])' && \ + echo 'm4_define([AT_PACKAGE_STRING],' && \ + echo ' [$(PACKAGE_STRING)])' && \ + echo 'm4_define([AT_PACKAGE_BUGREPORT],' && \ + echo ' [$(PACKAGE_BUGREPORT)])'; \ + echo 'm4_define([AT_PACKAGE_URL],' && \ + echo ' [$(PACKAGE_URL)])'; \ + } >'$(srcdir)/package.m4' + +EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) MAINTAINERCLEANFILES = Makefile.in -MOSTLYCLEANFILES = core *.stackdump testepc.log testepc.trs +MOSTLYCLEANFILES = core *.stackdump diff --git a/test/testsuite.at b/test/testsuite.at new file mode 100644 index 000000000..d52d99ddb --- /dev/null +++ b/test/testsuite.at @@ -0,0 +1,34 @@ +AT_INIT +AT_BANNER([NextEPC Amazing Tests.]) + + +AT_SETUP([basic]) +AT_KEYWORDS([basic]) +AT_CHECK_UNQUOTED( + [$abs_top_builddir/test/testepc -f $abs_top_builddir/test/sample.conf], + [0], [dnl + MongoDB URI : 'mongodb://localhost/nextepc' + Configuration : '$abs_top_builddir/test/sample.conf' +s1ap_message_test : SUCCESS +nas_message_test : SUCCESS +gtp_message_test : SUCCESS +security_test : SUCCESS +s1setup_test : SUCCESS +attach_test : SUCCESS +volte_test : SUCCESS +handover_test : SUCCESS +All tests passed. +]) +AT_CLEANUP + +AT_SETUP([volte]) +AT_KEYWORDS([volte]) +AT_CHECK_UNQUOTED( + [$abs_top_builddir/test/testvolte -f $abs_top_builddir/test/sample-volte.conf], + [0], [dnl + MongoDB URI : 'mongodb://localhost/nextepc' + Configuration : '$abs_top_builddir/test/sample-volte.conf' +volte_test : SUCCESS +All tests passed. +]) +AT_CLEANUP diff --git a/test/testutil.c b/test/testutil.c index 361951c2a..a037ad683 100644 --- a/test/testutil.c +++ b/test/testutil.c @@ -50,10 +50,10 @@ static void test_fd_logger_handler(enum fd_hook_type type, struct msg * msg, void test_terminate(void) { - d_trace_global_on(); - testpacket_final(); app_terminate(); + + d_trace_global_on(); core_terminate(); } diff --git a/test/volte/pcscf_fd_path.c b/test/volte/pcscf_fd_path.c index cfb0bb7fb..0f86f746a 100644 --- a/test/volte/pcscf_fd_path.c +++ b/test/volte/pcscf_fd_path.c @@ -902,8 +902,6 @@ void pcscf_fd_config() fd_config.cnf_flags.no_sctp = 1; fd_config.cnf_addr = "127.0.0.1"; - printf("%s\n", FD_EXT_DIR); - fd_config.ext[fd_config.num_of_ext].module = FD_EXT_DIR "/dbg_msg_dumps/.libs/dbg_msg_dumps.so"; fd_config.ext[fd_config.num_of_ext].conf = "0x8888"; diff --git a/test/volte/testutil.c b/test/volte/testutil.c index fbd5debf3..c8ad97765 100644 --- a/test/volte/testutil.c +++ b/test/volte/testutil.c @@ -49,11 +49,11 @@ static void test_fd_logger_handler(enum fd_hook_type type, struct msg * msg, void test_terminate(void) { - d_trace_global_on(); - pcscf_fd_final(); testpacket_final(); test_app_terminate(); + + d_trace_global_on(); core_terminate(); }