using namespace libtest;
+static std::string testing_service;
+
static test_return_t LIBTOOL_COMMAND_test(void *)
{
test_true(getenv("LIBTOOL_COMMAND"));
static test_return_t var_tmp_test(void *)
{
FILE *file= fopen("var/tmp/junk", "w+");
- char buffer[1024];
- const char *dir= getcwd(buffer, sizeof(buffer));
- test_true_got(file, dir);
+ test_true(file);
fclose(file);
return TEST_SUCCESS;
}
test_true(servers and servers->validate());
#if defined(HAVE_GEARMAND_BINARY) && HAVE_GEARMAND_BINARY
- test_true(has_drizzled_binary());
+ test_true(has_drizzled());
#endif
- test_skip(true, has_drizzled_binary());
+ test_skip(true, has_drizzled());
test_true(server_startup(*servers, "drizzled", get_free_port(), 0, NULL));
test_true(servers and servers->validate());
#if defined(HAVE_GEARMAND_BINARY) && HAVE_GEARMAND_BINARY
- test_true(has_gearmand_binary());
+ test_true(has_gearmand());
#endif
- test_skip(true, has_gearmand_binary());
+ test_skip(true, has_gearmand());
test_true(server_startup(*servers, "gearmand", get_free_port(), 0, NULL));
return TEST_SUCCESS;
}
-static test_return_t memcached_cycle_test(void *object)
+static test_return_t server_startup_TEST(void *object)
{
server_startup_st *servers= (server_startup_st*)object;
test_true(servers);
- if (MEMCACHED_BINARY and HAVE_LIBMEMCACHED)
- {
- test_true(has_memcached_binary());
- test_true(server_startup(*servers, "memcached", get_free_port(), 0, NULL));
+ test_true(servers->start_server(testing_service, get_free_port(), 0, NULL, true));
- return TEST_SUCCESS;
- }
+ test_true(servers->last());
+ pid_t last_pid= servers->last()->pid();
- return TEST_SKIPPED;
+ test_compare(servers->last()->pid(), last_pid);
+ test_true(last_pid > 1);
+ test_compare(kill(last_pid, 0), 0);
+
+ test_true(servers->shutdown());
+#if 0
+ test_compare(servers->last()->pid(), -1);
+ test_compare(kill(last_pid, 0), -1);
+#endif
+
+ return TEST_SUCCESS;
}
-static test_return_t memcached_socket_cycle_test(void *object)
+static test_return_t socket_server_startup_TEST(void *object)
{
server_startup_st *servers= (server_startup_st*)object;
test_true(servers);
- if (MEMCACHED_BINARY)
- {
- if (HAVE_LIBMEMCACHED)
- {
- test_true(has_memcached_binary());
- test_true(servers->start_socket_server("memcached", get_free_port(), 0, NULL));
+ test_true(servers->start_socket_server(testing_service, get_free_port(), 0, NULL, true));
- return TEST_SUCCESS;
- }
- }
-
- return TEST_SKIPPED;
+ return TEST_SUCCESS;
}
static test_return_t memcached_sasl_test(void *object)
{
if (HAVE_LIBMEMCACHED)
{
- test_true(has_memcached_sasl_binary());
+ test_true(has_memcached_sasl());
test_true(server_startup(*servers, "memcached-sasl", get_free_port(), 0, NULL));
return TEST_SUCCESS;
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((ret_port= get_free_port()));
test_true(get_free_port() != default_port());
test_true(get_free_port() != get_free_port());
return TEST_SUCCESS;
}
+static test_return_t check_dns_TEST(void *)
+{
+ test_warn(libtest::check_dns(), "Broken DNS server/no DNS server found");
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t Timer_TEST(void *)
+{
+ int64_t minutes= random() % 50;
+ minutes++;
+
+ Timer check;
+
+ check.reset();
+ check.offset(minutes, 2, 200);
+
+ test_compare(check.minutes(), minutes);
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t lookup_true_TEST(void *)
+{
+ test_warn(libtest::lookup("exist.gearman.info"), "dns is not currently working");
+ return TEST_SUCCESS;
+}
+
+static test_return_t lookup_false_TEST(void *)
+{
+ if (libtest::lookup("does_not_exist.gearman.info"))
+ {
+ Error << "Broken DNS server detected";
+ return TEST_SKIPPED;
+ }
+
+ return TEST_SUCCESS;
+}
+
static test_return_t create_tmpfile_TEST(void *)
{
std::string tmp= create_tmpfile(__func__);
test_compare(Application::SUCCESS, touch_app.run(args));
test_compare(Application::SUCCESS, touch_app.wait(false));
- test_compare_hint(0, access(tmp.c_str(), R_OK), strerror(errno));
- test_compare_hint(0, unlink(tmp.c_str()), strerror(errno));
+ test_compare(0, access(tmp.c_str(), R_OK));
+ test_compare(0, unlink(tmp.c_str()));
return TEST_SUCCESS;
}
static test_return_t check_for_gearman(void *)
{
test_skip(true, HAVE_LIBGEARMAN);
- test_skip(true, has_gearmand_binary());
+ test_skip(true, has_gearmand());
return TEST_SUCCESS;
}
static test_return_t check_for_drizzle(void *)
{
test_skip(true, HAVE_LIBDRIZZLE);
- test_skip(true, has_drizzled_binary());
+ test_skip(true, has_drizzled());
return TEST_SUCCESS;
}
{0, 0, 0}
};
-static test_return_t check_for_libmemcached(void *)
+static test_return_t check_for_libmemcached(void* object)
{
test_skip(true, HAVE_LIBMEMCACHED);
- test_skip(true, has_memcached_binary());
+ test_skip(true, has_memcached());
+
+ server_startup_st *servers= (server_startup_st*)object;
+ test_true(servers);
+ servers->clear();
+
+ testing_service= "memcached";
+
return TEST_SUCCESS;
}
-test_st memcached_tests[] ={
- {"memcached startup-shutdown", 0, memcached_cycle_test },
- {"memcached-light startup-shutdown", 0, memcached_light_cycle_TEST },
- {"memcached(socket file) startup-shutdown", 0, memcached_socket_cycle_test },
- {"memcached_sasl() startup-shutdown", 0, memcached_sasl_test },
+test_st memcached_TESTS[] ={
+ {"memcached startup-shutdown", 0, server_startup_TEST },
+ {"memcached(socket file) startup-shutdown", 0, socket_server_startup_TEST },
{"_compare(memcached_return_t)", 0, _compare_memcached_return_t_test },
{0, 0, 0}
};
{0, 0, 0}
};
+test_st timer_TESTS[] ={
+ {"libtest::Timer", 0, Timer_TEST },
+ {0, 0, 0}
+};
+
+test_st dns_TESTS[] ={
+ {"libtest::lookup(true)", 0, lookup_true_TEST },
+ {"libtest::lookup(false)", 0, lookup_false_TEST },
+ {"libtest::check_dns()", 0, check_dns_TEST },
+ {0, 0, 0}
+};
+
test_st application_tests[] ={
{"vchar_t", 0, vchar_t_TEST },
{"vchar_t compare()", 0, vchar_t_compare_neg_TEST },
{"directories", 0, 0, directories_tests},
{"comparison", 0, 0, comparison_tests},
{"gearmand", check_for_gearman, 0, gearmand_tests},
- {"memcached", check_for_libmemcached, 0, memcached_tests},
+ {"memcached", check_for_libmemcached, 0, memcached_TESTS },
{"drizzled", check_for_drizzle, 0, drizzled_tests},
{"cmdline", 0, 0, cmdline_tests},
{"application", 0, 0, application_tests},
{"fatal", disable_fatal_exception, enable_fatal_exception, fatal_message_TESTS },
{"number_of_cpus()", 0, 0, number_of_cpus_TESTS },
{"create_tmpfile()", 0, 0, create_tmpfile_TESTS },
+ {"dns", 0, 0, dns_TESTS },
+ {"libtest::Timer", 0, 0, timer_TESTS },
{0, 0, 0, 0}
};