summaryrefslogtreecommitdiffstats
path: root/net/test/python_utils.cc
diff options
context:
space:
mode:
authorrsimha@google.com <rsimha@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-12 20:12:46 +0000
committerrsimha@google.com <rsimha@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-12 20:12:46 +0000
commitf352e796c7634f9ac6482150845896ddb6ffb262 (patch)
treee673f29f36fbdad2b54920546e2de211f79105ee /net/test/python_utils.cc
parentd148b610cbeac4acc3c0e6c7e513ea443293781b (diff)
downloadchromium_src-f352e796c7634f9ac6482150845896ddb6ffb262.zip
chromium_src-f352e796c7634f9ac6482150845896ddb6ffb262.tar.gz
chromium_src-f352e796c7634f9ac6482150845896ddb6ffb262.tar.bz2
Take 2: Force python test server output to be unbuffered, so it doesn't mix with gtest output
In browser tests that use a local python server, the python output in the test logs sometimes overlaps with gtest output, resulting in gtest falsely detecting passing tests as incomplete. This is a result of python's default use of buffered output, which gets written to the log file out of order. This patch forces the python process for local test servers to use unbuffered mode via the -u switch. This way, by the time gtest is ready to log a passing test, all testserver output is already written to the log file. BUG=147368 TEST= See sync integration test output when it is redirected to a log file, and make sure there are no false negatives. Review URL: https://chromiumcodereview.appspot.com/10907162 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156361 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/test/python_utils.cc')
-rw-r--r--net/test/python_utils.cc21
1 files changed, 15 insertions, 6 deletions
diff --git a/net/test/python_utils.cc b/net/test/python_utils.cc
index 0eec816..82d0c5c 100644
--- a/net/test/python_utils.cc
+++ b/net/test/python_utils.cc
@@ -5,6 +5,7 @@
#include "net/test/python_utils.h"
#include "base/base_paths.h"
+#include "base/command_line.h"
#include "base/environment.h"
#include "base/file_path.h"
#include "base/file_util.h"
@@ -103,15 +104,23 @@ bool GetPyProtoPath(FilePath* dir) {
return true;
}
-bool GetPythonRunTime(FilePath* dir) {
+bool GetPythonCommand(CommandLine* python_cmd) {
+ DCHECK(python_cmd);
+ FilePath dir;
#if defined(OS_WIN)
- if (!PathService::Get(base::DIR_SOURCE_ROOT, dir))
+ if (!PathService::Get(base::DIR_SOURCE_ROOT, &dir))
return false;
- *dir = dir->Append(FILE_PATH_LITERAL("third_party"))
- .Append(FILE_PATH_LITERAL("python_26"))
- .Append(FILE_PATH_LITERAL("python.exe"));
+ dir = dir.Append(FILE_PATH_LITERAL("third_party"))
+ .Append(FILE_PATH_LITERAL("python_26"))
+ .Append(FILE_PATH_LITERAL("python.exe"));
#elif defined(OS_POSIX)
- *dir = FilePath("python");
+ dir = FilePath("python");
#endif
+ python_cmd->SetProgram(dir);
+
+ // Launch python in unbuffered mode, so that python output doesn't mix with
+ // gtest output in buildbot log files. See http://crbug.com/147368.
+ python_cmd->AppendArg("-u");
+
return true;
}