summaryrefslogtreecommitdiff
path: root/tests/ceftests/resource_util_linux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ceftests/resource_util_linux.cc')
-rw-r--r--tests/ceftests/resource_util_linux.cc37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/ceftests/resource_util_linux.cc b/tests/ceftests/resource_util_linux.cc
new file mode 100644
index 00000000..110d09bd
--- /dev/null
+++ b/tests/ceftests/resource_util_linux.cc
@@ -0,0 +1,37 @@
+// Copyright (c) 2013 The Chromium Embedded Framework Authors.
+// Portions copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "tests/shared/browser/resource_util.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+namespace client {
+
+bool GetResourceDir(std::string& dir) {
+ char buff[1024];
+
+ // Retrieve the executable path.
+ ssize_t len = readlink("/proc/self/exe", buff, sizeof(buff) - 1);
+ if (len == -1) {
+ return false;
+ }
+
+ buff[len] = 0;
+
+ // Remove the executable name from the path.
+ char* pos = strrchr(buff, '/');
+ if (!pos) {
+ return false;
+ }
+
+ // Add "ceftests_files" to the path.
+ strcpy(pos + 1, "ceftests_files");
+ dir = std::string(buff);
+ return true;
+}
+
+} // namespace client