tests: enable sasl
[awesomized/libmemcached] / libtest / memcached.cc
index 24bc3b8d18352da7d19656678e1cd6ef79d62a57..caeb11c363e90312f661bf46949207b268351a7b 100644 (file)
@@ -72,21 +72,26 @@ public:
             const std::string& username_arg,
             const std::string& password_arg) :
     libtest::Server(host_arg, port_arg, 
-                    MEMCACHED_BINARY, false, is_socket_arg),
+                    memcached_binary(), false, is_socket_arg),
     _username(username_arg),
     _password(password_arg)
   { }
 
   Memcached(const std::string& host_arg, const in_port_t port_arg, const bool is_socket_arg) :
     libtest::Server(host_arg, port_arg,
-                    MEMCACHED_BINARY, false, is_socket_arg)
+                    memcached_binary(), false, is_socket_arg)
   {
     set_pid_file();
   }
 
   virtual const char *sasl() const
   {
-    return NULL;
+    return "-S";
+  }
+
+  bool is_sasl() const
+  {
+    return _username.size() && _password.size();
   }
 
   const std::string& password() const
@@ -113,7 +118,7 @@ public:
       return false;
     }
 
-    if (is_socket())
+    if (is_socket() or is_sasl())
     {
       return _app.check();
     }
@@ -131,7 +136,7 @@ public:
 
   const char *executable()
   {
-    return MEMCACHED_BINARY;
+    return memcached_binary();
   }
 
   bool is_libtool()
@@ -156,7 +161,12 @@ public:
   {
     char buffer[30];
     snprintf(buffer, sizeof(buffer), "%d", int(arg));
-    app.add_option("-p", buffer); 
+    app.add_option("-p", buffer);
+
+    if(!is_sasl())
+    {
+      app.add_option("-U", buffer);
+    }
   }
 
   bool has_port_option() const
@@ -208,17 +218,19 @@ bool Memcached::build()
   add_option("-M");
 #endif
 
-  if (sasl())
+  if (is_sasl())
   {
     add_option(sasl());
   }
 
+  //add_option("-vvv");
+
   return true;
 }
 
 libtest::Server *build_memcached(const std::string& hostname, const in_port_t try_port)
 {
-  if (HAVE_MEMCACHED_BINARY)
+  if (has_memcached())
   {
     return new Memcached(hostname, try_port, false);
   }
@@ -228,7 +240,7 @@ libtest::Server *build_memcached(const std::string& hostname, const in_port_t tr
 
 libtest::Server *build_memcached_socket(const std::string& socket_file, const in_port_t try_port)
 {
-  if (HAVE_MEMCACHED_BINARY)
+  if (has_memcached())
   {
     return new Memcached(socket_file, try_port, true);
   }
@@ -236,4 +248,14 @@ libtest::Server *build_memcached_socket(const std::string& socket_file, const in
   return NULL;
 }
 
+libtest::Server *build_memcached_sasl(const std::string &hostname, const in_port_t try_port, const std::string &username, const std::string &password)
+{
+  if (has_memcached())
+  {
+    return new Memcached(hostname, try_port, false, username, password);
+  }
+
+  return NULL;
+}
+
 } // namespace libtest