X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ffunction.c;h=27af67369c5729de9442e37d03061a6968bb05f4;hb=1019d0d8979ae75ee6dea937cb405a1367d6254d;hp=dc373e7bb5d012d99484e21a537d53ffa15de733;hpb=33c51e854adfb3c8abebdc4af13fe8042730cfb7;p=awesomized%2Flibmemcached diff --git a/tests/function.c b/tests/function.c index dc373e7b..27af6736 100644 --- a/tests/function.c +++ b/tests/function.c @@ -1042,6 +1042,70 @@ static test_return get_test5(memcached_st *memc) return TEST_SUCCESS; } +static test_return mget_end(memcached_st *memc) +{ + const char *keys[] = { "foo", "foo2" }; + size_t lengths[] = { 3, 4 }; + const char *values[] = { "fjord", "41" }; + + memcached_return rc; + + // Set foo and foo2 + for(int i = 0; i < 2; i++) + { + rc= memcached_set(memc, keys[i], lengths[i], values[i], strlen(values[i]), + (time_t)0, (uint32_t)0); + assert(rc == MEMCACHED_SUCCESS); + } + + char *string; + size_t string_length; + uint32_t flags; + + // retrieve both via mget + rc= memcached_mget(memc, keys, lengths, 2); + assert(rc == MEMCACHED_SUCCESS); + + char key[MEMCACHED_MAX_KEY]; + size_t key_length; + + // this should get both + for(int i = 0; i < 2; i++) { + string = memcached_fetch(memc, key, &key_length, &string_length, + &flags, &rc); + assert(rc == MEMCACHED_SUCCESS); + int val = 0; + if(key_length == 4) + val = 1; + assert(string_length == strlen(values[val])); + assert(strncmp(values[val], string, string_length) == 0); + free(string); + } + + // this should indicate end + string = memcached_fetch(memc, key, &key_length, &string_length, &flags, &rc); + assert(rc == MEMCACHED_END); + + // now get just one + rc= memcached_mget(memc, keys, lengths, 1); + assert(rc == MEMCACHED_SUCCESS); + + string = memcached_fetch(memc, key, &key_length, &string_length, &flags, &rc); + assert(key_length == lengths[0]); + assert(strncmp(keys[0], key, key_length) == 0); + assert(string_length == strlen(values[0])); + assert(strncmp(values[0], string, string_length) == 0); + assert(rc == MEMCACHED_SUCCESS); + free(string); + + // this should indicate end + string = memcached_fetch(memc, key, &key_length, &string_length, &flags, &rc); + assert(rc != MEMCACHED_SUCCESS); + assert(rc == MEMCACHED_END); + + return TEST_SUCCESS; +} + /* Do not copy the style of this code, I just access hosts to testthis function */ static test_return stats_servername_test(memcached_st *memc) { @@ -2312,6 +2376,7 @@ static test_return user_supplied_bug16(memcached_st *memc) return 0; } +#ifndef __sun /* Check the validity of chinese key*/ static test_return user_supplied_bug17(memcached_st *memc) { @@ -2338,6 +2403,7 @@ static test_return user_supplied_bug17(memcached_st *memc) return 0; } +#endif /* From Andrei on IRC @@ -3342,7 +3408,7 @@ static memcached_return poll_timeout(memcached_st *memc) memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, timeout); - timeout= memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT); + timeout= (size_t)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT); assert(timeout == 100); @@ -4445,6 +4511,7 @@ test_st tests[] ={ {"mget_result", 1, mget_result_test }, {"mget_result_alloc", 1, mget_result_alloc_test }, {"mget_result_function", 1, mget_result_function }, + {"mget_end", 0, mget_end }, {"get_stats", 0, get_stats }, {"add_host_test", 0, add_host_test }, {"add_host_test_1", 0, add_host_test1 },