memcap works, though it does nothing useful at the moment :)
[m6w6/libmemcached] / tests / test.c
index 4ce1fb9154b006643030c6d328200ccccb11614a..3ebb24297a6f32759d1070c5d0dfeab17ab96353 100644 (file)
@@ -536,12 +536,83 @@ void get_stats_multiple(void)
  memcached_deinit(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_init(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_deinit(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_init(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_deinit(memc);
+}
+
 
 int main(int argc, char *argv[])
 {
   /* Clean the server before beginning testing */
   flush_test();
-#ifdef CRAP
   init_test();
   allocation_test();
   connection_test();
@@ -555,7 +626,6 @@ int main(int argc, char *argv[])
   get_test();
   get_test2();
   get_test3();
-#endif
   get_test4();
   stats_servername_test();
 
@@ -564,6 +634,7 @@ int main(int argc, char *argv[])
   quit_test();
   mget_test();
   get_stats();
+  add_host_test();
 
   /* The multiple tests */
   if (argc == 2)