Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(870)

Unified Diff: tools/testing/dart/test_runner.dart

Issue 9572007: Revert "Adding webdriver setup script." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/testing/dart/test_options.dart ('k') | tools/testing/perf_testing/buildbot_browser_test_setup.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/testing/dart/test_runner.dart
diff --git a/tools/testing/dart/test_runner.dart b/tools/testing/dart/test_runner.dart
index b9f9d04c6fa20b30cf7aa2f85317bdeeb058762c..650cdcf6507e41a0bcd0b08a8e3eacba8974f488 100644
--- a/tools/testing/dart/test_runner.dart
+++ b/tools/testing/dart/test_runner.dart
@@ -128,8 +128,6 @@ class TestCase {
List<String> get batchTestArguments() => commands.last().arguments;
void completed() { completedHandler(this); }
-
- bool get usesWebDriver() => configuration['component'] == 'webdriver';
}
@@ -288,8 +286,8 @@ class RunningProcess {
for (var line in testCase.output.stdout) print(line);
}
if (allowRetries != null && allowRetries
- && testCase.usesWebDriver && testCase.output.unexpectedOutput
- && testCase.numRetries > 0) {
+ && testCase.configuration['component'] == 'webdriver' &&
+ testCase.output.unexpectedOutput && testCase.numRetries > 0) {
// Selenium tests can be flaky. Try rerunning.
testCase.output.requestRetry = true;
}
@@ -323,8 +321,8 @@ class RunningProcess {
} else {
stderr.add('test.dart: Compilion finished $suffix\n');
stdout.add('test.dart: Compilion finished $suffix\n');
- if (currentStep == totalSteps - 1 && testCase.usesWebDriver &&
- !testCase.configuration['noBatch']) {
+ if (currentStep == totalSteps - 1
+ && testCase.configuration['component'] == 'webdriver') {
// Note: processQueue will always be non-null for component == webdriver
// (It is only null for component == vm)
processQueue._getBatchRunner(testCase).startTest(testCase);
@@ -402,7 +400,7 @@ class BatchRunnerProcess {
BatchRunnerProcess(TestCase testCase) {
_executable = testCase.commands.last().executable;
_batchArguments = testCase.batchRunnerArguments;
- _isWebDriver = testCase.usesWebDriver;
+ _isWebDriver = testCase.configuration['component'] == 'webdriver';
}
bool get active() => _currentTest != null;
@@ -607,14 +605,7 @@ class ProcessQueue {
* String indicating the browser used to run the tests. Empty if no browser
* used.
*/
- String browserUsed = '';
- /**
- * Process running the selenium server .jar (only used for Safari and Opera
- * tests.)
- */
- Process _seleniumServer = null;
- /** True if we are in the process of starting the server. */
- bool _startingServer = false;
+ String browserUsed;
ProcessQueue(int this._maxProcesses,
String progress,
@@ -631,6 +622,7 @@ class ProcessQueue {
_batchProcesses = new Map<String, List<BatchRunnerProcess>>(),
_testCache = new Map<String, List<TestInformation>>() {
if (!_enqueueMoreWork(this)) _progress.allDone();
+ browserUsed = '';
}
/**
@@ -706,9 +698,6 @@ class ProcessQueue {
void _cleanupAndMarkDone() {
if (browserUsed != '') {
killZombieBrowsers();
- if (_isSeleniumAvailable) {
- _seleniumServer.kill();
- }
} else {
_progress.allDone();
}
@@ -747,92 +736,16 @@ class ProcessQueue {
}
}
}
-
- /**
- * True if we are using a browser + platform combination that needs the
- * Selenium server jar.
- */
- bool get _needsSelenium() => new Platform().operatingSystem() == 'macos' &&
- browserUsed == 'safari';
-
- /** True if the Selenium Server is ready to be used. */
- bool get _isSeleniumAvailable() => _seleniumServer != null;
-
- /** Start the Selenium Server jar, if appropriate for this platform. */
- void _ensureSeleniumServerRunning() {
- if (!_isSeleniumAvailable && _startingServer == false) {
- _startingServer = true;
- _startSeleniumServer();
- }
- }
void _runTest(TestCase test) {
- if (test.usesWebDriver) {
+ if (test.configuration['component'] == 'webdriver') {
browserUsed = test.configuration['browser'];
- if (_needsSelenium) _ensureSeleniumServerRunning();
}
_progress.testAdded();
_tests.add(test);
_tryRunTest();
}
- /**
- * Monitor the output of the Selenium server, to know when we are ready to
- * begin running tests.
- * source: Output(Stream) from the Java server.
- */
- Function makeSeleniumServerHandler(StringInputStream source) {
- return () {
- if (source.closed) return; // TODO(whesse): Remove when bug is fixed.
- var line = source.readLine();
- while (null != line) {
- if (const RegExp(@".*Started.*Server.*").hasMatch(line) ||
- const RegExp(@"Exception.*Selenium is already running.*").hasMatch(
- line)) {
- for (int i = 0; i < _maxProcesses; i++) {
- // Restart all the processes that have been waiting/stopped for
- // the server to start up. If we just call this once we end up
- // with a single-"threaded" run.
- _tryRunTest();
- }
- }
- line = source.readLine();
- }
- };
- }
-
- /**
- * For browser tests using Safari or Opera, we need to use the Selenium 1.0
- * Java server.
- */
- void _startSeleniumServer() {
- // Get the absolute path to the Selenium jar.
- String filePath = new Options().script;
- String pathSep = new Platform().pathSeparator();
- int index = filePath.lastIndexOf(pathSep);
- filePath = filePath.substring(0, index) + '${pathSep}testing${pathSep}';
- var dir = new Directory(filePath);
- dir.onFile = (String file) {
- if (const RegExp(@"selenium-server-standalone-.*\.jar").hasMatch(file)
- && _seleniumServer == null) {
- _seleniumServer = new Process.start('java', ['-jar', file]);
- // Heads up: there seems to an obscure data race of some form in
- // the VM between launching the server process and launching the test
- // tasks that disappears when you read IO (which is convenient, since
- // that is our condition for knowing that the server is ready).
- StringInputStream stdoutStringStream =
- new StringInputStream(_seleniumServer.stdout);
- StringInputStream stderrStringStream =
- new StringInputStream(_seleniumServer.stderr);
- stdoutStringStream.onLine =
- makeSeleniumServerHandler(stdoutStringStream);
- stderrStringStream.onLine =
- makeSeleniumServerHandler(stderrStringStream);
- }
- };
- dir.list();
- }
-
void _terminateBatchRunners() {
for (var runners in _batchProcesses.getValues()) {
for (var runner in runners) {
@@ -872,12 +785,6 @@ class ProcessQueue {
tab + Strings.join(test.commands.last().arguments, tab));
return;
}
- if (test.usesWebDriver && _needsSelenium && !_isSeleniumAvailable) {
- // The server is not ready to run Selenium tests. Put them back in the
- // queue.
- _tests.addFirst(test);
- return;
- }
_progress.start(test);
Function oldCallback = test.completedHandler;
Function wrapper = (TestCase test_arg) {
« no previous file with comments | « tools/testing/dart/test_options.dart ('k') | tools/testing/perf_testing/buildbot_browser_test_setup.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698