Browse Source

Use init/exit functions in test suite

bel 8 years ago
parent
commit
9027887b38
4 changed files with 32 additions and 2 deletions
  1. 2 2
      include/civetweb.h
  2. 1 0
      test/CMakeLists.txt
  3. 20 0
      test/public_server.c
  4. 9 0
      test/timertest.c

+ 2 - 2
include/civetweb.h

@@ -58,14 +58,14 @@ extern "C" {
  *   initialized features
  *   0: error
  */
-unsigned mg_init_library(unsigned features);
+CIVETWEB_API unsigned mg_init_library(unsigned features);
 
 
 /* Un-initialize this library.
  * Return value:
  *   0: error
  */
-unsigned mg_exit_library(void);
+CIVETWEB_API unsigned mg_exit_library(void);
 
 
 struct mg_context;    /* Handle for the HTTP service itself */

+ 1 - 0
test/CMakeLists.txt

@@ -161,6 +161,7 @@ civetweb_add_test(PublicFunc "Aux functions")
 
 # Public API server tests
 civetweb_add_test(PublicServer "Check test environment")
+civetweb_add_test(PublicServer "Init library")
 civetweb_add_test(PublicServer "Start threads")
 civetweb_add_test(PublicServer "Start Stop HTTP Server")
 civetweb_add_test(PublicServer "Start Stop HTTPS Server")

+ 20 - 0
test/public_server.c

@@ -3547,12 +3547,22 @@ START_TEST(test_throttle)
 END_TEST
 
 
+START_TEST(test_init_library)
+{
+	unsigned f_avail = mg_check_feature(0xFF);
+	unsigned f_ret = mg_init_library(f_avail);
+	ck_assert_uint_eq(f_ret, f_avail);
+}
+END_TEST
+
+
 Suite *
 make_public_server_suite(void)
 {
 	Suite *const suite = suite_create("PublicServer");
 
 	TCase *const tcase_checktestenv = tcase_create("Check test environment");
+	TCase *const tcase_initlib = tcase_create("Init library");
 	TCase *const tcase_startthreads = tcase_create("Start threads");
 	TCase *const tcase_startstophttp = tcase_create("Start Stop HTTP Server");
 	TCase *const tcase_startstophttps = tcase_create("Start Stop HTTPS Server");
@@ -3569,6 +3579,10 @@ make_public_server_suite(void)
 	tcase_set_timeout(tcase_checktestenv, civetweb_min_test_timeout);
 	suite_add_tcase(suite, tcase_checktestenv);
 
+	tcase_add_test(tcase_initlib, test_init_library);
+	tcase_set_timeout(tcase_initlib, civetweb_min_test_timeout);
+	suite_add_tcase(suite, tcase_initlib);
+
 	tcase_add_test(tcase_startthreads, test_threading);
 	tcase_set_timeout(tcase_startthreads, civetweb_min_test_timeout);
 	suite_add_tcase(suite, tcase_startthreads);
@@ -3624,6 +3638,10 @@ static int chk_failed = 0;
 void
 MAIN_PUBLIC_SERVER(void)
 {
+	unsigned f_avail = mg_check_feature(0xFF);
+	unsigned f_ret = mg_init_library(f_avail);
+	ck_assert_uint_eq(f_ret, f_avail);
+
 	test_the_test_environment(0);
 	test_threading(0);
 
@@ -3638,6 +3656,8 @@ MAIN_PUBLIC_SERVER(void)
 	test_error_log_file(0);
 	test_throttle(0);
 
+	mg_exit_library();
+
 	printf("\nok: %i\nfailed: %i\n\n", chk_ok, chk_failed);
 }
 

+ 9 - 0
test/timertest.c

@@ -237,15 +237,24 @@ make_timertest_suite(void)
 void
 TIMER_PRIVATE(void)
 {
+	unsigned f_avail;
+	unsigned f_ret;
+
 #if defined(_WIN32)
 	WSADATA data;
 	WSAStartup(MAKEWORD(2, 2), &data);
 #endif
 
+	f_avail = mg_check_feature(0xFF);
+	f_ret = mg_init_library(f_avail);
+	ck_assert_uint_eq(f_ret, f_avail);
+
 	test_timer_cyclic(0);
 	test_timer_oneshot_by_timer_add(0);
 	test_timer_oneshot_by_callback_retval(0);
 
+	mg_exit_library();
+
 #if defined(_WIN32)
 	WSACleanup();
 #endif