Fixing broken memstat application
[m6w6/libmemcached] / tests / test.c
index abd4c8ae70c495db872f8d043b7d77ef1659cd1e..37ed800bce55415cefe62927c74daad19c80c88a 100644 (file)
@@ -11,34 +11,34 @@ void init_test(void)
 {
   memcached_st memc;
 
-  (void)memcached_init(&memc);
-  memcached_deinit(&memc);
+  (void)memcached_create(&memc);
+  memcached_free(&memc);
 }
 
 void allocation_test(void)
 {
   memcached_st *memc;
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void connection_test(void)
 {
   memcached_return rc;
   memcached_st *memc;
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
   assert(memc);
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void error_test(void)
 {
   memcached_st *memc;
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   memcached_return rc;
 
   for (rc= MEMCACHED_SUCCESS; rc < MEMCACHED_MAXIMUM_RETURN; rc++)
@@ -47,7 +47,7 @@ void error_test(void)
   }
 
   assert(memc);
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void set_test(void)
@@ -57,16 +57,16 @@ void set_test(void)
   char *key= "foo";
   char *value= "when we sanitize";
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
   rc= memcached_set(memc, key, strlen(key), 
                     value, strlen(value),
                     (time_t)0, (uint16_t)0);
   assert(rc == MEMCACHED_SUCCESS);
   
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void add_test(void)
@@ -76,16 +76,16 @@ void add_test(void)
   char *key= "foo";
   char *value= "when we sanitize";
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
   rc= memcached_add(memc, key, strlen(key), 
                     value, strlen(value),
                     (time_t)0, (uint16_t)0);
   assert(rc == MEMCACHED_NOTSTORED);
   
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void replace_test(void)
@@ -95,16 +95,16 @@ void replace_test(void)
   char *key= "foo";
   char *value= "when we sanitize";
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
   rc= memcached_replace(memc, key, strlen(key), 
                     value, strlen(value),
                     (time_t)0, (uint16_t)0);
   assert(rc == MEMCACHED_SUCCESS);
   
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void delete_test(void)
@@ -114,9 +114,9 @@ void delete_test(void)
   char *key= "foo";
   char *value= "when we sanitize";
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
   rc= memcached_set(memc, key, strlen(key), 
                     value, strlen(value),
@@ -126,7 +126,7 @@ void delete_test(void)
   rc= memcached_delete(memc, key, strlen(key), (time_t)0);
   assert(rc == MEMCACHED_SUCCESS);
   
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void flush_test(void)
@@ -134,14 +134,14 @@ void flush_test(void)
   memcached_st *memc;
   memcached_return rc;
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
   rc= memcached_flush(memc, 0);
   assert(rc == MEMCACHED_SUCCESS);
 
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void get_test(void)
@@ -153,9 +153,9 @@ void get_test(void)
   size_t string_length;
   uint16_t flags;
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
   
   string= memcached_get(memc, key, strlen(key),
@@ -165,7 +165,7 @@ void get_test(void)
   assert(string_length ==  0);
   assert(!string);
 
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void get_test2(void)
@@ -178,9 +178,9 @@ void get_test2(void)
   size_t string_length;
   uint16_t flags;
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
 
   rc= memcached_set(memc, key, strlen(key), 
@@ -198,7 +198,7 @@ void get_test2(void)
 
   free(string);
 
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void get_test3(void)
@@ -219,9 +219,9 @@ void get_test3(void)
   for (x= 0; x < value_length; x++)
     value[x] = (char) (x % 127);
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
 
   rc= memcached_set(memc, key, strlen(key), 
@@ -240,7 +240,52 @@ void get_test3(void)
   free(string);
   free(value);
 
-  memcached_deinit(memc);
+  memcached_free(memc);
+}
+
+void get_test4(void)
+{
+  memcached_st *memc;
+  memcached_return rc;
+  char *key= "foo";
+  char *value;
+  size_t value_length= 8191;
+  char *string;
+  size_t string_length;
+  uint16_t flags;
+  int x;
+
+  value = (char*)malloc(value_length);
+  assert(value);
+
+  for (x= 0; x < value_length; x++)
+    value[x] = (char) (x % 127);
+
+  memc= memcached_create(NULL);
+  assert(memc);
+  rc= memcached_server_add(memc, "localhost", 0);
+  assert(rc == MEMCACHED_SUCCESS);
+
+  rc= memcached_set(memc, key, strlen(key), 
+                    value, value_length,
+                    (time_t)0, (uint16_t)0);
+  assert(rc == MEMCACHED_SUCCESS);
+
+  for (x= 0; x < 10; x++)
+  {
+    string= memcached_get(memc, key, strlen(key),
+                          &string_length, &flags, &rc);
+
+    assert(rc == MEMCACHED_SUCCESS);
+    assert(string);
+    assert(string_length == value_length);
+    assert(!memcmp(string, value, string_length));
+    free(string);
+  }
+
+  free(value);
+
+  memcached_free(memc);
 }
 
 void stats_servername_test(void)
@@ -248,7 +293,7 @@ void stats_servername_test(void)
   memcached_return rc;
   memcached_stat_st stat;
   rc= memcached_stat_servername(&stat, NULL,
-                                 "zim.tangent.org", 
+                                 "localhost", 
                                  MEMCACHED_DEFAULT_PORT);
 }
 
@@ -260,9 +305,9 @@ void increment_test(void)
   char *key= "number";
   char *value= "0";
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
 
   rc= memcached_set(memc, key, strlen(key), 
@@ -280,7 +325,7 @@ void increment_test(void)
   assert(rc == MEMCACHED_SUCCESS);
   assert(new_number == 2);
 
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void decrement_test(void)
@@ -291,9 +336,9 @@ void decrement_test(void)
   char *key= "number";
   char *value= "3";
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
 
   rc= memcached_set(memc, key, strlen(key), 
@@ -311,7 +356,7 @@ void decrement_test(void)
   assert(rc == MEMCACHED_SUCCESS);
   assert(new_number == 1);
 
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void quit_test(void)
@@ -321,9 +366,9 @@ void quit_test(void)
   char *key= "fudge";
   char *value= "sanford and sun";
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
 
   rc= memcached_set(memc, key, strlen(key), 
@@ -337,7 +382,7 @@ void quit_test(void)
                     (time_t)50, (uint16_t)9);
   assert(rc == MEMCACHED_SUCCESS);
   
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void mget_test(void)
@@ -354,9 +399,9 @@ void mget_test(void)
   char *return_value;
   size_t return_value_length;
 
-  memc= memcached_init(NULL);
+  memc= memcached_create(NULL);
   assert(memc);
-  rc= memcached_server_add(memc, "zim.tangent.org", 0);
+  rc= memcached_server_add(memc, "localhost", 0);
   assert(rc == MEMCACHED_SUCCESS);
 
   /* We need to empty the server before continueing test */
@@ -387,8 +432,8 @@ void mget_test(void)
   assert(rc == MEMCACHED_SUCCESS);
 
   x= 0;
-  while (return_value= memcached_fetch(memc, return_key, &return_key_length, 
-                      &return_value_length, &flags, &rc))
+  while ((return_value= memcached_fetch(memc, return_key, &return_key_length, 
+                                        &return_value_length, &flags, &rc)))
   {
     assert(return_value);
     assert(rc == MEMCACHED_SUCCESS);
@@ -398,7 +443,7 @@ void mget_test(void)
     x++;
   }
 
-  memcached_deinit(memc);
+  memcached_free(memc);
 }
 
 void get_stats_keys(void)
@@ -409,7 +454,7 @@ void get_stats_keys(void)
  memcached_stat_st stat;
  memcached_return rc;
 
- memc= memcached_init(NULL);
+ memc= memcached_create(NULL);
  assert(memc);
 
  list= memcached_stat_get_keys(memc, &stat, &rc);
@@ -418,7 +463,7 @@ void get_stats_keys(void)
    printf("Found key %s\n", *ptr);
 
  free(list);
- memcached_deinit(memc);
+ memcached_free(memc);
 }
 
 void get_stats(void)
@@ -430,9 +475,9 @@ void get_stats(void)
  memcached_st *memc;
  memcached_stat_st *stat;
 
- memc= memcached_init(NULL);
+ memc= memcached_create(NULL);
  assert(memc);
- rc= memcached_server_add(memc, "zim.tangent.org", 0);
+ rc= memcached_server_add(memc, "localhost", 0);
  assert(rc == MEMCACHED_SUCCESS);
 
  stat= memcached_stat(memc, NULL, &rc);
@@ -452,7 +497,7 @@ void get_stats(void)
  }
 
  free(stat);
- memcached_deinit(memc);
+ memcached_free(memc);
 }
 
 void get_stats_multiple(void)
@@ -464,11 +509,11 @@ void get_stats_multiple(void)
  memcached_st *memc;
  memcached_stat_st *stat;
 
- memc= memcached_init(NULL);
+ memc= memcached_create(NULL);
  assert(memc);
- rc= memcached_server_add(memc, "zim.tangent.org", 0);
+ rc= memcached_server_add(memc, "localhost", 0);
  assert(rc == MEMCACHED_SUCCESS);
- rc= memcached_server_add(memc, "zim.tangent.org", 5555);
+ rc= memcached_server_add(memc, "localhost", 5555);
  assert(rc == MEMCACHED_SUCCESS);
 
  stat= memcached_stat(memc, NULL, &rc);
@@ -488,11 +533,83 @@ void get_stats_multiple(void)
  }
 
  free(stat);
- memcached_deinit(memc);
+ memcached_free(memc);
+}
+
+void add_host_test(void)
+{
+  unsigned int x;
+  memcached_st *memc;
+  memcached_server_st *servers;
+  memcached_return rc;
+  char servername[]= "0.example.com";
+
+  memc= memcached_create(NULL);
+  assert(memc);
+  rc= memcached_server_add(memc, "localhost", 0);
+  assert(rc == MEMCACHED_SUCCESS);
+
+  servers= memcached_server_list_append(NULL, servername, 400, &rc);
+  assert(servers);
+  assert(1 == memcached_server_list_count(servers));
+
+  for (x= 2; x < 20; x++)
+  {
+    char buffer[SMALL_STRING_LEN];
+
+    snprintf(buffer, SMALL_STRING_LEN, "%u.example.com", 400+x);
+    servers= memcached_server_list_append(servers, buffer, 401, 
+                                     &rc);
+    assert(rc == MEMCACHED_SUCCESS);
+    assert(x == memcached_server_list_count(servers));
+  }
+
+  rc= memcached_server_push(memc, servers);
+  assert(rc == MEMCACHED_SUCCESS);
+  rc= memcached_server_push(memc, servers);
+  assert(rc == MEMCACHED_SUCCESS);
+
+  memcached_server_list_free(servers);
+  memcached_free(memc);
+}
+
+void add_host_test1(void)
+{
+  unsigned int x;
+  memcached_st *memc;
+  memcached_server_st *servers;
+  memcached_return rc;
+  char servername[]= "0.example.com";
+
+  memc= memcached_create(NULL);
+  assert(memc);
+
+  servers= memcached_server_list_append(NULL, servername, 400, &rc);
+  assert(servers);
+  assert(1 == memcached_server_list_count(servers));
+
+  for (x= 2; x < 20; x++)
+  {
+    char buffer[SMALL_STRING_LEN];
+
+    snprintf(buffer, SMALL_STRING_LEN, "%u.example.com", 400+x);
+    servers= memcached_server_list_append(servers, buffer, 401, 
+                                     &rc);
+    assert(rc == MEMCACHED_SUCCESS);
+    assert(x == memcached_server_list_count(servers));
+  }
+
+  rc= memcached_server_push(memc, servers);
+  assert(rc == MEMCACHED_SUCCESS);
+  rc= memcached_server_push(memc, servers);
+  assert(rc == MEMCACHED_SUCCESS);
+
+  memcached_server_list_free(servers);
+  memcached_free(memc);
 }
 
 
-int main(int argc, char argvp[])
+int main(int argc, char *argv[])
 {
   /* Clean the server before beginning testing */
   flush_test();
@@ -509,6 +626,7 @@ int main(int argc, char argvp[])
   get_test();
   get_test2();
   get_test3();
+  get_test4();
   stats_servername_test();
 
   increment_test();
@@ -516,6 +634,7 @@ int main(int argc, char argvp[])
   quit_test();
   mget_test();
   get_stats();
+  add_host_test();
 
   /* The multiple tests */
   if (argc == 2)