Update from libtest
[m6w6/libmemcached] / libtest / runner.h
index 8678c4c0edf1ae39a7bfbcb4535407788782f52d..ea42c26037cb4c283537cfa08bd2aa5331371cb7 100644 (file)
@@ -1,19 +1,56 @@
-/* uTest Copyright (C) 2011 Data Differential, http://datadifferential.com/
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  libtest
  *
- * Use and distribution licensed under the BSD license.  See
- * the COPYING file in the parent directory for full text.
+ *  Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 3 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+
 #pragma once
 
 
+namespace libtest {
+
 /**
   Structure which houses the actual callers for the test cases contained in
   the collections.
 */
-struct Runner {
-  test_callback_runner_fn *pre;
-  test_callback_runner_fn *run;
-  test_callback_runner_fn *post;
+class Runner {
+public:
+  virtual test_return_t run(test_callback_fn* func, void *object);
+  virtual test_return_t pre(test_callback_fn* func, void *object);
+  virtual test_return_t post(test_callback_fn* func, void *object);
+
+  Runner();
+
+  void set_servers(libtest::server_startup_st& arg)
+  {
+    _servers= &arg;
+  }
+
+  bool check()
+  {
+    return _servers ? _servers->check() : true;
+  }
+
+  virtual ~Runner() { }
+
+private:
+  libtest::server_startup_st* _servers;
 };
 
+} // namespace Runner