Merge in version/etc libtest
authorBrian Aker <brian@tangent.org>
Tue, 9 Aug 2011 03:50:35 +0000 (20:50 -0700)
committerBrian Aker <brian@tangent.org>
Tue, 9 Aug 2011 03:50:35 +0000 (20:50 -0700)
19 files changed:
.bzrignore
configure.ac
libtest/blobslap_worker.cc
libtest/cmdline.cc
libtest/cmdline.h
libtest/common.h
libtest/comparison.hpp
libtest/gearmand.cc
libtest/gearmand.h
libtest/include.am
libtest/memcached.cc
libtest/memcached.h
libtest/server.cc
libtest/server.h
libtest/test.cc
libtest/test.hpp
libtest/unittest.cc
libtest/version.h.in [new file with mode: 0644]
m4/libgearmand.m4 [deleted file]

index 27188105add92a99d80639159408d9a887f878bf..b0daef4278d879bc7d9ef95763c6783056b3cec9 100644 (file)
@@ -120,3 +120,4 @@ tests/testplus
 tests/testudp
 tests/var/
 unittests/unittests
+libtest/version.h
index fcca1fd77691abfe989c3007dc933ba46a70ec36..a71e3369c23bf5e537edb5c57cf999a4e25d3c2c 100644 (file)
@@ -52,10 +52,12 @@ AC_SUBST(MEMCACHED_LIBRARY_VERSION)
 HASHKIT_LIBRARY_VERSION=1:0:0
 AC_SUBST(HASHKIT_LIBRARY_VERSION)
 
-AC_DEFINE([HAVE_LIBMEMCACHED], [ 1 ], [dummy rule for libtest])
-AC_SUBST(HAVE_LIBMEMCACHED, 1)
-AM_CONDITIONAL(HAVE_LIBMEMCACHED, true)
 LT_INIT
+AM_CONDITIONAL(BUILDING_LIBMEMCACHED, true)
+AM_CONDITIONAL(HAVE_LIBMEMCACHED, false)
+
+AM_CONDITIONAL(BUILDING_GEARMAN, false)
+AM_CONDITIONAL(HAVE_LIBGEARMAN, false)
 
 AC_SEARCH_LIBS(getopt_long, gnugetopt)
 AC_SEARCH_LIBS(gethostbyname, nsl)
@@ -75,11 +77,9 @@ ENABLE_HSIEH_HASH
 ENABLE_MURMUR_HASH
 ENABLE_MEMASLAP
 PROTOCOL_BINARY_TEST
-WITH_MEMCACHED
 ENABLE_DEPRECATED
 PANDORA_HAVE_LIBINNODB
 PANDORA_HAVE_SASL
-WITH_LIBGEARMAN
 
 AC_CHECK_FUNCS([alarm])
 AC_CHECK_FUNCS([dup2])
@@ -160,6 +160,7 @@ AC_CONFIG_FILES([
   support/libmemcached.pc
   support/libmemcached.spec
   support/libmemcached-fc.spec
+  libtest/version.h
   ])
 AC_OUTPUT
 
index c7ac0a02ced740113360b798e99d4910333219ea..a12df583e7f9db599ac403a2f6b8b006806e5ee0 100644 (file)
@@ -21,6 +21,7 @@
 
 
 #include <libtest/common.h>
+
 #include <libtest/blobslap_worker.h>
 #include <libtest/killpid.h>
 
index 6c71f9b0935a13f8b4b78f49f864010dc82c016e..b48d69172ee949d4bc221867532958be6d38c1fa 100644 (file)
 
 #include <libtest/common.h>
 
-#include <libtest/cmdline.h>
-
 using namespace libtest;
 
 #include <cstdlib>
 #include <string>
 #include <sstream>
 
+namespace libtest {
+
 bool exec_cmdline(const std::string& executable, const char *args[])
 {
   std::stringstream arg_buffer;
@@ -63,3 +63,5 @@ bool exec_cmdline(const std::string& executable, const char *args[])
 
   return true;
 }
+
+} // namespace exec_cmdline
index cfe29575965ef122e32c197b96e2cc4c564fcd05..0fcfe39c56abc74621ac83a562d17b23267fdab1 100644 (file)
@@ -21,4 +21,8 @@
 
 #pragma once
 
+namespace libtest {
+
 bool exec_cmdline(const std::string& executable, const char *args[]);
+
+}
index 7a7f1ff0fec127e23c10d7219498c91cde69187e..9963682e5fc7ae5889ef34d2702997bbecaf65ad 100644 (file)
@@ -20,7 +20,7 @@
  */
 
 /*
-  Common include file for libmemached
+  Common include file for libtest
 */
 
 #pragma once
@@ -53,4 +53,8 @@
 #include <fnmatch.h>
 #endif
 
+#include <libtest/gearmand.h>
+#include <libtest/blobslap_worker.h>
+#include <libtest/memcached.h>
+
 #include <libtest/test.hpp>
index 8656e49935447ba2a5e20d120a1ebe6a5eb286fe..6f7c5a5b4b9e3e29f2d2b05576ffd9ea12a0bb6c 100644 (file)
 
 #include <typeinfo>
 #include <libtest/strerror.h>
+
+#if defined(HAVE_LIBMEMCACHED) && HAVE_LIBMEMCACHED
 #include <libmemcached/memcached.h>
+#endif
+
+#if defined(HAVE_LIBGEARMAN) && HAVE_LIBGEARMAN
+#include <libgearman/gearman.h>
+#endif
 
 namespace libtest {
 
@@ -44,20 +51,31 @@ bool _compare(const char *file, int line, const char *func, T_comparable __expec
 {
   if (__expected != __actual)
   {
-    if (typeid(__expected) == typeid(memcached_return_t))
+    if (typeid(__expected) == typeid(test_return_t))
+    {
+      libtest::stream::make_cerr(file, line, func) << "Expected \"" 
+        << test_strerror(test_return_t(__expected)) 
+        << "\" got \"" 
+        << test_strerror(test_return_t(__actual)) << "\"";
+    }
+#if defined(HAVE_LIBMEMCACHED) && HAVE_LIBMEMCACHED
+    else if (typeid(__expected) == typeid(memcached_return_t))
     {
       libtest::stream::make_cerr(file, line, func) << "Expected \"" 
         << memcached_strerror(NULL, memcached_return_t(__expected)) 
         << "\" got \"" 
         << memcached_strerror(NULL, memcached_return_t(__actual)) << "\"";
     }
-    else if (typeid(__expected) == typeid(test_return_t))
+#endif
+#if defined(HAVE_LIBGEARMAN) && HAVE_LIBGEARMAN
+    else if (typeid(__expected) == typeid(gearman_return_t))
     {
       libtest::stream::make_cerr(file, line, func) << "Expected \"" 
-        << test_strerror(test_return_t(__expected)) 
+        << gearman_strerror(gearman_return_t(__expected)) 
         << "\" got \"" 
-        << test_strerror(test_return_t(__actual)) << "\"";
+        << gearman_strerror(gearman_return_t(__actual)) << "\"";
     }
+#endif
     else
     {
       libtest::stream::make_cerr(file, line, func) << "Expected \"" << __expected << "\" got \"" << __actual << "\"";
index 9a7649ef07114a058fbbab2a969b424d4a509cc4..6149b3c6c6470f1b4b049bcefbb97e7148d9cf0d 100644 (file)
@@ -21,6 +21,7 @@
 
 
 #include <libtest/common.h>
+
 #include <libtest/gearmand.h>
 
 #include "util/instance.hpp"
@@ -83,12 +84,12 @@ public:
 
 using namespace libtest;
 
-class Gearmand : public Server
+class Gearmand : public libtest::Server
 {
 private:
 public:
   Gearmand(const std::string& host_arg, in_port_t port_arg) :
-    Server(host_arg, port_arg)
+    libtest::Server(host_arg, port_arg)
   { }
 
   pid_t get_pid(bool error_is_ok)
@@ -208,7 +209,7 @@ bool Gearmand::build(int argc, const char *argv[])
 
 namespace libtest {
 
-Server *build_gearmand(const char *hostname, in_port_t try_port)
+libtest::Server *build_gearmand(const char *hostname, in_port_t try_port)
 {
   return new Gearmand(hostname, try_port);
 }
index 22aaa7133b756790e76dfe0204f57efab2b19988..f6aa6c32c2f07fb62c93d952327573d7173035ae 100644 (file)
 
 #pragma once
 
+#include <arpa/inet.h>
+
+namespace libtest { class Server; }
+
 namespace libtest {
 
-Server *build_gearmand(const char *hostname, in_port_t try_port);
+libtest::Server *build_gearmand(const char *hostname, in_port_t try_port);
 
 }
index 2ed437c2af36ad30c087cc84a5f6807219e9b8a7..ab846b75e1e24584446ada328730712ad0ecff34 100644 (file)
@@ -41,6 +41,10 @@ CLEANFILES+= \
             tests/var/run/* \
             tests/var/tmp/*
 
+.PHONY: distclean-tests-check
+distclean-tests-check:
+       -rm -rf tests/var
+
 noinst_HEADERS+= \
                 libtest/blobslap_worker.h \
                 libtest/callbacks.h \
@@ -92,29 +96,41 @@ libtest_libtest_la_CXXFLAGS+= -DBUILDING_LIBTEST
 libtest_libtest_la_CXXFLAGS+= $(PTHREAD_CFLAGS)
 libtest_libtest_la_LIBADD=
 libtest_libtest_la_LIBADD+= $(PTHREAD_LIBS)
+libtest_libtest_la_DEPENDENCIES=
 
 LIBTEST_LDADD= libtest/libtest.la
 
-if HAVE_LIBMEMCACHED
+# We are either building in tree, or with
+if BUILDING_LIBMEMCACHED
+libtest_libtest_la_DEPENDENCIES+= libmemcached/libmemcached.la
+libtest_libtest_la_DEPENDENCIES+= libmemcached/libmemcachedutil.la
 libtest_libtest_la_LIBADD+= libmemcached/libmemcached.la
 libtest_libtest_la_LIBADD+= libmemcached/libmemcachedutil.la
 libtest_libtest_la_SOURCES+= libtest/memcached.cc
 endif
+if HAVE_LIBMEMCACHED
+libtest_libtest_la_LIBADD+= $(libmemcached_LIBS) -lmemcachedutil
+libtest_libtest_la_SOURCES+= libtest/memcached.cc
+endif
 
+if BUILDING_GEARMAN
+libtest_libtest_la_DEPENDENCIES+= libgearman/libgearman.la
+libtest_libtest_la_LIBADD+= libgearman/libgearman.la
+libtest_libtest_la_SOURCES+= libtest/blobslap_worker.cc
+libtest_libtest_la_SOURCES+= libtest/gearmand.cc
+libtest_libtest_la_SOURCES+= util/instance.cc
+libtest_libtest_la_SOURCES+= util/operation.cc
+endif
 if HAVE_LIBGEARMAN
-LIBTEST_LDADD+= libgearman/libgearman.la
+libtest_libtest_la_DEPENDENCIES+= libgearman/libgearman.la
+libtest_libtest_la_LIBADD+= $(libgearman_LIBS)
 libtest_libtest_la_SOURCES+= libtest/blobslap_worker.cc
 libtest_libtest_la_SOURCES+= libtest/gearmand.cc
 libtest_libtest_la_SOURCES+= util/instance.cc
 libtest_libtest_la_SOURCES+= util/operation.cc
 endif
 
-libtest_tmp_dir: tests/var/log tests/var/tmp tests/var/run clearn-var
-
-clearn-var:
-       @rm -f tests/var/log/*
-       @rm -f tests/var/run/*
-       @rm -f tests/var/tmp/*
+libtest_tmp_dir: tests/var/log tests/var/tmp tests/var/run
 
 tests/var:
        @$(mkdir_p) tests/var
@@ -128,8 +144,6 @@ tests/var/tmp: tests/var
 tests/var/run: tests/var
        @$(mkdir_p) tests/var/run
 
-.PHONY+= tests/var
-
 
 libtest_unittest_CFLAGS=
 libtest_unittest_LDADD= ${LIBTEST_LDADD}
@@ -154,4 +168,3 @@ drd-unittest: libtest/unittest
 
 libtest_wait_SOURCES= libtest/wait.cc
 noinst_PROGRAMS+= libtest/wait
-
index 910ea809396dc2ad5476702cefe882cc5ecc5426..1344c61854acddb513591949f400d74827c9796f 100644 (file)
@@ -49,11 +49,11 @@ using namespace libtest;
 
 using namespace libtest;
 
-class Memcached : public Server
+class Memcached : public libtest::Server
 {
 public:
   Memcached(const std::string& host_arg, const in_port_t port_arg, const bool is_socket_arg) :
-    Server(host_arg, port_arg, is_socket_arg)
+    libtest::Server(host_arg, port_arg, is_socket_arg)
   { }
 
   pid_t get_pid(bool error_is_ok)
@@ -161,6 +161,11 @@ public:
     return false;
   }
 
+  bool broken_socket_cleanup()
+  {
+    return true;
+  }
+
   // Memcached's pidfile is broken
   bool broken_pid_file()
   {
@@ -198,12 +203,12 @@ bool Memcached::build(int argc, const char *argv[])
 
 namespace libtest {
 
-Server *build_memcached(const std::string& hostname, const in_port_t try_port)
+libtest::Server *build_memcached(const std::string& hostname, const in_port_t try_port)
 {
   return new Memcached(hostname, try_port, false);
 }
 
-Server *build_memcached_socket(const std::string& hostname, const in_port_t try_port)
+libtest::Server *build_memcached_socket(const std::string& hostname, const in_port_t try_port)
 {
   return new Memcached(hostname, try_port, true);
 }
index 575ba00104c4e24d73010617415981dabcb8759f..58e1d79a73edff91658a60992f9b37be5806fdb0 100644 (file)
 
 namespace libtest {
 
-LIBTEST_API
-Server *build_memcached(const std::string& hostname, const in_port_t try_port);
+libtest::Server *build_memcached(const std::string& hostname, const in_port_t try_port);
 
-LIBTEST_API
-Server *build_memcached_socket(const std::string& socket_file, const in_port_t try_port);
+libtest::Server *build_memcached_socket(const std::string& socket_file, const in_port_t try_port);
 
 }
 
index b8fb603e13696fdadc9bdcfa6cb97a6f719bbf6d..ee94c945007c2ad2887091843db0a79d0e907cf2 100644 (file)
@@ -42,15 +42,6 @@ static inline std::string &rtrim(std::string &s)
 #include <libtest/stream.h>
 #include <libtest/killpid.h>
 
-#ifdef HAVE_LIBGEARMAN
-#include <libtest/gearmand.h>
-#include <libtest/blobslap_worker.h>
-#endif
-
-#ifdef HAVE_LIBMEMCACHED
-#include <libtest/memcached.h>
-#endif
-
 extern "C" {
   static bool exited_successfully(int status)
   {
@@ -258,7 +249,7 @@ bool Server::set_socket_file()
   }
   else
   {
-    snprintf(file_buffer, sizeof(file_buffer), "tests/var/run/%s.socketXXXXXX", name());
+    snprintf(file_buffer, sizeof(file_buffer), "var/run/%s.socketXXXXXX", name());
   }
 
   int fd;
@@ -286,7 +277,7 @@ bool Server::set_pid_file()
   }
   else
   {
-    snprintf(file_buffer, sizeof(file_buffer), "tests/var/run/%s.pidXXXXXX", name());
+    snprintf(file_buffer, sizeof(file_buffer), "var/run/%s.pidXXXXXX", name());
   }
 
   int fd;
@@ -308,7 +299,7 @@ bool Server::set_log_file()
   char file_buffer[FILENAME_MAX];
   file_buffer[0]= 0;
 
-  snprintf(file_buffer, sizeof(file_buffer), "tests/var/log/%s.logXXXXXX", name());
+  snprintf(file_buffer, sizeof(file_buffer), "var/log/%s.logXXXXXX", name());
   int fd;
   if ((fd= mkstemp(file_buffer)) == -1)
   {
@@ -437,6 +428,11 @@ bool Server::kill(pid_t pid_arg)
       unlink(pid_file().c_str());
     }
 
+    if (broken_socket_cleanup() and has_socket() and not socket().empty())
+    {
+      unlink(socket().c_str());
+    }
+
     reset_pid();
 
     return true;
@@ -544,44 +540,62 @@ bool server_startup(server_startup_st& construct, const std::string& server_type
     }
   }
 
-  Server *server= NULL;
+  libtest::Server *server= NULL;
   if (0)
   { }
   else if (server_type.compare("gearmand") == 0)
   {
-#ifdef GEARMAND_BINARY
-  #ifdef HAVE_LIBGEARMAN
-    server= build_gearmand("localhost", try_port);
-  #else
-    Error << "Libgearman was not found";
-  #endif
-#else
-    Error << "No gearmand binary is available";
-#endif
+    if (GEARMAND_BINARY)
+    {
+      if (HAVE_LIBGEARMAN)
+      {
+        server= build_gearmand("localhost", try_port);
+      }
+      else
+      {
+        Error << "Libgearman was not found";
+      }
+    } 
+    else
+    {
+      Error << "No gearmand binary is available";
+    }
   }
   else if (server_type.compare("blobslap_worker") == 0)
   {
-#ifdef GEARMAND_BINARY
-  #ifdef HAVE_LIBGEARMAN
-    server= build_blobslap_worker(try_port);
-  #else
-    Error << "Libgearman was not found";
-  #endif
-#else
-    Error << "No gearmand binary is available";
-#endif
+    if (GEARMAND_BINARY)
+    {
+      if (HAVE_LIBGEARMAN)
+      {
+        server= build_blobslap_worker(try_port);
+      }
+      else
+      {
+        Error << "Libgearman was not found";
+      }
+    }
+    else
+    {
+      Error << "No gearmand binary is available";
+    }
   }
   else if (server_type.compare("memcached") == 0)
   {
-#ifdef MEMCACHED_BINARY
-#ifdef HAVE_LIBMEMCACHED
-    server= build_memcached("localhost", try_port);
-#else
-    Error << "Libmemcached was not found";
-#endif
-#else
-    Error << "No memcached binary is available";
-#endif
+    if (MEMCACHED_BINARY)
+    {
+      if (HAVE_LIBMEMCACHED)
+      {
+        server= build_memcached("localhost", try_port);
+      }
+      else
+      {
+        Error << "Libmemcached was not found";
+      }
+    }
+    else
+    {
+      Error << "No memcached binary is available";
+    }
   }
   else
   {
@@ -652,15 +666,21 @@ bool server_startup_st::start_socket_server(const std::string& server_type, cons
   }
   else if (server_type.compare("memcached") == 0)
   {
-#ifdef MEMCACHED_BINARY
-#ifdef HAVE_LIBMEMCACHED
-    server= build_memcached_socket("localhost", try_port);
-#else
-    Error << "Libmemcached was not found";
-#endif
-#else
-    Error << "No memcached binary is available";
-#endif
+    if (MEMCACHED_BINARY)
+    {
+      if (HAVE_LIBMEMCACHED)
+      {
+        server= build_memcached_socket("localhost", try_port);
+      }
+      else
+      {
+        Error << "Libmemcached was not found";
+      }
+    }
+    else
+    {
+      Error << "No memcached binary is available";
+    }
   }
   else
   {
index a38bf428e60eb39103c8b442057e434aab696f8a..01b2ce9a8a2c6c162b5c5f47daf61417ecf050a7 100644 (file)
@@ -60,6 +60,11 @@ public:
   virtual const char *log_file_option()= 0;
   virtual bool is_libtool()= 0;
 
+  virtual bool broken_socket_cleanup()
+  {
+    return false;
+  }
+
   virtual const char *socket_file_option() const
   {
     return NULL;
index 1ed6157835e79d8ea16cc6ddd3f2e5067ee44b56..7b13ab79abd3c8593da239188253b14848c0be6b 100644 (file)
@@ -149,6 +149,17 @@ int main(int argc, char *argv[])
 {
   srandom((unsigned int)time(NULL));
 
+  if (getenv("srcdir"))
+  {
+    char buffer[1024];
+    snprintf(buffer, sizeof(buffer), "%s/%s", getenv("srcdir"), "tests");
+    chdir(buffer);
+  }
+  else
+  {
+    chdir("tests");
+  }
+
   world= new Framework();
 
   if (not world)
index 3e834b02950c52eb66920a4d77cd34de56501f20..1933ef4b6aa4237e49e1cd9532fa7598d91c4de2 100644 (file)
@@ -30,6 +30,7 @@
 #include <arpa/inet.h>
 
 #include <libtest/visibility.h>
+#include <libtest/version.h>
 
 #include <libtest/error.h>
 #include <libtest/server.h>
index e3272783ca2094b4fc745a7591f349c59e06a920..6fcc5cff2b8451ddf2a217b6b649f1cc8e98f92f 100644 (file)
@@ -113,6 +113,73 @@ static test_return_t local_not_test(void *)
   return TEST_SUCCESS;
 }
 
+static test_return_t var_exists_test(void *)
+{
+  test_compare(0, access("var", R_OK | W_OK | X_OK));
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_tmp_exists_test(void *)
+{
+  test_compare(0, access("var/tmp", R_OK | W_OK | X_OK));
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_run_exists_test(void *)
+{
+  test_compare(0, access("var/run", R_OK | W_OK | X_OK));
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_log_exists_test(void *)
+{
+  test_compare(0, access("var/log", R_OK | W_OK | X_OK));
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_tmp_test(void *)
+{
+  FILE *file= fopen("var/tmp/junk", "w+");
+  test_true(file);
+  fclose(file);
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_run_test(void *)
+{
+  FILE *file= fopen("var/run/junk", "w+");
+  test_true(file);
+  fclose(file);
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_log_test(void *)
+{
+  FILE *file= fopen("var/log/junk", "w+");
+  test_true(file);
+  fclose(file);
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_tmp_rm_test(void *)
+{
+  test_true(unlink("var/tmp/junk") == 0);
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_run_rm_test(void *)
+{
+  test_true(unlink("var/run/junk") == 0);
+  return TEST_SUCCESS;
+}
+
+static test_return_t var_log_rm_test(void *)
+{
+  test_true(unlink("var/log/junk") == 0);
+  return TEST_SUCCESS;
+}
+
+
 #if 0
 static test_return_t pause_test(void *)
 {
@@ -127,14 +194,15 @@ static test_return_t gearmand_cycle_test(void *object)
   server_startup_st *servers= (server_startup_st*)object;
   test_true(servers);
 
-#ifndef HAVE_LIBGEARMAN
-  return TEST_SKIPPED;
-#endif
+  if (HAVE_LIBGEARMAN)
+  {
+    const char *argv[1]= { "cycle_gearmand" };
+    test_true(server_startup(*servers, "gearmand", 9999, 1, argv));
 
-  const char *argv[1]= { "cycle_gearmand" };
-  test_true(server_startup(*servers, "gearmand", 9999, 1, argv));
+    return TEST_SUCCESS;
+  }
 
-  return TEST_SUCCESS;
+  return TEST_SKIPPED;
 }
 
 static test_return_t memcached_cycle_test(void *object)
@@ -142,14 +210,15 @@ static test_return_t memcached_cycle_test(void *object)
   server_startup_st *servers= (server_startup_st*)object;
   test_true(servers);
 
-#if !defined(MEMCACHED_BINARY) || !defined(HAVE_LIBMEMCACHED)
-  return TEST_SKIPPED;
-#endif
+  if (MEMCACHED_BINARY and HAVE_LIBMEMCACHED) 
+  {
+    const char *argv[1]= { "cycle_memcached" };
+    test_true(server_startup(*servers, "memcached", 9998, 1, argv));
 
-  const char *argv[1]= { "cycle_memcached" };
-  test_true(server_startup(*servers, "memcached", 9998, 1, argv));
+    return TEST_SUCCESS;
+  }
 
-  return TEST_SUCCESS;
+  return TEST_SKIPPED;
 }
 
 static test_return_t memcached_socket_cycle_test(void *object)
@@ -157,14 +226,15 @@ static test_return_t memcached_socket_cycle_test(void *object)
   server_startup_st *servers= (server_startup_st*)object;
   test_true(servers);
 
-#if !defined(MEMCACHED_BINARY) || !defined(HAVE_LIBMEMCACHED)
-  return TEST_SKIPPED;
-#endif
+  if (MEMCACHED_BINARY and HAVE_LIBMEMCACHED)
+  {
+    const char *argv[1]= { "cycle_memcached" };
+    test_true(servers->start_socket_server("memcached", 9997, 1, argv));
 
-  const char *argv[1]= { "cycle_memcached" };
-  test_true(servers->start_socket_server("memcached", 9997, 1, argv));
+    return TEST_SUCCESS;
+  }
 
-  return TEST_SUCCESS;
+  return TEST_SKIPPED;
 }
 
 test_st gearmand_tests[] ={
@@ -201,10 +271,25 @@ test_st local_log[] ={
   {0, 0, 0}
 };
 
+test_st directories_tests[] ={
+  {"var exists", 0, var_exists_test },
+  {"var/tmp exists", 0, var_tmp_exists_test },
+  {"var/run exists", 0, var_run_exists_test },
+  {"var/log exists", 0, var_log_exists_test },
+  {"var/tmp", 0, var_tmp_test },
+  {"var/run", 0, var_run_test },
+  {"var/log", 0, var_log_test },
+  {"var/tmp rm", 0, var_tmp_rm_test },
+  {"var/run rm", 0, var_run_rm_test },
+  {"var/log rm", 0, var_log_rm_test },
+  {0, 0, 0}
+};
+
 collection_st collection[] ={
   {"environment", 0, 0, environment_tests},
   {"return values", 0, 0, tests_log},
   {"local", 0, 0, local_log},
+  {"directories", 0, 0, directories_tests},
   {"gearmand", 0, 0, gearmand_tests},
   {"memcached", 0, 0, memcached_tests},
   {0, 0, 0, 0}
diff --git a/libtest/version.h.in b/libtest/version.h.in
new file mode 100644 (file)
index 0000000..16c4656
--- /dev/null
@@ -0,0 +1,34 @@
+/*  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
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define LIBTEST_VERSION_STRING "@VERSION@"
+#define LIBTEST_VERSION_HEX @HEX_VERSION@
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/m4/libgearmand.m4 b/m4/libgearmand.m4
deleted file mode 100644 (file)
index c90d02f..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-AC_DEFUN([_WITH_LIBGEARMAN],
-  [ AC_ARG_ENABLE([libgearman],
-   [AS_HELP_STRING([--disable-libgearman],
-     [Build with libgearman support @<:@default=on@:>@])],
-     [ac_enable_libgearman="$enableval"],
-     [ac_enable_libgearman="yes"])
-
-     AS_IF([test "x$ac_enable_libgearman" = "xyes"],
-       [ PKG_CHECK_MODULES([libgearman], [ libgearman >= 0.24 ], 
-                          [AC_DEFINE([HAVE_LIBGEARMAN], [ 1 ], [Enable libgearman support])],
-                          [ac_enable_libgearman="no"] )])
-
-     AM_CONDITIONAL(HAVE_LIBGEARMAN, test "x${ac_enable_libgearman}" = "xyes")
-     ])
-
-AC_DEFUN([WITH_LIBGEARMAN], [ AC_REQUIRE([_WITH_LIBGEARMAN]) ])