Merge in changes around setting up better syntax for distribution.
[awesomized/libmemcached] / tests / parser.cc
index 717859b469e6b65ac58807ca8f2b65519d60b2e8..4fccaeee5bf442e3903fb248de79c933d5687834 100644 (file)
@@ -41,6 +41,7 @@
 #include <iostream>
 #include <string>
 
+#define BUILDING_LIBMEMCACHED
 #include <libmemcached/memcached.h>
 
 #include "tests/parser.h"
@@ -201,11 +202,7 @@ scanner_variable_t test_boolean_options[]= {
   { ARRAY,  make_scanner_string("--BINARY_PROTOCOL"), scanner_string_null, NULL },
   { ARRAY,  make_scanner_string("--BUFFER_REQUESTS"), scanner_string_null, NULL },
   { ARRAY,  make_scanner_string("--CACHE_LOOKUPS"), scanner_string_null, __check_CACHE_LOOKUPS },
-#if 0 // Not all platforms support
-  { ARRAY,  make_scanner_string("--CORK"), scanner_string_null, NULL },
-#endif
   { ARRAY,  make_scanner_string("--HASH_WITH_PREFIX_KEY"), scanner_string_null, NULL },
-  { ARRAY,  make_scanner_string("--KETAMA"), scanner_string_null, NULL },
   { ARRAY,  make_scanner_string("--KETAMA_WEIGHTED"), scanner_string_null, NULL },
   { ARRAY,  make_scanner_string("--NOREPLY"), scanner_string_null, __check_NOREPLY },
   { ARRAY,  make_scanner_string("--RANDOMIZE_REPLICA_READ"), scanner_string_null, NULL },
@@ -228,6 +225,8 @@ scanner_variable_t prefix_key_strings[]= {
 
 scanner_variable_t distribution_strings[]= {
   { ARRAY,  make_scanner_string("--DISTRIBUTION=consistent"), scanner_string_null, NULL },
+  { ARRAY,  make_scanner_string("--DISTRIBUTION=consistent,CRC"), scanner_string_null, NULL },
+  { ARRAY,  make_scanner_string("--DISTRIBUTION=consistent,MD5"), scanner_string_null, NULL },
   { ARRAY,  make_scanner_string("--DISTRIBUTION=random"), scanner_string_null, __check_distribution_RANDOM },
   { ARRAY,  make_scanner_string("--DISTRIBUTION=modula"), scanner_string_null, NULL },
   { NIL, scanner_string_null, scanner_string_null, NULL}
@@ -345,15 +344,21 @@ test_return_t parser_key_prefix_test(memcached_st *junk)
   return _test_option(distribution_strings);
 }
 
+#define SUPPORT_EXAMPLE_CNF "support/example.cnf"
+
 test_return_t memcached_parse_configure_file_test(memcached_st *junk)
 {
   (void)junk;
+
+  if (access(SUPPORT_EXAMPLE_CNF, R_OK))
+    return TEST_SKIPPED;
+
   memcached_st memc;
   memcached_st *memc_ptr= memcached_create(&memc);
 
   test_true(memc_ptr);
 
-  memcached_return_t rc= memcached_parse_configure_file(memc_ptr, memcached_string_with_size("support/example.cnf"));
+  memcached_return_t rc= memcached_parse_configure_file(memc_ptr, memcached_string_with_size(SUPPORT_EXAMPLE_CNF));
   test_true_got(rc == MEMCACHED_SUCCESS, memcached_last_error_message(memc_ptr) ? memcached_last_error_message(memc_ptr) : memcached_strerror(NULL, rc));
   memcached_free(memc_ptr);
 
@@ -363,6 +368,8 @@ test_return_t memcached_parse_configure_file_test(memcached_st *junk)
 test_return_t memcached_create_with_options_with_filename(memcached_st *junk)
 {
   (void)junk;
+  if (access(SUPPORT_EXAMPLE_CNF, R_OK))
+    return TEST_SKIPPED;
 
   memcached_st *memc_ptr;
   memc_ptr= memcached_create_with_options(STRING_WITH_LEN("--CONFIGURE-FILE=\"support/example.cnf\""));
@@ -375,6 +382,10 @@ test_return_t memcached_create_with_options_with_filename(memcached_st *junk)
 test_return_t libmemcached_check_configuration_with_filename_test(memcached_st *junk)
 {
   (void)junk;
+
+  if (access(SUPPORT_EXAMPLE_CNF, R_OK))
+    return TEST_SKIPPED;
+
   memcached_return_t rc;
   char buffer[BUFSIZ];
 
@@ -424,6 +435,9 @@ test_return_t memcached_create_with_options_test(memcached_st *junk)
 
 test_return_t test_include_keyword(memcached_st *junk)
 {
+  if (access(SUPPORT_EXAMPLE_CNF, R_OK))
+    return TEST_SKIPPED;
+
   (void)junk;
   char buffer[BUFSIZ];
   memcached_return_t rc;
@@ -505,11 +519,10 @@ test_return_t random_statement_build_test(memcached_st *junk)
       random_options+= option_list[random() % option_list.size()]->c_str;
       random_options+= " ";
     }
-    random_options.resize(random_options.size() -1);
 
     memcached_return_t rc;
     memcached_st *memc_ptr= memcached_create(NULL);
-    rc= memcached_parse_configuration(memc_ptr, random_options.c_str(), random_options.size());
+    rc= memcached_parse_configuration(memc_ptr, random_options.c_str(), random_options.size() -1);
     if (rc == MEMCACHED_PARSE_ERROR)
     {
       std::cerr << std::endl << "Failed to parse(" << memcached_strerror(NULL, rc) << "): " << random_options << std::endl;