Added behavior method around testing of keys.
[awesomized/libmemcached] / tests / function.c
index b971134e2c8c33afc2e70f896b758d85f10c3025..7c61db786eaf584ddeffe022833187ceccdc2080 100644 (file)
@@ -463,19 +463,34 @@ uint8_t flush_test(memcached_st *memc)
 
 uint8_t bad_key_test(memcached_st *memc)
 {
-#ifdef HAVE_DEBUG
   memcached_return rc;
   char *key= "foo bad";
   char *string;
   size_t string_length;
   uint32_t flags;
+  memcached_st *clone;
+  unsigned int set= 1;
 
-  string= memcached_get(memc, key, strlen(key),
+  clone= memcached_clone(NULL, memc);
+  assert(clone);
+
+  (void)memcached_behavior_set(clone, MEMCACHED_BEHAVIOR_VERIFY_KEY, &set);
+
+  string= memcached_get(clone, key, strlen(key),
                         &string_length, &flags, &rc);
   assert(rc == MEMCACHED_BAD_KEY_PROVIDED);
   assert(string_length ==  0);
   assert(!string);
-#endif
+
+  set= 0;
+  (void)memcached_behavior_set(clone, MEMCACHED_BEHAVIOR_VERIFY_KEY, &set);
+  string= memcached_get(clone, key, strlen(key),
+                        &string_length, &flags, &rc);
+  assert(rc == MEMCACHED_NOTFOUND);
+  assert(string_length ==  0);
+  assert(!string);
+
+  memcached_free(clone);
 
   return 0;
 }