Index: base/test/parallel_test_launcher.h |
diff --git a/base/test/parallel_test_launcher.h b/base/test/parallel_test_launcher.h |
index e7b07df9552c013189bb7b6e847c6326de7b417c..ed22180d2ce2958d5bdbcca298568d6e93ada120 100644 |
--- a/base/test/parallel_test_launcher.h |
+++ b/base/test/parallel_test_launcher.h |
@@ -9,6 +9,7 @@ |
#include <string> |
#include "base/callback.h" |
+#include "base/threading/sequenced_worker_pool.h" |
#include "base/threading/thread_checker.h" |
#include "base/time/time.h" |
#include "base/timer/timer.h" |
@@ -29,10 +30,10 @@ class ParallelTestLauncher { |
~ParallelTestLauncher(); |
// Callback called after a child process finishes. First argument is the exit |
- // code, second one is true if the child process was terminated because of |
- // a timeout, and third one contains output of the child (stdout and stderr |
- // together). |
- typedef Callback<void(int, bool, const std::string&)> |
+ // code, second one is child process elapsed time, third one is true if |
+ // the child process was terminated because of a timeout, and fourth one |
+ // contains output of the child (stdout and stderr together). |
+ typedef Callback<void(int, const TimeDelta&, bool, const std::string&)> |
LaunchChildGTestProcessCallback; |
// Launches a child process (assumed to be gtest-based binary) using |
@@ -45,17 +46,34 @@ class ParallelTestLauncher { |
base::TimeDelta timeout, |
const LaunchChildGTestProcessCallback& callback); |
+ // Similar to above, but with processes sharing the same value of |token_name| |
+ // being serialized, with order matching order of calls of this method. |
+ void LaunchNamedSequencedChildGTestProcess( |
+ const std::string& token_name, |
+ const CommandLine& command_line, |
+ const std::string& wrapper, |
+ base::TimeDelta timeout, |
+ const LaunchChildGTestProcessCallback& callback); |
+ |
// Resets the output watchdog, indicating some test results have been printed |
// out. If a pause between the calls exceeds an internal treshold, a message |
// will be printed listing all child processes we're still waiting for. |
void ResetOutputWatchdog(); |
private: |
+ void LaunchSequencedChildGTestProcess( |
+ SequencedWorkerPool::SequenceToken sequence_token, |
+ const CommandLine& command_line, |
+ const std::string& wrapper, |
+ base::TimeDelta timeout, |
+ const LaunchChildGTestProcessCallback& callback); |
+ |
// Called on a worker thread after a child process finishes. |
void OnLaunchTestProcessFinished( |
size_t sequence_number, |
const LaunchChildGTestProcessCallback& callback, |
int exit_code, |
+ const TimeDelta& elapsed_time, |
bool was_timeout, |
const std::string& output); |