X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ffunction.c;h=826e6c82e808961849f68025d366cb048c34d492;hb=151d417315c7ef9a1eaa0fe21150d8e0ec9eb440;hp=19c104df4689e602aac42e2e33ae42fb4f3d2178;hpb=120172bf400e556cf60d10488f42f2292f478838;p=awesomized%2Flibmemcached diff --git a/tests/function.c b/tests/function.c index 19c104df..826e6c82 100644 --- a/tests/function.c +++ b/tests/function.c @@ -65,8 +65,9 @@ uint32_t test_ports[TEST_PORT_COUNT]; memcached_return server_display_function(memcached_st *ptr, memcached_server_st *server, void *context) { /* Do Nothing */ - uint32_t *bigger= (uint32_t *)context; - assert(*bigger <= server->port); + uint32_t bigger= *((uint32_t *)(context)); + assert(bigger <= server->port); + *((uint32_t *)(context))= bigger; return MEMCACHED_SUCCESS; } @@ -87,6 +88,8 @@ uint8_t server_sort_test(memcached_st *ptr) { test_ports[x]= random() % 64000; rc= memcached_server_add(local_memc, "localhost", test_ports[x]); + assert(local_memc->number_of_hosts == x+1); + assert(local_memc->hosts[0].count == x+1); assert(rc == MEMCACHED_SUCCESS); } @@ -99,6 +102,47 @@ uint8_t server_sort_test(memcached_st *ptr) return 0; } +memcached_return server_display_unsort_function(memcached_st *ptr, memcached_server_st *server, void *context) +{ + /* Do Nothing */ + uint32_t x= *((uint32_t *)(context)); + + assert(test_ports[x] == server->port); + *((uint32_t *)(context))= ++x; + + return MEMCACHED_SUCCESS; +} + +uint8_t server_unsort_test(memcached_st *ptr) +{ + uint8_t x; + uint32_t counter= 0; /* Prime the value for the assert in server_display_function */ + memcached_return rc; + memcached_server_function callbacks[1]; + memcached_st *local_memc; + + local_memc= memcached_create(NULL); + assert(local_memc); + memcached_behavior_set(local_memc, MEMCACHED_BEHAVIOR_SORT_HOSTS, 1); + + for (x= 0; x < TEST_PORT_COUNT; x++) + { + test_ports[x]= random() % 64000; + rc= memcached_server_add(local_memc, "localhost", test_ports[x]); + assert(local_memc->number_of_hosts == x+1); + assert(local_memc->hosts[0].count == x+1); + assert(rc == MEMCACHED_SUCCESS); + } + + callbacks[0]= server_display_unsort_function; + memcached_server_cursor(local_memc, callbacks, (void *)&counter, 1); + + + memcached_free(local_memc); + + return 0; +} + uint8_t allocation_test(memcached_st *not_used) { memcached_st *memc; @@ -582,6 +626,26 @@ uint8_t read_through(memcached_st *memc) return 0; } +memcached_return delete_trigger(memcached_st *ptr, char *key, size_t key_length) +{ + assert(key); + + return MEMCACHED_SUCCESS; +} + +uint8_t delete_through(memcached_st *memc) +{ + memcached_trigger_delete_key callback; + memcached_return rc; + + callback= delete_trigger; + + rc= memcached_callback_set(memc, MEMCACHED_CALLBACK_DELETE_TRIGGER, callback); + assert(rc == MEMCACHED_SUCCESS); + + return 0; +} + uint8_t get_test(memcached_st *memc) { memcached_return rc; @@ -2499,6 +2563,7 @@ test_st tests[] ={ {"init", 0, init_test }, {"allocation", 0, allocation_test }, {"server_list_null_test", 0, server_list_null_test}, + {"server_unsort", 0, server_unsort_test}, {"server_sort", 0, server_sort_test}, {"clone_test", 0, clone_test }, {"error", 0, error_test }, @@ -2529,6 +2594,7 @@ test_st tests[] ={ {"bad_key", 1, bad_key_test }, {"memcached_server_cursor", 1, memcached_server_cursor_test }, {"read_through", 1, read_through }, + {"delete_through", 1, delete_through }, {0, 0, 0} };