summaryrefslogtreecommitdiffstats
path: root/net/test
diff options
context:
space:
mode:
authorlzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-09 21:49:40 +0000
committerlzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-09 21:49:40 +0000
commit813e9cd124841e826bd24aa2c00fe812815d7796 (patch)
tree596094802d3bfbad10ddcd176ff4a9d9cac95f34 /net/test
parent630b71e9f360151fa934d4b8eab7ecf987211239 (diff)
downloadchromium_src-813e9cd124841e826bd24aa2c00fe812815d7796.zip
chromium_src-813e9cd124841e826bd24aa2c00fe812815d7796.tar.gz
chromium_src-813e9cd124841e826bd24aa2c00fe812815d7796.tar.bz2
Make sure the generated python proto buff path is right.
BUG=62415 TEST=mac trybot green with safe_browsing_tests Review URL: http://codereview.chromium.org/4677002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65574 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/test')
-rw-r--r--net/test/python_utils.cc30
-rw-r--r--net/test/python_utils.h4
-rw-r--r--net/test/test_server.cc29
3 files changed, 37 insertions, 26 deletions
diff --git a/net/test/python_utils.cc b/net/test/python_utils.cc
index 438c3d7..3a1068f 100644
--- a/net/test/python_utils.cc
+++ b/net/test/python_utils.cc
@@ -7,6 +7,7 @@
#include "base/base_paths.h"
#include "base/environment.h"
#include "base/file_path.h"
+#include "base/file_util.h"
#include "base/path_service.h"
#include "base/scoped_ptr.h"
#include "base/utf_string_conversions.h"
@@ -36,6 +37,34 @@ void AppendToPythonPath(const FilePath& dir) {
}
}
+bool GetPyProtoPath(FilePath* dir) {
+ // Locate the Python code generated by the protocol buffers compiler.
+ FilePath generated_code_dir;
+ if (!PathService::Get(base::DIR_EXE, &generated_code_dir)) {
+ return false;
+ }
+
+ const FilePath kPyProto(FILE_PATH_LITERAL("pyproto"));
+
+#if defined(OS_MACOSX)
+ // On Mac, DIR_EXE might be pointing deep into the Release/ (or Debug/)
+ // directory and we can't depend on how far down it goes. So we walk upwards
+ // from DIR_EXE until we find a likely looking spot.
+ while (!file_util::DirectoryExists(generated_code_dir.Append(kPyProto))) {
+ FilePath parent = generated_code_dir.DirName();
+ if (parent == generated_code_dir) {
+ // We hit the root directory. Maybe we didn't build any targets which
+ // produced Python protocol buffers.
+ PathService::Get(base::DIR_EXE, &generated_code_dir);
+ return false;
+ }
+ generated_code_dir = parent;
+ }
+#endif
+ *dir = generated_code_dir.Append(kPyProto);
+ return true;
+}
+
bool GetPythonRunTime(FilePath* dir) {
#if defined(OS_WIN)
if (!PathService::Get(base::DIR_SOURCE_ROOT, dir))
@@ -48,4 +77,3 @@ bool GetPythonRunTime(FilePath* dir) {
#endif
return true;
}
-
diff --git a/net/test/python_utils.h b/net/test/python_utils.h
index 215569c..bc3bdb1 100644
--- a/net/test/python_utils.h
+++ b/net/test/python_utils.h
@@ -16,8 +16,10 @@ extern const char kPythonPathEnv[];
// Appends the dir to python path environment variable.
void AppendToPythonPath(const FilePath& dir);
+// Return the location of the compiler-generated python protobuf.
+bool GetPyProtoPath(FilePath* dir);
+
// Returns the path that should be used to launch Python.
bool GetPythonRunTime(FilePath* path) WARN_UNUSED_RESULT;
#endif // NET_TEST_PYTHON_UTILS_H_
-
diff --git a/net/test/test_server.cc b/net/test/test_server.cc
index 4b426eb..f5592a2 100644
--- a/net/test/test_server.cc
+++ b/net/test/test_server.cc
@@ -284,33 +284,14 @@ bool TestServer::SetPythonPath() {
AppendToPythonPath(third_party_dir.Append(FILE_PATH_LITERAL("pyftpdlib")));
// Locate the Python code generated by the protocol buffers compiler.
- FilePath generated_code_dir;
- if (!PathService::Get(base::DIR_EXE, &generated_code_dir)) {
- LOG(ERROR) << "Failed to get DIR_EXE";
+ FilePath pyproto_code_dir;
+ if (!GetPyProtoPath(&pyproto_code_dir)) {
+ LOG(ERROR) << "Failed to get python dir for generated code.";
return false;
}
- static const FilePath kPyProto(FILE_PATH_LITERAL("pyproto"));
-
-#if defined(OS_MACOSX)
- // On Mac, DIR_EXE might be pointing deep into the Release/ (or Debug/)
- // directory and we can't depend on how far down it goes. So we walk upwards
- // from DIR_EXE until we find a likely looking spot.
- while (!file_util::DirectoryExists(generated_code_dir.Append(kPyProto))) {
- FilePath parent = generated_code_dir.DirName();
- if (parent == generated_code_dir) {
- // We hit the root directory. Maybe we didn't build any targets which
- // produced Python protocol buffers.
- PathService::Get(base::DIR_EXE, &generated_code_dir);
- break;
- }
- generated_code_dir = parent;
- }
-#endif
-
- AppendToPythonPath(generated_code_dir.Append(kPyProto));
- AppendToPythonPath(generated_code_dir.Append(kPyProto).
- Append(FILE_PATH_LITERAL("sync_pb")));
+ AppendToPythonPath(pyproto_code_dir);
+ AppendToPythonPath(pyproto_code_dir.Append(FILE_PATH_LITERAL("sync_pb")));
return true;
}