Add an exception class for tossing resource error.
[m6w6/libmemcached] / libtest / unittest.cc
index 21dcbc74416bbc3d044ca8e7ef486bbc3be2e907..484b444393d5e0adeb254c597a26966999eed95c 100644 (file)
@@ -510,6 +510,36 @@ static test_return_t get_free_port_TEST(void *)
 {
   in_port_t ret_port;
   test_true_hint((ret_port= get_free_port()), ret_port);
+  test_true(get_free_port() != default_port());
+  test_true(get_free_port() != get_free_port());
+
+  return TEST_SUCCESS;
+}
+
+static uint32_t fatal_calls= 0;
+
+static test_return_t fatal_TEST(void *)
+{
+  test_compare(fatal_calls++, fatal::disabled_counter());
+  throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "Testing va_args based fatal(): %d", 10); 
+
+  return TEST_SUCCESS;
+}
+
+static test_return_t fatal_message_TEST(void *)
+{
+  test_compare(fatal_calls++, fatal::disabled_counter());
+  throw fatal_message("Fatal test");
+
+  return TEST_SUCCESS;
+}
+
+static test_return_t default_port_TEST(void *)
+{
+  in_port_t ret_port= default_port();
+  test_compare(ret_port, libtest::default_port());
+  test_compare(ret_port, libtest::default_port());
+
   return TEST_SUCCESS;
 }
 
@@ -599,6 +629,13 @@ test_st cmdline_tests[] ={
 
 test_st get_free_port_TESTS[] ={
   {"get_free_port()", 0, get_free_port_TEST },
+  {"default_port()", 0, default_port_TEST },
+  {0, 0, 0}
+};
+
+test_st fatal_message_TESTS[] ={
+  {"libtest::fatal", 0, fatal_TEST },
+  {"fatal_message()", 0, fatal_message_TEST },
   {0, 0, 0}
 };
 
@@ -619,6 +656,18 @@ static test_return_t check_for_curl(void *)
   return TEST_SUCCESS;
 }
 
+static test_return_t disable_fatal_exception(void *)
+{
+  fatal::disable();
+  return TEST_SUCCESS;
+}
+
+static test_return_t enable_fatal_exception(void *)
+{
+  fatal::disable();
+  return TEST_SUCCESS;
+}
+
 test_st http_tests[] ={
   {"GET", 0, GET_TEST },
   {"POST", 0, POST_TEST },
@@ -637,7 +686,8 @@ collection_st collection[] ={
   {"cmdline", 0, 0, cmdline_tests},
   {"application", 0, 0, application_tests},
   {"http", check_for_curl, 0, http_tests},
-  {"get_free_port()", 0, 0, get_free_port_TESTS},
+  {"get_free_port()", 0, 0, get_free_port_TESTS },
+  {"fatal", disable_fatal_exception, enable_fatal_exception, fatal_message_TESTS },
   {0, 0, 0, 0}
 };