diff options
Diffstat (limited to 'tests/ceftests/resource_util_linux.cc')
-rw-r--r-- | tests/ceftests/resource_util_linux.cc | 37 |
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 |