Update framework.
[m6w6/libmemcached] / libtest / cmdline.h
index 7b0afc5ffc27310374ac7e3457d1c5e7d8df7536..a3d9cb25333fb6b33da74febfa544e44d846160b 100644 (file)
@@ -39,29 +39,28 @@ public:
 
   class Pipe {
   public:
-    Pipe();
+    Pipe(int);
     ~Pipe();
 
-    int* fd()
-    {
-      return _fd;
-    }
+    int fd();
 
     enum close_t {
-      READ,
-      WRITE
+      READ= 0,
+      WRITE= 1
     };
 
     void reset();
     void close(const close_t& arg);
     void dup_for_spawn(const close_t& arg,
-                       posix_spawn_file_actions_t& file_actions,
-                       const int newfildes);
+                       posix_spawn_file_actions_t& file_actions);
 
     void nonblock();
+    void cloexec();
+    bool read(libtest::vchar_t&);
 
   private:
-    int _fd[2];
+    const int _std_fd;
+    int _pipe_fd[2];
     bool _open[2];
   };
 
@@ -91,6 +90,11 @@ public:
     return _stderr_buffer;
   }
 
+  const char* stderr_c_str() const
+  {
+    return &_stderr_buffer[0];
+  }
+
   size_t stderr_result_length() const
   {
     return _stderr_buffer.size();
@@ -113,6 +117,11 @@ public:
     _use_gdb= arg;
   }
 
+  void use_ptrcheck(bool arg= true)
+  {
+    _use_ptrcheck= arg;
+  }
+
   std::string arguments();
 
   std::string gdb_filename()
@@ -125,6 +134,11 @@ public:
     return _pid;
   }
 
+  void will_fail()
+  {
+    _will_fail= true;
+  }
+
 private:
   void create_argv(const char *args[]);
   void delete_argv();
@@ -133,6 +147,8 @@ private:
   const bool _use_libtool;
   bool _use_valgrind;
   bool _use_gdb;
+  bool _use_ptrcheck;
+  bool _will_fail;
   size_t _argc;
   std::string _exectuble_name;
   std::string _exectuble;
@@ -174,5 +190,6 @@ static inline std::ostream& operator<<(std::ostream& output, const enum Applicat
 int exec_cmdline(const std::string& executable, const char *args[], bool use_libtool= false);
 
 const char *gearmand_binary(); 
+const char *drizzled_binary();
 
 }