diff options
author | lzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-16 21:45:48 +0000 |
---|---|---|
committer | lzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-16 21:45:48 +0000 |
commit | 9af13ce69bac1bea70068ba9ecb20549c27e52ae (patch) | |
tree | 7060a0342a419d2d3d1174ff4005ff6371fc03a5 /net/test/python_utils.cc | |
parent | 18539ee85b09a1398eb545a46f137bf336670202 (diff) | |
download | chromium_src-9af13ce69bac1bea70068ba9ecb20549c27e52ae.zip chromium_src-9af13ce69bac1bea70068ba9ecb20549c27e52ae.tar.gz chromium_src-9af13ce69bac1bea70068ba9ecb20549c27e52ae.tar.bz2 |
Re checkin 59671.
Revert 59680 - Revert 59671 - Refactor test_server so some python related functions could be shared by other test servers.
BUG=none
TEST=python_utils_unittest.cc
Review URL: http://codereview.chromium.org/3366026
TBR=thakis@chromium.org
Review URL: http://codereview.chromium.org/3415011
TBR=lzheng@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59728 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/test/python_utils.cc')
-rw-r--r-- | net/test/python_utils.cc | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/net/test/python_utils.cc b/net/test/python_utils.cc new file mode 100644 index 0000000..5f574fe --- /dev/null +++ b/net/test/python_utils.cc @@ -0,0 +1,51 @@ +// Copyright (c) 2010 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 "net/test/python_utils.h" + +#include "base/base_paths.h" +#include "base/environment.h" +#include "base/file_path.h" +#include "base/path_service.h" +#include "base/scoped_ptr.h" +#include "base/utf_string_conversions.h" + +const char kPythonPathEnv[] = "PYTHONPATH"; + +void AppendToPythonPath(const FilePath& dir) { + scoped_ptr<base::Environment> env(base::Environment::Create()); + std::string old_path; + std::string dir_path; +#if defined(OS_WIN) + dir_path = WideToUTF8(dir.value()); +#elif defined(OS_POSIX) + dir_path = dir.value(); +#endif + if (!env->GetVar(kPythonPathEnv, &old_path)) { + env->SetVar(kPythonPathEnv, dir_path.c_str()); + } else if (old_path.find(dir_path) == std::string::npos) { + std::string new_path(old_path); +#if defined(OS_WIN) + new_path.append(";"); +#elif defined(OS_POSIX) + new_path.append(":"); +#endif + new_path.append(dir_path.c_str()); + env->SetVar(kPythonPathEnv, new_path); + } +} + +bool GetPythonRunTime(FilePath* dir) { +#if defined(OS_WIN) + if (!PathService::Get(base::DIR_SOURCE_ROOT, dir)) + return false; + *dir = FilePath(FILE_PATH_LITERAL("third_party")) + .Append(FILE_PATH_LITERAL("python_24")) + .Append(FILE_PATH_LITERAL("python.exe")); +#elif defined(OS_POSIX) + *dir = FilePath("python"); +#endif + return true; +} + |