Update for test system.
[awesomized/libmemcached] / tests / atomsmasher.c
index edc5250ece465665d60ce338d1ae1a44b64ab72f..d3074a7f1eb61da9aebb5a6b86d8af68b703016d 100644 (file)
@@ -1,6 +1,19 @@
+/* LibMemcached
+ * Copyright (C) 2006-2009 Brian Aker
+ * All rights reserved.
+ *
+ * Use and distribution licensed under the BSD license.  See
+ * the COPYING file in the parent directory for full text.
+ *
+ * Summary:
+ *
+ */
+
 /*
   Sample test application.
 */
+#include "libmemcached/common.h"
+
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -11,7 +24,6 @@
 #include <unistd.h>
 #include <time.h>
 #include "server.h"
-#include "../libmemcached/common.h"
 #include "../clients/generator.h"
 #include "../clients/execute.h"
 
@@ -36,14 +48,14 @@ static pairs_st *global_pairs;
 static char *global_keys[GLOBAL_COUNT];
 static size_t global_keys_length[GLOBAL_COUNT];
 
-test_return cleanup_pairs(memcached_st *memc)
+static test_return_t cleanup_pairs(memcached_st *memc __attribute__((unused)))
 {
   pairs_free(global_pairs);
 
   return 0;
 }
 
-test_return generate_pairs(memcached_st *memc)
+static test_return_t generate_pairs(memcached_st *memc __attribute__((unused)))
 {
   unsigned long long x;
   global_pairs= pairs_generate(GLOBAL_COUNT, 400);
@@ -58,10 +70,10 @@ test_return generate_pairs(memcached_st *memc)
   return 0;
 }
 
-test_return drizzle(memcached_st *memc)
+static test_return_t drizzle(memcached_st *memc)
 {
   unsigned int x;
-  memcached_return rc;
+  memcached_return_t rc;
   char *return_value;
   size_t return_value_length;
   uint32_t flags;
@@ -72,8 +84,8 @@ infinite:
     uint32_t test_bit;
     uint8_t which;
 
-    test_bit= random() % GLOBAL_COUNT;
-    which= random() % 2;
+    test_bit= (uint32_t)(random() % GLOBAL_COUNT);
+    which= (uint8_t)(random() % 2);
 
     if (which == 0)
     {
@@ -110,38 +122,38 @@ infinite:
   return 0;
 }
 
-memcached_return pre_nonblock(memcached_st *memc)
+static memcached_return_t pre_nonblock(memcached_st *memc)
 {
   memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_NO_BLOCK, 0);
 
   return MEMCACHED_SUCCESS;
 }
 
-memcached_return pre_md5(memcached_st *memc)
+static memcached_return_t pre_md5(memcached_st *memc)
 {
   memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_HASH, (uint64_t)MEMCACHED_HASH_MD5);
 
   return MEMCACHED_SUCCESS;
 }
 
-memcached_return pre_hsieh(memcached_st *memc)
+static memcached_return_t pre_hsieh(memcached_st *memc)
 {
   memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_HASH, (uint64_t)MEMCACHED_HASH_HSIEH);
 
   return MEMCACHED_SUCCESS;
 }
 
-memcached_return enable_consistent(memcached_st *memc)
+static memcached_return_t enable_consistent(memcached_st *memc)
 {
-  memcached_server_distribution value= MEMCACHED_DISTRIBUTION_CONSISTENT;
-  memcached_hash hash;
+  memcached_server_distribution_t value= MEMCACHED_DISTRIBUTION_CONSISTENT;
+  memcached_hash_t hash;
   memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, value);
   pre_hsieh(memc);
 
-  value= (memcached_server_distribution)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_DISTRIBUTION);
+  value= (memcached_server_distribution_t)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_DISTRIBUTION);
   assert(value == MEMCACHED_DISTRIBUTION_CONSISTENT);
 
-  hash= (memcached_hash)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_HASH);
+  hash= (memcached_hash_t)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_HASH);
   assert(hash == MEMCACHED_HASH_HSIEH);
 
 
@@ -152,11 +164,11 @@ memcached_return enable_consistent(memcached_st *memc)
   Set the value, then quit to make sure it is flushed.
   Come back in and test that add fails.
 */
-test_return add_test(memcached_st *memc)
+static test_return_t add_test(memcached_st *memc)
 {
-  memcached_return rc;
-  char *key= "foo";
-  char *value= "when we sanitize";
+  memcached_return_t rc;
+  const char *key= "foo";
+  const char *value= "when we sanitize";
   unsigned long long setting_value;
 
   setting_value= memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_NO_BLOCK);
@@ -164,7 +176,7 @@ test_return add_test(memcached_st *memc)
   rc= memcached_set(memc, key, strlen(key), 
                     value, strlen(value),
                     (time_t)0, (uint32_t)0);
-  assert(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_BUFFERED);
+  test_truth(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_BUFFERED);
   memcached_quit(memc);
   rc= memcached_add(memc, key, strlen(key), 
                     value, strlen(value),
@@ -172,9 +184,13 @@ test_return add_test(memcached_st *memc)
 
   /* Too many broken OS'es have broken loopback in async, so we can't be sure of the result */
   if (setting_value)
-    assert(rc == MEMCACHED_NOTSTORED || MEMCACHED_STORED);
+  {
+    test_truth(rc == MEMCACHED_NOTSTORED || rc == MEMCACHED_STORED);
+  }
   else
-    assert(rc == MEMCACHED_NOTSTORED);
+  {
+    test_truth(rc == MEMCACHED_NOTSTORED);
+  }
 
   return 0;
 }
@@ -183,61 +199,48 @@ test_return add_test(memcached_st *memc)
  * repeating add_tests many times
  * may show a problem in timing
  */
-test_return many_adds(memcached_st *memc)
+static test_return_t many_adds(memcached_st *memc)
 {
   unsigned int i;
-  for (i = 0; i < TEST_COUNTER; i++){
+  for (i = 0; i < TEST_COUNTER; i++)
+  {
     add_test(memc);
   }
   return 0;
 }
 
 test_st smash_tests[] ={
-  {"generate_pairs", 1, generate_pairs },
-  {"drizzle", 1, drizzle },
-  {"cleanup", 1, cleanup_pairs },
-  {"many_adds", 1, many_adds },
+  {"generate_pairs", 1, (test_callback_fn)generate_pairs },
+  {"drizzle", 1, (test_callback_fn)drizzle },
+  {"cleanup", 1, (test_callback_fn)cleanup_pairs },
+  {"many_adds", 1, (test_callback_fn)many_adds },
   {0, 0, 0}
 };
 
 
 collection_st collection[] ={
   {"smash", 0, 0, smash_tests},
-  {"smash_hsieh", pre_hsieh, 0, smash_tests},
-  {"smash_hsieh_consistent", enable_consistent, 0, smash_tests},
-  {"smash_md5", pre_md5, 0, smash_tests},
-  {"smash_nonblock", pre_nonblock, 0, smash_tests},
+  {"smash_hsieh", (test_callback_fn)pre_hsieh, 0, smash_tests},
+  {"smash_hsieh_consistent", (test_callback_fn)enable_consistent, 0, smash_tests},
+  {"smash_md5", (test_callback_fn)pre_md5, 0, smash_tests},
+  {"smash_nonblock", (test_callback_fn)pre_nonblock, 0, smash_tests},
   {0, 0, 0, 0}
 };
 
-#define SERVERS_TO_CREATE 5
 
-void *world_create(void)
-{
-  server_startup_st *construct;
-
-  construct= (server_startup_st *)malloc(sizeof(server_startup_st));
-  memset(construct, 0, sizeof(server_startup_st));
-  construct->count= SERVERS_TO_CREATE;
-  construct->udp= 0;
-  server_startup(construct);
-
-  return construct;
-}
-
-void world_destroy(void *p)
-{
-  server_startup_st *construct= (server_startup_st *)p;
-  memcached_server_st *servers= (memcached_server_st *)construct->servers;
-  memcached_server_list_free(servers);
+#define SERVERS_TO_CREATE 5
 
-  server_shutdown(construct);
-  free(construct);
-}
+#include "libmemcached_world.h"
 
 void get_world(world_st *world)
 {
   world->collections= collection;
-  world->create= world_create;
-  world->destroy= world_destroy;
+  world->collection_startup= (test_callback_fn)world_collection_startup;
+  world->flush= (test_callback_fn)world_flush;
+  world->pre_run= (test_callback_fn)world_pre_run;
+  world->create= (test_callback_create_fn)world_create;
+  world->post_run= (test_callback_fn)world_post_run;
+  world->on_error= (test_callback_error_fn)world_on_error;
+  world->destroy= (test_callback_fn)world_destroy;
+  world->runner= &defualt_libmemcached_runner;
 }