* Rename: s/by_key_with_initial/with_initial_by_key
authorAdam Thomason <ad@mthomason.net>
Sat, 7 Nov 2009 01:50:53 +0000 (17:50 -0800)
committerAdam Thomason <ad@mthomason.net>
Sat, 7 Nov 2009 01:50:53 +0000 (17:50 -0800)
* 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

docs/memcached_auto.pod
libmemcached/memcached.h
libmemcached/memcached_auto.c
tests/function.c

index 7f4e44d9be8c6952d47d81c1f6380c6a74ef3972..482ac77c2b3b6ed66aaea4f250a33b8dbf2fa78c 100644 (file)
@@ -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
index 9541cdfb0a4ae221d45f4d460384ce522bcb7b1f..bb97ece021315530a2e9a60b77e81591187d78c8 100644 (file)
@@ -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,
index 9fce267502f94d6501c6ae47e1d42dc53468c7db..207c4e518b63c16c170ebddac84049383eb03160 100644 (file)
@@ -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,
index 8ccf503d9ef8d6cc087ee05d503790880df4c548..da103cac923e941dc77e583c1f347d32048fe7f4 100644 (file)
@@ -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 },