X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ffunction.c;h=9cd10aff18a343c8373eafa8c3ba12cb14e75b17;hb=97ccdd0fbb452e094e1fcfde80376f805370ff70;hp=1f536e881df7bf679a24249664201673618091bb;hpb=03a38ffb6dbde1be82141c71e22900e18d7b56fa;p=m6w6%2Flibmemcached diff --git a/tests/function.c b/tests/function.c index 1f536e88..9cd10aff 100644 --- a/tests/function.c +++ b/tests/function.c @@ -112,6 +112,7 @@ uint8_t set_test(memcached_st *memc) rc= memcached_set(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint16_t)0); + WATCHPOINT_ERROR(rc); assert(rc == MEMCACHED_SUCCESS); return 0; @@ -318,12 +319,21 @@ uint8_t prepend_test(memcached_st *memc) return 0; } +/* + Set the value, then quit to make sure it is flushed. + Come back in and test that add fails. +*/ uint8_t add_test(memcached_st *memc) { memcached_return rc; char *key= "foo"; char *value= "when we sanitize"; + rc= memcached_set(memc, key, strlen(key), + value, strlen(value), + (time_t)0, (uint16_t)0); + assert(rc == MEMCACHED_SUCCESS); + memcached_quit(memc); rc= memcached_add(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint16_t)0); @@ -820,10 +830,9 @@ uint8_t get_stats(memcached_st *memc) for (x= 0; x < memcached_server_count(memc); x++) { - list= memcached_stat_get_keys(memc, &stat[x], &rc); + list= memcached_stat_get_keys(memc, stat+x, &rc); assert(rc == MEMCACHED_SUCCESS); - for (ptr= list; *ptr; ptr++) - printf("Found key %s\n", *ptr); + for (ptr= list; *ptr; ptr++); free(list); } @@ -1254,6 +1263,36 @@ uint8_t user_supplied_bug6(memcached_st *memc) return 0; } +uint8_t user_supplied_bug8(memcached_st *memc) +{ + memcached_return rc; + memcached_st *mine; + memcached_st *clone; + + memcached_server_st *servers; + char *server_list= "memcache1.memcache.bk.sapo.pt:11211, memcache1.memcache.bk.sapo.pt:11212, memcache1.memcache.bk.sapo.pt:11213, memcache1.memcache.bk.sapo.pt:11214, memcache2.memcache.bk.sapo.pt:11211, memcache2.memcache.bk.sapo.pt:11212, memcache2.memcache.bk.sapo.pt:11213, memcache2.memcache.bk.sapo.pt:11214"; + + servers= memcached_servers_parse(server_list); + assert(servers); + + mine= memcached_create(NULL); + rc= memcached_server_push(mine, servers); + assert(rc == MEMCACHED_SUCCESS); + memcached_server_list_free(servers); + + assert(mine); + clone= memcached_clone(NULL, mine); + + memcached_quit(mine); + memcached_quit(clone); + + + memcached_free(mine); + memcached_free(clone); + + return 0; +} + /* Test flag store/retrieve */ uint8_t user_supplied_bug7(memcached_st *memc) { @@ -1577,6 +1616,14 @@ memcached_return pre_crc(memcached_st *memc) return MEMCACHED_SUCCESS; } +memcached_return pre_hsieh(memcached_st *memc) +{ + memcached_hash value= MEMCACHED_HASH_HSIEH; + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_HASH, &value); + + return MEMCACHED_SUCCESS; +} + memcached_return pre_hash_fnv1_64(memcached_st *memc) { memcached_hash value= MEMCACHED_HASH_FNV1_64; @@ -1617,6 +1664,14 @@ memcached_return pre_hash_ketama(memcached_st *memc) return MEMCACHED_SUCCESS; } +memcached_return enable_consistent(memcached_st *memc) +{ + memcached_server_distribution value= MEMCACHED_DISTRIBUTION_CONSISTENT; + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, &value); + + return MEMCACHED_SUCCESS; +} + memcached_return enable_cas(memcached_st *memc) { unsigned int set= 1; @@ -1714,7 +1769,7 @@ test_st tests[] ={ {"set", 0, set_test }, {"set2", 0, set_test2 }, {"set3", 0, set_test3 }, - {"add", 0, add_test }, + {"add", 1, add_test }, {"replace", 0, replace_test }, {"delete", 1, delete_test }, {"get", 1, get_test }, @@ -1768,6 +1823,7 @@ test_st user_tests[] ={ {"user_supplied_bug5", 1, user_supplied_bug5 }, {"user_supplied_bug6", 1, user_supplied_bug6 }, {"user_supplied_bug7", 1, user_supplied_bug7 }, + {"user_supplied_bug8", 1, user_supplied_bug8 }, {0, 0, 0} }; @@ -1787,6 +1843,7 @@ collection_st collection[] ={ {"nodelay", pre_nodelay, 0, tests}, {"md5", pre_md5, 0, tests}, {"crc", pre_crc, 0, tests}, + {"hsieh", pre_hsieh, 0, tests}, {"fnv1_64", pre_hash_fnv1_64, 0, tests}, {"fnv1a_64", pre_hash_fnv1a_64, 0, tests}, {"fnv1_32", pre_hash_fnv1_32, 0, tests}, @@ -1796,12 +1853,14 @@ collection_st collection[] ={ {"unix_socket_nodelay", pre_nodelay, 0, tests}, {"poll_timeout", poll_timeout, 0, tests}, {"gets", enable_cas, 0, tests}, + {"consistent", enable_consistent, 0, tests}, // {"udp", pre_udp, 0, tests}, {"version_1_2_3", check_for_1_2_3, 0, version_1_2_3}, {"string", 0, 0, string_tests}, {"result", 0, 0, result_tests}, {"user", 0, 0, user_tests}, {"generate", 0, 0, generate_tests}, + {"generate_hsieh", pre_hsieh, 0, generate_tests}, {"generate_nonblock", pre_nonblock, 0, generate_tests}, {0, 0, 0, 0} };