Merge in fixes for SASL.
[awesomized/libmemcached] / libtest / test.cc
index 7b13ab79abd3c8593da239188253b14848c0be6b..5c43e40b35d9f0211d076c19d24c6864fe7dfa59 100644 (file)
@@ -149,21 +149,41 @@ int main(int argc, char *argv[])
 {
   srandom((unsigned int)time(NULL));
 
-  if (getenv("srcdir"))
+  if (getenv("LIBTEST_QUIET"))
   {
-    char buffer[1024];
-    snprintf(buffer, sizeof(buffer), "%s/%s", getenv("srcdir"), "tests");
-    chdir(buffer);
+    close(STDOUT_FILENO);
+  }
+
+  char buffer[1024];
+  if (getenv("LIBTEST_TMP"))
+  {
+    snprintf(buffer, sizeof(buffer), "%s", getenv("LIBTEST_TMP"));
   }
   else
   {
-    chdir("tests");
+    snprintf(buffer, sizeof(buffer), "%s", LIBTEST_TEMP);
+  }
+
+  if (chdir(buffer) == -1)
+  {
+    char getcwd_buffer[1024];
+    char *dir= getcwd(getcwd_buffer, sizeof(getcwd_buffer));
+
+    Error << "Unable to chdir() from " << dir << " to " << buffer << " errno:" << strerror(errno);
+    return EXIT_FAILURE;
+  }
+
+  if (libtest::libtool() == NULL)
+  {
+    Error << "Failed to locate libtool";
+    return EXIT_FAILURE;
   }
 
   world= new Framework();
 
   if (not world)
   {
+    Error << "Failed to create Framework()";
     return EXIT_FAILURE;
   }
 
@@ -193,7 +213,7 @@ int main(int argc, char *argv[])
   case TEST_FATAL:
   case TEST_FAILURE:
   case TEST_MEMORY_ALLOCATION_FAILURE:
-    Error << argv[0] << "create() failed";
+    Error << argv[0] << " failed in Framework::create()";
     delete world;
     return EXIT_FAILURE;
   }