Update testing.
authorBrian Aker <brian@tangent.org>
Tue, 23 Aug 2011 07:39:02 +0000 (00:39 -0700)
committerBrian Aker <brian@tangent.org>
Tue, 23 Aug 2011 07:39:02 +0000 (00:39 -0700)
13 files changed:
bootstrap.sh [new file with mode: 0755]
configure.ac
libtest/binaries.cc [new file with mode: 0644]
libtest/binaries.h [new file with mode: 0644]
libtest/include.am
libtest/test.cc
libtest/test.hpp
libtest/unittest.cc
m4/gearmand.m4 [new file with mode: 0644]
m4/memcached.m4
m4/memcached_sasl.m4
m4/pandora_with_memcached.m4 [deleted file]
tests/libmemcached_world.h

diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755 (executable)
index 0000000..e1c39ec
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+if test -f configure; then make clean; make merge-clean; make distclean; fi;
+
+rm -r -f autom4te.cache
+./config/autorun.sh
+./configure
+make
index a7590b05c5c459dbbff07e6a9e1e494a9e12957e..045b562f593ae6443ecc8bde695bea5ddfb2ade2 100644 (file)
@@ -55,6 +55,7 @@ AC_SUBST(HASHKIT_LIBRARY_VERSION)
 LT_INIT
 m4_include([m4/memcached.m4])
 m4_include([m4/memcached_sasl.m4])
+m4_include([m4/gearmand.m4])
 
 AM_CONDITIONAL(BUILDING_LIBMEMCACHED, true)
 AM_CONDITIONAL(HAVE_LIBMEMCACHED, false)
diff --git a/libtest/binaries.cc b/libtest/binaries.cc
new file mode 100644 (file)
index 0000000..00a8976
--- /dev/null
@@ -0,0 +1,63 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  libtest
+ *
+ *  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
+ */
+
+
+#include <libtest/common.h>
+
+namespace libtest {
+
+bool has_gearmand_binary()
+{
+#if defined(HAVE_GEARMAND_BINARY) && HAVE_GEARMAND_BINARY
+  if (access(GEARMAND_BINARY,R_OK|X_OK) == 0)
+  {
+    return true;
+  }
+#endif
+
+  return false;
+}
+
+bool has_memcached_binary()
+{
+#if defined(HAVE_MEMCACHED_BINARY) && HAVE_MEMCACHED_BINARY
+  if (access(MEMCACHED_BINARY,R_OK|X_OK) == 0)
+  {
+    return true;
+  }
+#endif
+
+  return false;
+}
+
+bool has_memcached_sasl_binary()
+{
+#if defined(HAVE_MEMCACHED_SASL_BINARY) && HAVE_MEMCACHED_SASL_BINARY
+  if (access(MEMCACHED_SASL_BINARY, R_OK|X_OK) == 0)
+  {
+    return true;
+  }
+#endif
+
+  return false;
+}
+
+}
diff --git a/libtest/binaries.h b/libtest/binaries.h
new file mode 100644 (file)
index 0000000..e071016
--- /dev/null
@@ -0,0 +1,36 @@
+/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
+ * 
+ *  libtest
+ *
+ *  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 {
+
+LIBTEST_API
+bool has_memcached_binary();
+
+LIBTEST_API
+bool has_memcached_sasl_binary();
+
+LIBTEST_API
+bool has_gearmand_binary();
+
+} // namespace libtest
+
index 044ca4f8e7bf9e2b8cbcda171936d8cba8c2ca54..d49e5acc75a6d578d3319d9dcac6f100f3c36f84 100644 (file)
@@ -84,12 +84,13 @@ noinst_HEADERS+= \
 
 noinst_LTLIBRARIES+= libtest/libtest.la
 libtest_libtest_la_SOURCES= \
+                           libtest/binaries.cc \
                            libtest/cmdline.cc \
                            libtest/framework.cc \
                            libtest/killpid.cc \
                            libtest/libtool.cc \
-                           libtest/runner.cc \
                            libtest/port.cc \
+                           libtest/runner.cc \
                            libtest/server.cc \
                            libtest/server_container.cc \
                            libtest/signal.cc \
index 89e7c07112e674c6a8a2be1e9c40cbf5c2a9733b..bae5c39ff0922fa75683217cc18a2e43a5e669cb 100644 (file)
@@ -170,7 +170,7 @@ int main(int argc, char *argv[])
 
   world= new Framework();
 
-  if (not world)
+  if (world == NULL)
   {
     Error << "Failed to create Framework()";
     return EXIT_FAILURE;
index 047dd8ce03390f245e5c6c71f95c0672786d154a..db7029436762a9dbe28409eaba5a72eb56dbcc49 100644 (file)
@@ -49,6 +49,7 @@
 #include <libtest/stream.h>
 #include <libtest/cmdline.h>
 #include <libtest/string.hpp>
+#include <libtest/binaries.h>
 
 #pragma once
 
index cee9b52ec1f5e24ea20e54343a301fcb86c69d13..3833a5bd7206bf6f7c69c11b95d25e285fd9cc01 100644 (file)
@@ -219,7 +219,7 @@ static test_return_t _compare_gearman_return_t_test(void *)
 {
   test_skip(HAVE_LIBGEARMAN, true);
 #if defined(HAVE_LIBGEARMAN) && HAVE_LIBGEARMAN
-    test_compare(GEARMAN_SUCCESS, GEARMAN_SUCCESS);
+  test_compare(GEARMAN_SUCCESS, GEARMAN_SUCCESS);
 #endif
 
   return TEST_SUCCESS;
@@ -230,8 +230,9 @@ static test_return_t gearmand_cycle_test(void *object)
   server_startup_st *servers= (server_startup_st*)object;
   test_true(servers);
 
-  if (HAVE_LIBGEARMAN)
+  if (HAVE_LIBGEARMAN and GEARMAND_BINARY)
   {
+    test_true(has_gearmand_binary());
     const char *argv[1]= { "cycle_gearmand" };
     test_true(server_startup(*servers, "gearmand", 9999, 1, argv));
 
@@ -248,6 +249,7 @@ static test_return_t memcached_cycle_test(void *object)
 
   if (MEMCACHED_BINARY and HAVE_LIBMEMCACHED) 
   {
+    test_true(has_memcached_binary());
     const char *argv[1]= { "cycle_memcached" };
     test_true(server_startup(*servers, "memcached", 9998, 1, argv));
 
@@ -264,6 +266,7 @@ static test_return_t memcached_socket_cycle_test(void *object)
 
   if (MEMCACHED_BINARY and HAVE_LIBMEMCACHED)
   {
+    test_true(has_memcached_binary());
     const char *argv[1]= { "cycle_memcached" };
     test_true(servers->start_socket_server("memcached", 9997, 1, argv));
 
@@ -285,6 +288,7 @@ static test_return_t memcached_sasl_test(void *object)
 
   if (MEMCACHED_SASL_BINARY and HAVE_LIBMEMCACHED)
   {
+    test_true(has_memcached_sasl_binary());
     const char *argv[1]= { "cycle_memcached_sasl" };
     test_true(server_startup(*servers, "memcached-sasl", 9996, 1, argv));
 
diff --git a/m4/gearmand.m4 b/m4/gearmand.m4
new file mode 100644 (file)
index 0000000..7765ace
--- /dev/null
@@ -0,0 +1,11 @@
+AX_WITH_PROG(GEARMAND_BINARY,gearmand)
+AS_IF([test -f "$ac_cv_path_GEARMAND_BINARY"],
+      [
+        AC_DEFINE([HAVE_GEARMAND_BINARY], [1], [If Gearmand binary is available])
+        AC_DEFINE_UNQUOTED([GEARMAND_BINARY], "$ac_cv_path_GEARMAND_BINARY", [Name of the gearmand binary used in make test])
+       ],
+       [
+        AC_DEFINE([HAVE_GEARMAND_BINARY], [0], [If Gearmand binary is available])
+        AC_DEFINE([GEARMAND_BINARY], [0], [Name of the gearmand binary used in make test])
+      ])
+
index 0b8592fe546f14657c9d7081d90faa4b63b6a3a4..7d648bf23497cab751d8b76c24b7867cf28ad0ec 100644 (file)
@@ -1,8 +1,10 @@
 AX_WITH_PROG(MEMCACHED_BINARY,memcached)
 AS_IF([test -f "$ac_cv_path_MEMCACHED_BINARY"],
       [
+        AC_DEFINE([HAVE_MEMCACHED_BINARY], [1], [If Memcached binary is available])
         AC_DEFINE_UNQUOTED([MEMCACHED_BINARY], "$ac_cv_path_MEMCACHED_BINARY", [Name of the memcached binary used in make test])
        ],
        [
+        AC_DEFINE([HAVE_MEMCACHED_BINARY], [0], [If Memcached binary is available])
         AC_DEFINE([MEMCACHED_BINARY], [0], [Name of the memcached binary used in make test])
       ])
index 5983c112dc616c49eee86d917050705d5dc5b212..a43e45335d363471f8b07127d659e7ab6b5f1642 100644 (file)
@@ -1,8 +1,10 @@
 AX_WITH_PROG(MEMCACHED_SASL_BINARY,memcached_sasl)
 AS_IF([test -f "$ac_cv_path_MEMCACHED_SASL_BINARY"],
       [
+        AC_DEFINE([HAVE_MEMCACHED_SASL_BINARY], [1], [Name of the memcached_sasl binary used in make test])
         AC_DEFINE_UNQUOTED([MEMCACHED_SASL_BINARY], "$ac_cv_path_MEMCACHED_SASL_BINARY", [Name of the memcached_sasl binary used in make test])
        ],
        [
+        AC_DEFINE([HAVE_MEMCACHED_SASL_BINARY], [0], [Name of the memcached_sasl binary used in make test])
         AC_DEFINE([MEMCACHED_SASL_BINARY], [0], [Name of the memcached_sasl binary used in make test])
       ])
diff --git a/m4/pandora_with_memcached.m4 b/m4/pandora_with_memcached.m4
deleted file mode 100644 (file)
index 4ea906b..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-dnl  Copyright (C) 2009 Sun Microsystems, Inc.
-dnl This file is free software; Sun Microsystems, Inc.
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([_PANDORA_SEARCH_MEMCACHED],[
-
-  AC_ARG_WITH([memcached],
-    [AS_HELP_STRING([--with-memcached],
-      [Memcached binary to use for make test])],
-    [ac_cv_with_memcached="$withval"],
-    [ac_cv_with_memcached=memcached])
-
-  # just ignore the user if --without-memcached is passed.. it is
-  # only used by make test
-  AS_IF([test "x$ac_cv_with_memcached" = "xno"],[
-    ac_cv_with_memcached=memcached
-    MEMCACHED_BINARY=memcached
-  ],[
-    AS_IF([test -f "$ac_cv_with_memcached"],[
-      MEMCACHED_BINARY=$ac_cv_with_memcached
-    ],[
-      AC_PATH_PROG([MEMCACHED_BINARY], [$ac_cv_with_memcached], "no")
-    ])
-  ])
-  AC_DEFINE_UNQUOTED([MEMCACHED_BINARY], "$MEMCACHED_BINARY", 
-            [Name of the memcached binary used in make test])
-  AM_CONDITIONAL([HAVE_MEMCACHED],[test "x$MEMCACHED_BINARY" != "xno"])
-])
-
-AC_DEFUN([PANDORA_HAVE_MEMCACHED],[
-  AC_REQUIRE([_PANDORA_SEARCH_MEMCACHED])
-])
-
-AC_DEFUN([PANDORA_REQUIRE_MEMCACHED],[
-  AC_REQUIRE([PANDORA_HAVE_MEMCACHED])
-  AS_IF([test "x$MEMCACHED_BINARY" = "xno"],[
-    AC_MSG_ERROR(["could not find memcached binary"])
-  ])
-])
-
index 9f38c02498b54220f40db8330c99f82cfdd62a68..ecbb489efbc036b1e938ae69aefd07109ba2b402 100644 (file)
@@ -29,7 +29,13 @@ struct libmemcached_test_container_st
 
 static void *world_create(server_startup_st& servers, test_return_t& error)
 {
-  if (LIBMEMCACHED_WITH_SASL_SUPPORT == 0)
+  if (HAVE_MEMCACHED_BINARY == 0)
+  {
+    error= TEST_FATAL;
+    return NULL;
+  }
+
+  if (servers.sasl() and (LIBMEMCACHED_WITH_SASL_SUPPORT == 0 or MEMCACHED_SASL_BINARY == 0))
   {
     error= TEST_SKIPPED;
     return NULL;
@@ -67,7 +73,7 @@ static void *world_create(server_startup_st& servers, test_return_t& error)
     {
       if (not server_startup(servers, "memcached-sasl", port, 1, argv))
       {
-        error= TEST_FAILURE;
+        error= TEST_FATAL;
         return NULL;
       }
     }
@@ -75,7 +81,7 @@ static void *world_create(server_startup_st& servers, test_return_t& error)
     {
       if (not server_startup(servers, "memcached", port, 1, argv))
       {
-        error= TEST_FAILURE;
+        error= TEST_FATAL;
         return NULL;
       }
     }
@@ -88,7 +94,7 @@ static void *world_create(server_startup_st& servers, test_return_t& error)
       const char *argv[1]= { "memcached" };
       if (not servers.start_socket_server("memcached-sasl", max_port +1, 1, argv))
       {
-        error= TEST_FAILURE;
+        error= TEST_FATAL;
         return NULL;
       }
     }
@@ -97,7 +103,7 @@ static void *world_create(server_startup_st& servers, test_return_t& error)
       const char *argv[1]= { "memcached" };
       if (not servers.start_socket_server("memcached", max_port +1, 1, argv))
       {
-        error= TEST_FAILURE;
+        error= TEST_FATAL;
         return NULL;
       }
     }