Assume ProjectRootPath() equals ../.. in Desktop

This way we don't have to rely on the existence of DEPS, and the tests
can be run in swarming bots (which don't have a checkout and therefore
don't have a DEPS file).

This seems to be where Chromium is assumming the project root path to
be.

NOTRY=True
BUG=chromium:497757

Review-Url: https://codereview.webrtc.org/2340773002
Cr-Commit-Position: refs/heads/master@{#14230}
This commit is contained in:
ehmaldonado 2016-09-15 04:45:48 -07:00 committed by Commit bot
parent d268d6ffbe
commit 8b28b8017f
2 changed files with 14 additions and 14 deletions

View File

@ -59,8 +59,6 @@ const char* kPathDelimiter = "/";
#ifdef WEBRTC_ANDROID
const char* kRootDirName = "/sdcard/chromium_tests_root/";
#else
// The file we're looking for to identify the project root dir.
const char* kProjectRootFileName = "DEPS";
#if !defined(WEBRTC_IOS)
const char* kOutputDirName = "out";
#endif
@ -125,21 +123,22 @@ std::string ProjectRootPath() {
if (path == kFallbackPath) {
return kCannotFindProjectRootDir;
}
if (relative_dir_path_set) {
if (relative_dir_path_set && strcmp(relative_dir_path, ".") != 0) {
path = path + kPathDelimiter + relative_dir_path;
}
// Check for our file that verifies the root dir.
// Remove two directory levels from the path, i.e. a path like
// /absolute/path/src/out/Debug will become /absolute/path/src/
size_t path_delimiter_index = path.find_last_of(kPathDelimiter);
while (path_delimiter_index != std::string::npos) {
std::string root_filename = path + kPathDelimiter + kProjectRootFileName;
if (FileExists(root_filename)) {
return path + kPathDelimiter;
}
if (path_delimiter_index != std::string::npos) {
// Move up one directory in the directory tree.
path = path.substr(0, path_delimiter_index);
path_delimiter_index = path.find_last_of(kPathDelimiter);
if (path_delimiter_index != std::string::npos) {
// Move up another directory in the directory tree. We should now be at
// the project root.
return path.substr(0, path_delimiter_index) + kPathDelimiter;
}
}
// Reached the root directory.
fprintf(stderr, "Cannot find project root directory!\n");
return kCannotFindProjectRootDir;
}

View File

@ -75,10 +75,11 @@ extern const char* kCannotFindProjectRootDir;
// Finds the root dir of the project, to be able to set correct paths to
// resource files used by tests.
// The implementation is simple: it just looks for the file defined by
// kProjectRootFileName, starting in the current directory (the working
// directory) and then steps upward until it is found (or it is at the root of
// the file system).
// For desktop, we assume that the project root is two levels above (i.e. the
// current working directory + /../../)
// For Android, it is assumed to be /sdcard/chromium_tests_root/
// For iOS, the resource files are assumed to be included in the test's .app
// bundle.
// If the current working directory is above the project root dir, it will not
// be found.
//