Update
[awesomized/libmemcached] / libtest / gearmand.cc
index bcb7f8aaba2d7bcd7d033d4bf534b14b5ece03d2..1cb52079c6c95f612a10d053fcf9e30426d76861 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 
+#include <config.h>
 #include <libtest/common.h>
 
 #include <libtest/gearmand.h>
@@ -89,7 +90,7 @@ class Gearmand : public libtest::Server
 private:
 public:
   Gearmand(const std::string& host_arg, in_port_t port_arg) :
-    libtest::Server(host_arg, port_arg)
+    libtest::Server(host_arg, port_arg, GEARMAND_BINARY, true)
   {
     set_pid_file();
   }
@@ -159,62 +160,56 @@ public:
     return "gearmand";
   };
 
-  const char *executable()
+  void log_file_option(Application& app, const std::string& arg)
   {
-    return GEARMAND_BINARY;
-  }
-
-  const char *pid_file_option()
-  {
-    return "--pid-file=";
-  }
-
-  const char *daemon_file_option()
-  {
-    return "--daemon";
+    if (arg.empty() == false)
+    {
+      std::string buffer("--log-file=");
+      buffer+= arg;
+      app.add_option("--verbose=DEBUG");
+      app.add_option(buffer);
+    }
   }
 
-  const char *log_file_option()
+  bool has_log_file_option() const
   {
-    return "--verbose=DEBUG --log-file=";
+    return true;
   }
 
-  const char *port_option()
+  bool is_libtool()
   {
-    return "--port=";
+    return true;
   }
 
-  bool is_libtool()
+  bool has_syslog() const
   {
     return true;
   }
 
-  bool has_syslog() const
+  bool has_port_option() const
   {
     return true;
   }
 
-  bool build(int argc, const char *argv[]);
+  bool build(size_t argc, const char *argv[]);
 };
 
-bool Gearmand::build(int argc, const char *argv[])
+bool Gearmand::build(size_t argc, const char *argv[])
 {
   std::stringstream arg_buffer;
 
   if (getuid() == 0 or geteuid() == 0)
   {
-    arg_buffer << " -u root ";
+    add_option("-u", "root");
   }
 
-  arg_buffer << " --listen=localhost ";
+  add_option("--listen=localhost");
 
-  for (int x= 1 ; x < argc ; x++)
+  for (size_t x= 0 ; x < argc ; x++)
   {
-    arg_buffer << " " << argv[x] << " ";
+    add_option(argv[x]);
   }
 
-  set_extra_args(arg_buffer.str());
-
   return true;
 }