Added test for binary append (works as an example as well!)
authorBrian Aker <brian@tangent.org>
Thu, 15 Nov 2007 21:17:18 +0000 (13:17 -0800)
committerBrian Aker <brian@tangent.org>
Thu, 15 Nov 2007 21:17:18 +0000 (13:17 -0800)
Fixed issue with bad assert in debug build
Updated version

ChangeLog
configure.ac
lib/memcached_storage.c
tests/function.c

index 84684535d57b06d3e9a87d6c93f2c491ee3fa5f4..904dd8a5f96650c8b729efdcc48053382142363d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+0.10
+  * Added append binary test.
+
 0.9 Thu Nov 15 07:44:00 PST 2007
   * fix for when no servers are definied.
   * different buffers are now kept for different connections to
index 203f7e91e59f9becb562e2f16647c369cbaa79c3..71a8ba53d255772c46d464b3b65d1420009d7f4e 100644 (file)
@@ -6,7 +6,7 @@ MEMCACHED_LIBRARY_NAME=libmemcached
 
 #release versioning
 MEMCACHED_MAJOR_VERSION=0
-MEMCACHED_MINOR_VERSION=9
+MEMCACHED_MINOR_VERSION=10
 MEMCACHED_MICRO_VERSION=0
 
 #API version
index 8d2ed8c5d4adb0b3b312964f6f47830b3588a3f3..af763a3ed5dd945f7b0debed1befc5cc519bfcf5 100644 (file)
@@ -56,8 +56,8 @@ static inline memcached_return memcached_send(memcached_st *ptr,
   char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
   unsigned int server_key;
 
-  WATCHPOINT_ASSERT(value);
-  WATCHPOINT_ASSERT(value_length);
+  WATCHPOINT_ASSERT(!(value == NULL && value_length > 0));
+  WATCHPOINT_ASSERT(!(value && value_length == 0));
 
   if (key_length == 0)
     return MEMCACHED_NO_KEY_PROVIDED;
index 9b3555e470622bb933f93e876aabcb3b7a298fa1..837f14fff19bf38956857b8e00ab9ce2ed56524f 100644 (file)
@@ -152,6 +152,51 @@ uint8_t append_test(memcached_st *memc)
   return 0;
 }
 
+uint8_t append_binary_test(memcached_st *memc)
+{
+  memcached_return rc;
+  char *key= "numbers";
+  unsigned int *store_ptr;
+  unsigned int store_list[] = { 23, 56, 499, 98, 32847, 0 };
+  char *value;
+  size_t value_length;
+  uint16_t flags;
+  unsigned int x;
+
+  rc= memcached_flush(memc, 0);
+  assert(rc == MEMCACHED_SUCCESS);
+
+  rc= memcached_set(memc, 
+                    key, strlen(key), 
+                    NULL, 0,
+                    (time_t)0, (uint16_t)0);
+  assert(rc == MEMCACHED_SUCCESS);
+
+  for (x= 0; store_list[x] ; x++)
+  {
+    rc= memcached_append(memc, 
+                         key, strlen(key), 
+                         (char *)&store_list[x], sizeof(unsigned int),
+                         (time_t)0, (uint16_t)0);
+    assert(rc == MEMCACHED_SUCCESS);
+  }
+
+  value= memcached_get(memc, key, strlen(key),
+                       &value_length, &flags, &rc);
+  assert((value_length == (sizeof(unsigned int) * x)));
+  assert(rc == MEMCACHED_SUCCESS);
+
+  store_ptr= store_list;
+  x= 0;
+  while (*store_ptr)
+  {
+    assert(*store_ptr == store_list[x++]);
+    store_ptr++;
+  }
+
+  return 0;
+}
+
 uint8_t cas_test(memcached_st *memc)
 {
   memcached_return rc;
@@ -1619,6 +1664,7 @@ test_st version_1_2_3[] ={
   {"append", 0, append_test },
   {"prepend", 0, prepend_test },
 //  {"cas", 0, cas_test },
+  {"append_binary", 0, append_binary_test },
   {0, 0, 0}
 };