Skip to content

Commit

Permalink
Revert r144460 "Remove the linux-only CR_SOURCE_ROOT environment vari…
Browse files Browse the repository at this point in the history
…able override of base::DIR_SOURCE_ROOT."

CR_SOURCE_ROOT is used in practice by linux user(s), plural still to be
determined, mostly for ChromeOS related development.

R=willchan@chromium.org
BUG=
TEST=


Review URL: https://chromiumcodereview.appspot.com/10808048

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148621 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
maruel@chromium.org committed Jul 26, 2012
1 parent e72cb5a commit 3766ed1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
14 changes: 14 additions & 0 deletions base/base_paths_posix.cc
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,20 @@ bool PathProviderPosix(int key, FilePath* result) {
#endif
}
case base::DIR_SOURCE_ROOT: {
// Allow passing this in the environment, for more flexibility in build
// tree configurations (sub-project builds, gyp --output_dir, etc.)
scoped_ptr<base::Environment> env(base::Environment::Create());
std::string cr_source_root;
if (env->GetVar("CR_SOURCE_ROOT", &cr_source_root)) {
path = FilePath(cr_source_root);
if (file_util::PathExists(path)) {
*result = path;
return true;
} else {
DLOG(WARNING) << "CR_SOURCE_ROOT is set, but it appears to not "
<< "point to a directory.";
}
}
// On POSIX, unit tests execute two levels deep from the source root.
// For example: out/{Debug|Release}/net_unittest
if (PathService::Get(base::DIR_EXE, &path)) {
Expand Down
4 changes: 4 additions & 0 deletions testing/test_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,15 @@ def fix_python_path(cmd):

def run_executable(cmd, env):
"""Runs an executable with:
- environment variable CR_SOURCE_ROOT set to the root directory.
- environment variable LANGUAGE to en_US.UTF-8.
- Reuses sys.executable automatically.
"""
# Many tests assume a English interface...
env['LANGUAGE'] = 'en_US.UTF-8'
# Used by base/base_paths_linux.cc as an override. Just make sure the default
# logic is used.
env.pop('CR_SOURCE_ROOT', None)
# Ensure paths are correctly separated on windows.
cmd[0] = cmd[0].replace('/', os.path.sep)
cmd = fix_python_path(cmd)
Expand Down

0 comments on commit 3766ed1

Please sign in to comment.