Sync libtest.
[m6w6/libmemcached] / libtest / server.h
index 9c8f048bd393049f4739c9e83093b915d95aa704..1aa16ca0a19767b95664e5f4fe3055d1608ecf65 100644 (file)
@@ -39,6 +39,7 @@ private:
   typedef std::vector< std::pair<std::string, std::string> > Options;
 
 private:
+  uint64_t _magic;
   bool _is_socket;
   std::string _socket;
   std::string _sasl;
@@ -54,13 +55,13 @@ protected:
   std::string _extra_args;
 
 public:
-  Server(const std::string& hostname, const in_port_t port_arg, const bool is_socket_arg= false);
+  Server(const std::string& hostname, const in_port_t port_arg,
+         const std::string& executable, const bool _is_libtool,
+         const bool is_socket_arg= false);
 
   virtual ~Server();
 
   virtual const char *name()= 0;
-  virtual const char *executable()= 0;
-  virtual const char *daemon_file_option()= 0;
   virtual bool is_libtool()= 0;
 
   virtual bool has_socket_file_option() const
@@ -78,7 +79,7 @@ public:
     }
   }
 
-  bool has_log_file_option() const
+  virtual bool has_log_file_option() const
   {
     return false;
   }
@@ -97,7 +98,7 @@ public:
   {
     if (arg.empty() == false)
     {
-      std::string buffer("--socket=");
+      std::string buffer("--pid-file=");
       buffer+= arg;
       app.add_option(buffer);
     }
@@ -164,7 +165,7 @@ public:
 
   virtual pid_t get_pid(bool error_is_ok= false)= 0;
 
-  virtual bool build(int argc, const char *argv[])= 0;
+  virtual bool build(size_t argc, const char *argv[])= 0;
 
   void add_option(const std::string&);
   void add_option(const std::string&, const std::string&);
@@ -201,12 +202,9 @@ public:
     return _pid;
   }
 
-  bool has_pid() const
-  {
-    return (_pid > 1);
-  }
+  bool has_pid() const;
 
-  bool wait_for_pidfile() const;
+  virtual bool wait_for_pidfile() const;
 
   bool check_pid(pid_t pid_arg) const
   {
@@ -223,15 +221,20 @@ public:
     return _running;
   }
 
+  bool check();
+
   std::string log_and_pid();
 
-  bool kill(pid_t pid_arg);
+  bool kill();
   bool start();
   bool command(libtest::Application& app);
 
+  bool validate();
+
 protected:
   bool set_pid_file();
   Options _options;
+  Application _app;
 
 private:
   bool is_helgrind() const;