X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fcycle.cc;h=679473eadd02c823b19dbc98502e5dcddfddee0a;hb=25efe3485198149616820ab4e52d2f18f0abe5a7;hp=3b0aa2410770cee3e76c63d2d57154765f94a828;hpb=7abcaebdc4c3dd11b779eaef58a7371fb82ae888;p=m6w6%2Flibmemcached diff --git a/tests/cycle.cc b/tests/cycle.cc index 3b0aa241..679473ea 100644 --- a/tests/cycle.cc +++ b/tests/cycle.cc @@ -1,6 +1,6 @@ /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: * - * Libmemcached library + * Cycle the Gearmand server * * Copyright (C) 2011 Data Differential, http://datadifferential.com/ * @@ -39,53 +39,97 @@ Test that we are cycling the servers we are creating during testing. */ -#include +#include +#include -#include +using namespace libtest; +#include +static test_return_t server_startup_single_TEST(void *obj) +{ + server_startup_st *servers= (server_startup_st*)obj; + test_compare(true, server_startup(*servers, "memcached", libtest::get_free_port(), 0, NULL, false)); + test_compare(true, servers->shutdown()); -#include -#define SERVERS_TO_CREATE 5 + return TEST_SUCCESS; +} -#ifndef __INTEL_COMPILER -#pragma GCC diagnostic ignored "-Wstrict-aliasing" -#endif +static test_return_t server_startup_multiple_TEST(void *obj) +{ + server_startup_st *servers= (server_startup_st*)obj; + for (size_t x= 0; x < 10; x++) + { + test_compare(true, server_startup(*servers, "memcached", libtest::get_free_port(), 0, NULL, false)); + } + test_compare(true, servers->shutdown()); -test_st ping[] ={ - {0, 0, 0} -}; + return TEST_SUCCESS; +} -collection_st collection[] ={ - {0, 0, 0, 0} +static test_return_t shutdown_and_remove_TEST(void *obj) +{ + server_startup_st *servers= (server_startup_st*)obj; + servers->clear(); + + return TEST_SUCCESS; +} + +test_st server_startup_TESTS[] ={ + {"server_startup(1)", false, (test_callback_fn*)server_startup_single_TEST }, + {"server_startup(10)", false, (test_callback_fn*)server_startup_multiple_TEST }, + {"shutdown_and_remove()", false, (test_callback_fn*)shutdown_and_remove_TEST }, + {"server_startup(10)", false, (test_callback_fn*)server_startup_multiple_TEST }, + {0, 0, 0} }; -static server_startup_st *world_create(test_return_t *error) +#if 0 +static test_return_t collection_INIT(void *object) { - server_startup_st *servers= new server_startup_st(); + server_startup_st *servers= (server_startup_st*)object; + test_zero(servers->count()); + test_compare(true, server_startup(*servers, "memcached", libtest::default_port(), 0, NULL)); + + return TEST_SUCCESS; +} +#endif - server_startup(servers); +static test_return_t validate_sanity_INIT(void *object) +{ + server_startup_st *servers= (server_startup_st*)object; - *error= TEST_SUCCESS; + test_zero(servers->count()); - return servers; + return TEST_SUCCESS; } -static test_return_t world_destroy(server_startup_st *servers) +static test_return_t collection_FINAL(void *object) { - server_shutdown(servers); - delete servers; + server_startup_st *servers= (server_startup_st*)object; + servers->clear(); return TEST_SUCCESS; } +collection_st collection[] ={ + {"server_startup()", validate_sanity_INIT, collection_FINAL, server_startup_TESTS }, + {0, 0, 0, 0} +}; +static void *world_create(server_startup_st& servers, test_return_t& error) +{ + if (libtest::has_memcached() == false) + { + error= TEST_SKIPPED; + return NULL; + } + + return &servers; +} void get_world(Framework *world) { - world->collections= collection; - - world->_create= (test_callback_create_fn*)world_create; - world->_destroy= (test_callback_fn*)world_destroy; + world->collections(collection); + world->create(world_create); }