X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ffailure.cc;h=64b2fa7f98d6b43831642ee9a79f3506cc82b204;hb=bb98ce33936edc0dc914652c0227f95727518b16;hp=95c8fb6ad8cfb8f482414a8b8d6afeb682547427;hpb=25efe3485198149616820ab4e52d2f18f0abe5a7;p=awesomized%2Flibmemcached diff --git a/tests/failure.cc b/tests/failure.cc index 95c8fb6a..64b2fa7f 100644 --- a/tests/failure.cc +++ b/tests/failure.cc @@ -34,7 +34,7 @@ * */ -#include +#include /* C++ interface test @@ -59,33 +59,30 @@ using namespace std; using namespace memcache; using namespace libtest; -Framework *global_framework= NULL; +libtest::Framework *global_framework= NULL; static test_return_t shutdown_servers(memcached_st *memc) { - test_skip_valgrind(); - test_compare(memcached_server_count(memc), 1U); // Disable a single server, just the first - global_framework->servers().shutdown(0); + test_true(global_framework->servers().shutdown(0)); return TEST_SUCCESS; } static test_return_t add_shutdown_servers(memcached_st *memc) { - test_skip_valgrind(); - while (memcached_server_count(memc) < 2) { - const char *argv[1]= { "add_shutdown_server" }; - test_true(global_framework->servers().start_socket_server("memcached", libtest::default_port(), 1, argv)); - test_compare(MEMCACHED_SUCCESS, memcached_server_add(memc, "localhost", libtest::default_port())); + const char *argv[2]= { "add_shutdown_server", NULL }; + in_port_t port = libtest::default_port(); + test_true(global_framework->servers().start_socket_server("memcached", port, argv)); + test_compare(MEMCACHED_SUCCESS, memcached_server_add(memc, "localhost", port)); } // Disable a single server, just the first - global_framework->servers().shutdown(0); + test_true(global_framework->servers().shutdown(0)); return TEST_SUCCESS; } @@ -98,9 +95,11 @@ static test_return_t restart_servers(memcached_st *) return TEST_SUCCESS; } -#include "libmemcached/instance.h" +#include "libmemcached/instance.hpp" static test_return_t cull_TEST(memcached_st *memc) { + shutdown_servers(memc); + uint32_t count= memcached_server_count(memc); // Do not do this in your code, it is not supported. @@ -110,11 +109,13 @@ static test_return_t cull_TEST(memcached_st *memc) uint32_t new_count= memcached_server_count(memc); test_compare(count, new_count); - return TEST_SUCCESS; + return restart_servers(memc); } static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_TEST(memcached_st *memc) { + shutdown_servers(memc); + test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, 30)); test_compare_got(MEMCACHED_CONNECTION_FAILURE, memcached_set(memc, @@ -130,12 +131,12 @@ static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_TEST(memcached_st *me test_compare(MEMCACHED_SERVER_TEMPORARILY_DISABLED, memcached_set(memc, test_literal_param("foo"), NULL, 0, time_t(0), uint32_t(0))); - return TEST_SUCCESS; + return restart_servers(memc); } static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_to_success_TEST(memcached_st *memc) { - return TEST_SKIPPED; + shutdown_servers(memc); test_compare_got(MEMCACHED_CONNECTION_FAILURE, memcached_set(memc, @@ -153,10 +154,10 @@ static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_to_success_TEST(memca global_framework->servers().restart(); - int limit= 5; + int limit= 10; memcached_return_t ret; do { - libtest::dream(3, 0); + libtest::dream(1, 0); ret= memcached_set(memc, test_literal_param("foo"), NULL, 0, time_t(0), uint32_t(0)); } while (ret == MEMCACHED_SERVER_TEMPORARILY_DISABLED and --limit); @@ -164,14 +165,15 @@ static test_return_t MEMCACHED_SERVER_TEMPORARILY_DISABLED_to_success_TEST(memca test_compare_got(MEMCACHED_SUCCESS, ret, memcached_last_error_message(memc)); - return TEST_SUCCESS; + return restart_servers(memc); } static test_return_t MEMCACHED_SERVER_MARKED_DEAD_TEST(memcached_st *memc) { - return TEST_SKIPPED; + add_shutdown_servers(memc); - test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, 30)); + test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT, 2)); + test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_RETRY_TIMEOUT, 1)); test_compare(MEMCACHED_SUCCESS, memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS, true)); memcached_return_t ret; @@ -182,9 +184,9 @@ static test_return_t MEMCACHED_SERVER_MARKED_DEAD_TEST(memcached_st *memc) } while (ret == MEMCACHED_SUCCESS or ret == MEMCACHED_CONNECTION_FAILURE); test_compare(MEMCACHED_SERVER_TEMPORARILY_DISABLED, ret); - int limit= 5; + int limit= 10; do { - libtest::dream(3, 0); + libtest::dream(1, 0); ret= memcached_set(memc, test_literal_param("foo"), NULL, 0, time_t(0), uint32_t(0)); } while ((ret == MEMCACHED_SERVER_TEMPORARILY_DISABLED or ret == MEMCACHED_SUCCESS) and --limit); @@ -192,7 +194,7 @@ static test_return_t MEMCACHED_SERVER_MARKED_DEAD_TEST(memcached_st *memc) test_compare_got(MEMCACHED_SERVER_MARKED_DEAD, ret, memcached_last_error_message(memc)); - return TEST_SUCCESS; + return restart_servers(memc); } test_st cull_TESTS[] ={ @@ -212,15 +214,15 @@ test_st server_permanently_disabled_TESTS[] ={ }; collection_st collection[] ={ - { "cull", (test_callback_fn*)shutdown_servers, (test_callback_fn*)restart_servers, cull_TESTS }, - { "server failed", (test_callback_fn*)shutdown_servers, (test_callback_fn*)restart_servers, server_temporarily_disabled_TESTS }, - { "server eject", (test_callback_fn*)add_shutdown_servers, (test_callback_fn*)restart_servers, server_permanently_disabled_TESTS }, + { "cull", NULL, NULL, cull_TESTS }, + { "server failed", NULL, NULL, server_temporarily_disabled_TESTS }, + { "server eject", NULL, NULL, server_permanently_disabled_TESTS }, { 0, 0, 0, 0 } }; #include "tests/libmemcached_world.h" -void get_world(Framework *world) +void get_world(libtest::Framework* world) { world->servers().set_servers_to_run(1);