X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ffunction.c;h=8d84c16f4f8d58e2b6d2de4ee7162cc2348a842c;hb=2e9d4c316f5182ef4c1f4d4757965bf5aebdc5e1;hp=d79e956c28701e6b7ce7a4a8dd183fa18f97dc94;hpb=fddf7c8e17eb5b970828ab1dec54dbbac159693d;p=awesomized%2Flibmemcached diff --git a/tests/function.c b/tests/function.c index d79e956c..8d84c16f 100644 --- a/tests/function.c +++ b/tests/function.c @@ -474,6 +474,24 @@ uint8_t flush_test(memcached_st *memc) return 0; } +memcached_return server_function(memcached_st *ptr, memcached_server_st *server, void *context) +{ + /* Do Nothing */ + + return MEMCACHED_SUCCESS; +} + +uint8_t memcached_server_cursor_test(memcached_st *memc) +{ + char *context= "foo bad"; + memcached_server_function callbacks[1]; + + callbacks[0]= server_function; + memcached_server_cursor(memc, callbacks, context, 1); + + return 0; +} + uint8_t bad_key_test(memcached_st *memc) { memcached_return rc; @@ -569,7 +587,6 @@ uint8_t set_test2(memcached_st *memc) rc= memcached_set(memc, key, strlen(key), value, value_length, (time_t)0, (uint32_t)0); - WATCHPOINT_ERROR(rc); assert(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_BUFFERED); } @@ -884,7 +901,7 @@ uint8_t mget_result_function(memcached_st *memc) size_t key_length[]= {5, 3, 4}; unsigned int x; unsigned int counter; - unsigned int (*callbacks[1])(memcached_st *, memcached_result_st *, void *); + memcached_execute_function callbacks[1]; /* We need to empty the server before continueing test */ rc= memcached_flush(memc, 0); @@ -1797,7 +1814,7 @@ uint8_t user_supplied_bug14(memcached_st *memc) for (x= 0; x < value_length; x++) value[x] = (char) (x % 127); - for (current_length= 1; current_length < value_length; current_length++) + for (current_length= 0; current_length < value_length; current_length++) { rc= memcached_set(memc, key, strlen(key), value, current_length, @@ -1820,6 +1837,46 @@ uint8_t user_supplied_bug14(memcached_st *memc) return 0; } +/* + Look for zero length value problems + */ +uint8_t user_supplied_bug15(memcached_st *memc) +{ + uint32_t x; + memcached_return rc; + char *key= "mykey"; + char *value; + size_t length; + uint32_t flags; + + for (x= 0; x < 2; x++) + { + rc= memcached_set(memc, key, strlen(key), + NULL, 0, + (time_t)0, (uint32_t)0); + + assert(rc == MEMCACHED_SUCCESS); + + value= memcached_get(memc, key, strlen(key), + &length, &flags, &rc); + + assert(rc == MEMCACHED_SUCCESS); + assert(value == NULL); + assert(length == 0); + assert(flags == 0); + + value= memcached_get(memc, key, strlen(key), + &length, &flags, &rc); + + assert(rc == MEMCACHED_SUCCESS); + assert(value == NULL); + assert(length == 0); + assert(flags == 0); + } + + return 0; +} + uint8_t result_static(memcached_st *memc) { memcached_result_st result; @@ -2159,6 +2216,14 @@ memcached_return pre_nonblock(memcached_st *memc) return MEMCACHED_SUCCESS; } +memcached_return pre_murmur(memcached_st *memc) +{ + memcached_hash value= MEMCACHED_HASH_MURMUR; + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_HASH, &value); + + return MEMCACHED_SUCCESS; +} + memcached_return pre_md5(memcached_st *memc) { memcached_hash value= MEMCACHED_HASH_MD5; @@ -2414,6 +2479,7 @@ test_st tests[] ={ {"callback_test", 0, get_stats_keys }, {"version_string_test", 0, version_string_test}, {"bad_key", 1, bad_key_test }, + {"memcached_server_cursor", 1, memcached_server_cursor_test }, {0, 0, 0} }; @@ -2462,6 +2528,7 @@ test_st user_tests[] ={ {"user_supplied_bug12", 1, user_supplied_bug12 }, {"user_supplied_bug13", 1, user_supplied_bug13 }, {"user_supplied_bug14", 1, user_supplied_bug14 }, + {"user_supplied_bug15", 1, user_supplied_bug15 }, {0, 0, 0} }; @@ -2513,6 +2580,7 @@ collection_st collection[] ={ {"generate_hsieh", pre_hsieh, 0, generate_tests}, {"generate_hsieh_consistent", enable_consistent, 0, generate_tests}, {"generate_md5", pre_md5, 0, generate_tests}, + {"generate_murmur", pre_murmur, 0, generate_tests}, {"generate_nonblock", pre_nonblock, 0, generate_tests}, {0, 0, 0, 0} };