Refactor out portion of Item
authorBrian Aker <brian@tangent.org>
Fri, 20 Apr 2012 06:37:24 +0000 (23:37 -0700)
committerBrian Aker <brian@tangent.org>
Fri, 20 Apr 2012 06:37:24 +0000 (23:37 -0700)
libtest/main.cc
libtest/runner.cc
libtest/runner.h
tests/runner.h

index dcbc50eb536879392b1bfa6ce9b1a373d299128e..697cce1c4782610db3e0eeee3cbeb5735839f4bd 100644 (file)
@@ -308,7 +308,12 @@ int main(int argc, char *argv[])
           try {
             if (test_success(return_code= world.item.startup(creators_ptr)))
             {
-              if (test_success(return_code= world.item.flush(creators_ptr, run)))
+              if (run->requires_flush)
+              {
+                return_code= world.runner()->flush(creators_ptr);
+              }
+
+              if (test_success(return_code))
               {
                 { // Runner Code
                   gettimeofday(&start_time, NULL);
index 6b8d0d483424fc7dc28940b0626ed4d2129743ab..d58aea17adb832f9e2f0a6133a7c2de62a84bbe5 100644 (file)
@@ -29,6 +29,11 @@ Runner::Runner()
 {
 }
 
+test_return_t Runner::flush(void*)
+{
+  return TEST_SUCCESS;
+}
+
 test_return_t Runner::run(test_callback_fn* func, void *object)
 {
   if (func)
index ea42c26037cb4c283537cfa08bd2aa5331371cb7..5ee87ff75aef3100f42d04a622a0daa1cd76cfc1 100644 (file)
@@ -31,6 +31,7 @@ namespace libtest {
 */
 class Runner {
 public:
+  virtual test_return_t flush(void*);
   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);
index deb685afd4c966d2a24b110896edd6e41bcd4b77..6c7eaaff91c07017466362891592ff909cf146ea 100644 (file)
@@ -47,6 +47,20 @@ public:
     return _runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object);
   }
 
+  test_return_t flush(void* arg)
+  {
+    return flush((libmemcached_test_container_st*)arg);
+  }
+
+  test_return_t flush(libmemcached_test_container_st *container)
+  {
+    test_true(container->memc);
+    memcached_flush(container->memc, 0);
+    memcached_quit(container->memc);
+
+    return TEST_SUCCESS;
+  }
+
   test_return_t pre(test_callback_fn* func, void *object)
   {
     return _pre_runner_default(libmemcached_test_callback_fn(func), (libmemcached_test_container_st*)object);