From: Adam Thomason Date: Sat, 7 Nov 2009 01:50:53 +0000 (-0800) Subject: * Rename: s/by_key_with_initial/with_initial_by_key X-Git-Tag: 0.35~2^2 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=e4b735371f61e2b038ac621c2210354441b3ed6b;p=m6w6%2Flibmemcached * Rename: s/by_key_with_initial/with_initial_by_key * Include separate test for each function * Change type of offset to uint64_t for increment_by_key and decrement_by_key * Change type of offset to uint64_t for memcached_auto; also use PRIu64 format in it for sprintf --- diff --git a/docs/memcached_auto.pod b/docs/memcached_auto.pod index 7f4e44d9..482ac77c 100644 --- a/docs/memcached_auto.pod +++ b/docs/memcached_auto.pod @@ -57,7 +57,7 @@ C Client Library for memcached (libmemcached, -lmemcached) uint64_t *value); memcached_return - memcached_increment_by_key_with_initial (memcached_st *ptr, + memcached_increment_with_initial_by_key (memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, @@ -68,7 +68,7 @@ C Client Library for memcached (libmemcached, -lmemcached) uint64_t *value); memcached_return - memcached_decrement_by_key_with_initial (memcached_st *ptr, + memcached_decrement_with_initial_by_key (memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, @@ -111,8 +111,8 @@ flags will be set to zero.The value is then returned via the unsigned int value pointer you pass to it. memcached_increment_by_key(), memcached_decrement_by_key(), -memcached_increment_by_key_with_initial(), and -memcached_decrement_by_key_with_initial() are master key equivalents of the +memcached_increment_with_initial_by_key(), and +memcached_decrement_with_initial_by_key() are master key equivalents of the above. =head1 RETURN diff --git a/libmemcached/memcached.h b/libmemcached/memcached.h index 9541cdfb..bb97ece0 100644 --- a/libmemcached/memcached.h +++ b/libmemcached/memcached.h @@ -149,14 +149,14 @@ LIBMEMCACHED_API memcached_return memcached_increment_by_key(memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, size_t key_length, - uint32_t offset, + uint64_t offset, uint64_t *value); LIBMEMCACHED_API memcached_return memcached_decrement_by_key(memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, size_t key_length, - uint32_t offset, + uint64_t offset, uint64_t *value); LIBMEMCACHED_API @@ -176,7 +176,7 @@ memcached_return memcached_decrement_with_initial(memcached_st *ptr, time_t expiration, uint64_t *value); LIBMEMCACHED_API -memcached_return memcached_increment_by_key_with_initial(memcached_st *ptr, +memcached_return memcached_increment_with_initial_by_key(memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, @@ -186,7 +186,7 @@ memcached_return memcached_increment_by_key_with_initial(memcached_st *ptr, time_t expiration, uint64_t *value); LIBMEMCACHED_API -memcached_return memcached_decrement_by_key_with_initial(memcached_st *ptr, +memcached_return memcached_decrement_with_initial_by_key(memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, diff --git a/libmemcached/memcached_auto.c b/libmemcached/memcached_auto.c index 9fce2675..207c4e51 100644 --- a/libmemcached/memcached_auto.c +++ b/libmemcached/memcached_auto.c @@ -4,7 +4,7 @@ static memcached_return memcached_auto(memcached_st *ptr, const char *verb, const char *master_key, size_t master_key_length, const char *key, size_t key_length, - unsigned int offset, + uint64_t offset, uint64_t *value) { size_t send_length; @@ -22,7 +22,7 @@ static memcached_return memcached_auto(memcached_st *ptr, server_key= memcached_generate_hash(ptr, master_key, master_key_length); send_length= (size_t)snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, - "%s %s%.*s %u%s\r\n", verb, + "%s %s%.*s %" PRIu64 "%s\r\n", verb, ptr->prefix_key, (int)key_length, key, offset, no_reply ? " noreply" : ""); @@ -127,7 +127,7 @@ memcached_return memcached_decrement(memcached_st *ptr, memcached_return memcached_increment_by_key(memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, size_t key_length, - uint32_t offset, + uint64_t offset, uint64_t *value) { memcached_return rc= memcached_validate_key_length(key_length, ptr->flags & MEM_BINARY_PROTOCOL); @@ -151,7 +151,7 @@ memcached_return memcached_increment_by_key(memcached_st *ptr, memcached_return memcached_decrement_by_key(memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, size_t key_length, - uint32_t offset, + uint64_t offset, uint64_t *value) { memcached_return rc= memcached_validate_key_length(key_length, ptr->flags & MEM_BINARY_PROTOCOL); @@ -180,12 +180,12 @@ memcached_return memcached_increment_with_initial(memcached_st *ptr, time_t expiration, uint64_t *value) { - return memcached_increment_by_key_with_initial(ptr, key, key_length, + return memcached_increment_with_initial_by_key(ptr, key, key_length, key, key_length, offset, initial, expiration, value); } -memcached_return memcached_increment_by_key_with_initial(memcached_st *ptr, +memcached_return memcached_increment_with_initial_by_key(memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, @@ -221,12 +221,12 @@ memcached_return memcached_decrement_with_initial(memcached_st *ptr, time_t expiration, uint64_t *value) { - return memcached_decrement_by_key_with_initial(ptr, key, key_length, + return memcached_decrement_with_initial_by_key(ptr, key, key_length, key, key_length, offset, initial, expiration, value); } -memcached_return memcached_decrement_by_key_with_initial(memcached_st *ptr, +memcached_return memcached_decrement_with_initial_by_key(memcached_st *ptr, const char *master_key, size_t master_key_length, const char *key, diff --git a/tests/function.c b/tests/function.c index 8ccf503d..da103cac 100644 --- a/tests/function.c +++ b/tests/function.c @@ -1152,12 +1152,6 @@ static test_return_t increment_test(memcached_st *memc) assert(rc == MEMCACHED_SUCCESS); assert(new_number == 2); - rc= memcached_increment_by_key(memc, key, strlen(key), - key, strlen(key), - 1, &new_number); - assert(rc == MEMCACHED_SUCCESS); - assert(new_number == 3); - return TEST_SUCCESS; } @@ -1205,12 +1199,6 @@ static test_return_t decrement_test(memcached_st *memc) assert(rc == MEMCACHED_SUCCESS); assert(new_number == 1); - rc= memcached_decrement_by_key(memc, key, strlen(key), - key, strlen(key), - 1, &new_number); - assert(rc == MEMCACHED_SUCCESS); - assert(new_number == 0); - return TEST_SUCCESS; } @@ -1236,6 +1224,112 @@ static test_return_t decrement_with_initial_test(memcached_st *memc) return TEST_SUCCESS; } +static test_return_t increment_by_key_test(memcached_st *memc) +{ + uint64_t new_number; + memcached_return rc; + const char *master_key= "foo"; + const char *key= "number"; + const char *value= "0"; + + rc= memcached_set_by_key(memc, master_key, strlen(master_key), + key, strlen(key), + value, strlen(value), + (time_t)0, (uint32_t)0); + assert(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_BUFFERED); + + rc= memcached_increment_by_key(memc, master_key, strlen(master_key), key, strlen(key), + 1, &new_number); + assert(rc == MEMCACHED_SUCCESS); + assert(new_number == 1); + + rc= memcached_increment_by_key(memc, master_key, strlen(master_key), key, strlen(key), + 1, &new_number); + assert(rc == MEMCACHED_SUCCESS); + assert(new_number == 2); + + return TEST_SUCCESS; +} + +static test_return_t increment_with_initial_by_key_test(memcached_st *memc) +{ + if (memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL) != 0) + { + uint64_t new_number; + memcached_return rc; + const char *master_key= "foo"; + const char *key= "number"; + uint64_t initial= 0; + + rc= memcached_increment_with_initial_by_key(memc, master_key, strlen(master_key), + key, strlen(key), + 1, initial, 0, &new_number); + assert(rc == MEMCACHED_SUCCESS); + assert(new_number == initial); + + rc= memcached_increment_with_initial_by_key(memc, master_key, strlen(master_key), + key, strlen(key), + 1, initial, 0, &new_number); + assert(rc == MEMCACHED_SUCCESS); + assert(new_number == (initial + 1)); + } + return TEST_SUCCESS; +} + +static test_return_t decrement_by_key_test(memcached_st *memc) +{ + uint64_t new_number; + memcached_return rc; + const char *master_key= "foo"; + const char *key= "number"; + const char *value= "3"; + + rc= memcached_set_by_key(memc, master_key, strlen(master_key), + key, strlen(key), + value, strlen(value), + (time_t)0, (uint32_t)0); + assert(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_BUFFERED); + + rc= memcached_decrement_by_key(memc, master_key, strlen(master_key), + key, strlen(key), + 1, &new_number); + assert(rc == MEMCACHED_SUCCESS); + assert(new_number == 2); + + rc= memcached_decrement_by_key(memc, master_key, strlen(master_key), + key, strlen(key), + 1, &new_number); + assert(rc == MEMCACHED_SUCCESS); + assert(new_number == 1); + + return TEST_SUCCESS; +} + +static test_return_t decrement_with_initial_by_key_test(memcached_st *memc) +{ + if (memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL) != 0) + { + uint64_t new_number; + memcached_return rc; + const char *master_key= "foo"; + const char *key= "number"; + uint64_t initial= 3; + + rc= memcached_decrement_with_initial_by_key(memc, master_key, strlen(master_key), + key, strlen(key), + 1, initial, 0, &new_number); + assert(rc == MEMCACHED_SUCCESS); + assert(new_number == initial); + + rc= memcached_decrement_with_initial_by_key(memc, master_key, strlen(master_key), + key, strlen(key), + 1, initial, 0, &new_number); + assert(rc == MEMCACHED_SUCCESS); + assert(new_number == (initial - 1)); + } + return TEST_SUCCESS; +} + static test_return_t quit_test(memcached_st *memc) { memcached_return rc; @@ -5303,6 +5397,10 @@ test_st tests[] ={ {"increment_with_initial", 1, increment_with_initial_test }, {"decrement", 0, decrement_test }, {"decrement_with_initial", 1, decrement_with_initial_test }, + {"increment_by_key", 0, increment_by_key_test }, + {"increment_with_initial_by_key", 1, increment_with_initial_by_key_test }, + {"decrement_by_key", 0, decrement_by_key_test }, + {"decrement_with_initial_by_key", 1, decrement_with_initial_by_key_test }, {"quit", 0, quit_test }, {"mget", 1, mget_test }, {"mget_result", 1, mget_result_test },