X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ffunction.c;h=1534019cb16fbeb100d131c6db983c54bded2501;hb=d4fe357383d5adbe59dd77108afa92a2b2fc835b;hp=8592e55074c8aba5e3a08ade769d8ac3eb0cf305;hpb=34d4d96c4f3c4aae39fb59aca2e012bac726e794;p=awesomized%2Flibmemcached diff --git a/tests/function.c b/tests/function.c index 8592e550..1534019c 100644 --- a/tests/function.c +++ b/tests/function.c @@ -11,6 +11,7 @@ #include #include #include +#include "server.h" #include "../lib/common.h" #include "../src/generator.h" #include "../src/execute.h" @@ -60,6 +61,28 @@ uint8_t server_list_null_test(memcached_st *ptr) return 0; } +uint8_t server_sort_test(memcached_st *ptr) +{ + memcached_server_st *server_list; + memcached_return rc; + + server_list= memcached_server_list_append(NULL, "arg", 0, &rc); + assert(server_list); + + server_list= memcached_server_list_append(server_list, "localhost", 0, &rc); + assert(server_list); + + server_list= memcached_server_list_append(server_list, "c", 0, &rc); + assert(server_list); + + server_list= memcached_server_list_append(server_list, "abba", 0, &rc); + assert(server_list); + + free(server_list); + + return 0; +} + uint8_t allocation_test(memcached_st *not_used) { memcached_st *memc; @@ -392,6 +415,12 @@ uint8_t replace_test(memcached_st *memc) memcached_return rc; char *key= "foo"; char *value= "when we sanitize"; + char *original= "first we insert some data"; + + rc= memcached_set(memc, key, strlen(key), + original, strlen(original), + (time_t)0, (uint32_t)0); + assert(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_BUFFERED); rc= memcached_replace(memc, key, strlen(key), value, strlen(value), @@ -428,6 +457,25 @@ uint8_t flush_test(memcached_st *memc) return 0; } +uint8_t bad_key_test(memcached_st *memc) +{ +#ifdef HAVE_DEBUG + memcached_return rc; + char *key= "foo bad"; + char *string; + size_t string_length; + uint32_t flags; + + string= memcached_get(memc, key, strlen(key), + &string_length, &flags, &rc); + assert(rc == MEMCACHED_BAD_KEY_PROVIDED); + assert(string_length == 0); + assert(!string); +#endif + + return 0; +} + uint8_t get_test(memcached_st *memc) { memcached_return rc; @@ -1694,8 +1742,7 @@ uint8_t user_supplied_bug13(memcached_st *memc) Test values of many different sizes Bug found where command total one more than MEMCACHED_MAX_BUFFER set key34567890 0 0 8169 \r\n - is sent - followed by buffer of size 8169, followed by 8169 + is sent followed by buffer of size 8169, followed by 8169 */ uint8_t user_supplied_bug14(memcached_st *memc) { @@ -1717,7 +1764,7 @@ uint8_t user_supplied_bug14(memcached_st *memc) for (x= 0; x < value_length; x++) value[x] = (char) (x % 127); - for (current_length = 0; current_length < value_length; current_length++) + for (current_length= 1; current_length < value_length; current_length++) { rc= memcached_set(memc, key, strlen(key), value, current_length, @@ -2306,13 +2353,14 @@ test_st tests[] ={ {"init", 0, init_test }, {"allocation", 0, allocation_test }, {"server_list_null_test", 0, server_list_null_test}, + {"server_sort", 0, server_sort_test}, {"clone_test", 0, clone_test }, {"error", 0, error_test }, {"set", 0, set_test }, {"set2", 0, set_test2 }, {"set3", 0, set_test3 }, {"add", 1, add_test }, - {"replace", 0, replace_test }, + {"replace", 1, replace_test }, {"delete", 1, delete_test }, {"get", 1, get_test }, {"get2", 0, get_test2 }, @@ -2332,6 +2380,7 @@ test_st tests[] ={ {"behavior_test", 0, get_stats_keys }, {"callback_test", 0, get_stats_keys }, {"version_string_test", 0, version_string_test}, + {"bad_key", 1, bad_key_test }, {0, 0, 0} }; @@ -2435,7 +2484,34 @@ collection_st collection[] ={ {0, 0, 0, 0} }; -collection_st *gets_collections(void) +#define SERVERS_TO_CREATE 5 + +void *world_create(void) +{ + server_startup_st *construct; + + construct= (server_startup_st *)malloc(sizeof(server_startup_st)); + memset(construct, 0, sizeof(server_startup_st)); + construct->count= SERVERS_TO_CREATE; + construct->udp= 0; + server_startup(construct); + + return construct; +} + +void world_destroy(void *p) +{ + server_startup_st *construct= (server_startup_st *)p; + memcached_server_st *servers= (memcached_server_st *)construct->servers; + memcached_server_list_free(servers); + + server_shutdown(construct); + free(construct); +} + +void get_world(world_st *world) { - return collection; + world->collections= collection; + world->create= world_create; + world->destroy= world_destroy; }