You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by zt...@apache.org on 2016/05/20 03:16:09 UTC

incubator-hawq git commit: HAWQ-748. Fix platform issue in test framework.

Repository: incubator-hawq
Updated Branches:
  refs/heads/master 50d55331b -> 92880fc88


HAWQ-748. Fix platform issue in test framework.


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/92880fc8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/92880fc8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/92880fc8

Branch: refs/heads/master
Commit: 92880fc88859bfb7128e4074f10655dade9f2318
Parents: 50d5533
Author: ztao1987 <zh...@gmail.com>
Authored: Fri May 20 07:55:51 2016 +0800
Committer: ztao1987 <zh...@gmail.com>
Committed: Fri May 20 11:15:57 2016 +0800

----------------------------------------------------------------------
 src/test/feature/lib/sql-util.cpp | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/92880fc8/src/test/feature/lib/sql-util.cpp
----------------------------------------------------------------------
diff --git a/src/test/feature/lib/sql-util.cpp b/src/test/feature/lib/sql-util.cpp
index f4294a2..0714e22 100644
--- a/src/test/feature/lib/sql-util.cpp
+++ b/src/test/feature/lib/sql-util.cpp
@@ -1,6 +1,5 @@
 #include "sql-util.h"
 
-#include <libproc.h>
 #include <pwd.h>
 #include <sys/types.h>
 #include <unistd.h>
@@ -11,6 +10,13 @@
 
 #include "string-util.h"
 
+#ifdef __linux__
+#include <limits.h>
+#include <unistd.h>
+#elif __APPLE__
+#include <libproc.h>
+#endif
+
 SQLUtility::SQLUtility()
     : conn(getConnection()),
       testRootPath(getTestRootPath()),
@@ -135,6 +141,14 @@ const PSQLQueryResult &SQLUtility::executeQuery(const std::string &sql) {
 PSQL *SQLUtility::getPSQL() const { return conn.get(); }
 
 std::string SQLUtility::getTestRootPath() const {
+  std::string result;
+#ifdef __linux__
+  char pathbuf[PATH_MAX];
+  ssize_t count = readlink("/proc/self/exe", pathbuf, PATH_MAX);
+  if (count <= 0)
+    EXPECT_TRUE(false) << "readlink /proc/self/exe error: " << strerror(errno);
+  result = std::string(pathbuf, count);
+#elif __APPLE__
   int ret;
   pid_t pid;
   char pathbuf[PROC_PIDPATHINFO_MAXSIZE];
@@ -144,7 +158,9 @@ std::string SQLUtility::getTestRootPath() const {
   if (ret <= 0)
     EXPECT_TRUE(false) << "PID " << pid << ": proc_pidpath () "
                        << strerror(errno);
-  return splitFilePath(pathbuf).path;
+  result = std::string(pathbuf);
+#endif
+  return splitFilePath(result).path;
 }
 
 FilePath SQLUtility::splitFilePath(const std::string &filePath) const {