From 2d8375bb12bd94995934b90056517fadf207c1b9 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Mon, 5 Jan 2015 15:06:38 +0200 Subject: [PATCH] Fix to bug 579: http://bugs.mariadb.com/show_bug.cgi?id=579 Added a header which contains the locations for the testing directory and its subfolders which enables the test to write into the right logfiles. Also added a calls to skygw_log_sync_all before assertions forcing all logs to be written to disk at the time the test might fail. --- server/core/test/CMakeLists.txt | 2 +- server/core/test/testservice.c | 18 +++++++++++++++++- server/test/maxscale_test.h.in | 12 ++++++------ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/server/core/test/CMakeLists.txt b/server/core/test/CMakeLists.txt index 0107f127d..b6bf9d25c 100644 --- a/server/core/test/CMakeLists.txt +++ b/server/core/test/CMakeLists.txt @@ -35,7 +35,7 @@ add_test(TestBuffer test_buffer) add_test(TestDCB test_dcb) add_test(TestModutil test_modutil) add_test(TestPoll test_poll) -add_test(TestService test_service) +add_test(TestService /bin/sh -c " MAXSCALE_HOME=${CMAKE_BINARY_DIR} && ${CMAKE_CURRENT_BINAR_DIR}/test_service") add_test(TestServer test_server) add_test(TestUsers test_users) add_test(TestAdminUsers test_adminusers) diff --git a/server/core/test/testservice.c b/server/core/test/testservice.c index 579bd617f..49f6d0e24 100644 --- a/server/core/test/testservice.c +++ b/server/core/test/testservice.c @@ -30,7 +30,7 @@ #include #include #include - +#include #include /** @@ -42,15 +42,27 @@ test1() { SERVICE *service; int result; +int argc = 3; +char buffer[1024]; +sprintf(buffer,"%s",TEST_LOG_DIR); +char* argv[] = { + "log_manager", + "-j", + buffer, + NULL +}; +skygw_logmanager_init(argc,argv); /* Service tests */ ss_dfprintf(stderr, "testservice : creating service called MyService with router nonexistent"); service = service_alloc("MyService", "non-existent"); + skygw_log_sync_all(); ss_info_dassert(NULL == service, "New service with invalid router should be null"); ss_info_dassert(0 == service_isvalid(service), "Service must not be valid after incorrect creation"); ss_dfprintf(stderr, "\t..done\nValid service creation, router testroute."); service = service_alloc("MyService", "testroute"); + skygw_log_sync_all(); ss_info_dassert(NULL != service, "New service with valid router must not be null"); ss_info_dassert(0 != service_isvalid(service), "Service must be valid after creation"); ss_info_dassert(0 == strcmp("MyService", service_get_name(service)), "Service must have given name"); @@ -58,12 +70,16 @@ int result; ss_info_dassert(0 != serviceAddProtocol(service, "HTTPD", "localhost", 9876), "Add Protocol should succeed"); ss_info_dassert(0 != serviceHasProtocol(service, "HTTPD", 9876), "Service should have new protocol as requested"); serviceStartProtocol(service, "HTTPD", 9876); + skygw_log_sync_all(); ss_dfprintf(stderr, "\t..done\nStarting Service."); result = serviceStart(service); + skygw_log_sync_all(); ss_info_dassert(0 != result, "Start should succeed"); result = serviceStop(service); + skygw_log_sync_all(); ss_info_dassert(0 != result, "Stop should succeed"); result = serviceStartAll(); + skygw_log_sync_all(); ss_info_dassert(0 != result, "Start all should succeed"); ss_dfprintf(stderr, "\t..done\nStopping Service."); diff --git a/server/test/maxscale_test.h.in b/server/test/maxscale_test.h.in index 7199dad79..d41ff181f 100644 --- a/server/test/maxscale_test.h.in +++ b/server/test/maxscale_test.h.in @@ -1,9 +1,9 @@ #ifndef MAXSCALE_TEST_H #define MAXSCALE_TEST_H -#define TEST_DIR ${CMAKE_BINARY_DIR} -#define TEST_LOG_DIR ${CMAKE_BINARY_DIR}/log -#define TEST_BIN_DIR ${CMAKE_BINARY_DIR}/bin -#define TEST_MOD_DIR ${CMAKE_BINARY_DIR}/modules -#define TEST_LIB_DIR ${CMAKE_BINARY_DIR}/lib -#define TEST_ETC_DIR ${CMAKE_BINARY_DIR}/etc +#define TEST_DIR "${CMAKE_BINARY_DIR}" +#define TEST_LOG_DIR "${CMAKE_BINARY_DIR}/log" +#define TEST_BIN_DIR "${CMAKE_BINARY_DIR}/bin" +#define TEST_MOD_DIR "${CMAKE_BINARY_DIR}/modules" +#define TEST_LIB_DIR "${CMAKE_BINARY_DIR}/lib" +#define TEST_ETC_DIR "${CMAKE_BINARY_DIR}/etc" #endif