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

Issue 12035053: Support for running a limited amount of browser tests in parallel (Closed)

Created:
7 years, 11 months ago by kustermann
Modified:
7 years, 10 months ago
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Support for running a limited amount of browser tests in parallel Patch Set 1: Refactored test_runner.dart to execute "Command after Command" instead of "TestCase after TestCase". By doing so, we don't couple the execution of compilation commands to the execution of the browser (or test) command. Patch Set 2: Introduce a limitation on the number of parallel browser executions. By doing so we can run 'NumCores' compilation commands in parallel but only a single browser test command at any given time (necessary for IE). This way we can significantly reduce the cycle time on IE bots. Committed: https://code.google.com/p/dart/source/detail?r=17764

Patch Set 1 #

Patch Set 2 : #

Total comments: 16

Patch Set 3 : #

Total comments: 8

Patch Set 4 : #

Total comments: 14

Patch Set 5 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+277 lines, -260 lines) Patch
M tests/standalone/io/skipping_dart2js_compilations_test.dart View 1 2 1 chunk +3 lines, -2 lines 0 comments Download
M tests/standalone/io/test_runner_test.dart View 1 2 3 4 2 chunks +76 lines, -50 lines 0 comments Download
M tests/standalone/standalone.status View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M tools/test.dart View 1 2 3 2 chunks +6 lines, -0 lines 0 comments Download
M tools/test-runtime.dart View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M tools/testing/dart/test_runner.dart View 1 2 3 4 9 chunks +189 lines, -207 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
kustermann
I'd like to get some feedback on the general approach and the implementation.
7 years, 11 months ago (2013-01-23 16:59:18 UTC) #1
ricow1
Initial comments https://codereview.chromium.org/12035053/diff/2001/tests/standalone/standalone.status File tests/standalone/standalone.status (right): https://codereview.chromium.org/12035053/diff/2001/tests/standalone/standalone.status#newcode7 tests/standalone/standalone.status:7: io/skipping_dart2js_compilations_test: Fail why? https://codereview.chromium.org/12035053/diff/2001/tools/test-runtime.dart File tools/test-runtime.dart (right): ...
7 years, 11 months ago (2013-01-24 09:04:28 UTC) #2
kustermann
PTAL. @ahe: FYI. But comments are welcome ;-) https://codereview.chromium.org/12035053/diff/2001/tests/standalone/standalone.status File tests/standalone/standalone.status (right): https://codereview.chromium.org/12035053/diff/2001/tests/standalone/standalone.status#newcode7 tests/standalone/standalone.status:7: io/skipping_dart2js_compilations_test: ...
7 years, 10 months ago (2013-01-29 08:43:32 UTC) #3
ahe
DBC It might be good to get Mads to look at the process changes. https://codereview.chromium.org/12035053/diff/16002/tools/test.dart ...
7 years, 10 months ago (2013-01-29 09:18:42 UTC) #4
Mads Ager (google)
DBC https://codereview.chromium.org/12035053/diff/16002/tools/test.dart File tools/test.dart (right): https://codereview.chromium.org/12035053/diff/16002/tools/test.dart#newcode161 tools/test.dart:161: firstConf['runtime'].contains('ie') ? 1 : maxProcesses; On 2013/01/29 09:18:42, ...
7 years, 10 months ago (2013-01-29 10:47:48 UTC) #5
kustermann
https://codereview.chromium.org/12035053/diff/16002/tools/test.dart File tools/test.dart (right): https://codereview.chromium.org/12035053/diff/16002/tools/test.dart#newcode161 tools/test.dart:161: firstConf['runtime'].contains('ie') ? 1 : maxProcesses; On 2013/01/29 09:18:42, ahe ...
7 years, 10 months ago (2013-01-29 12:10:48 UTC) #6
ricow1
LGTM, lets see what Mads and Peter says to the maxBrowser parameter https://codereview.chromium.org/12035053/diff/13009/tests/standalone/io/test_runner_test.dart File tests/standalone/io/test_runner_test.dart ...
7 years, 10 months ago (2013-01-29 13:01:17 UTC) #7
Mads Ager (google)
I am fine with the max browser parameter, I think you are right that it ...
7 years, 10 months ago (2013-01-29 13:47:39 UTC) #8
kustermann
7 years, 10 months ago (2013-01-29 14:58:26 UTC) #9
https://codereview.chromium.org/12035053/diff/13009/tests/standalone/io/test_...
File tests/standalone/io/test_runner_test.dart (right):

https://codereview.chromium.org/12035053/diff/13009/tests/standalone/io/test_...
tests/standalone/io/test_runner_test.dart:15: final LONG_TIMEOUT = 120;
On 2013/01/29 13:01:17, ricow1 wrote:
> isn't this even longer than the timeout we have in the normal runner?, i.e.,
> will we not get killed before hitting this?

Since it shouldn't time out, let's set this to 30 seconds.

https://codereview.chromium.org/12035053/diff/13009/tests/standalone/standalo...
File tests/standalone/standalone.status (left):

https://codereview.chromium.org/12035053/diff/13009/tests/standalone/standalo...
tests/standalone/standalone.status:9: io/test_runner_test: Pass, Fail # Issue
1947
On 2013/01/29 13:01:17, ricow1 wrote:
> as asked in the test file, don't we need to mark this as slow in case it uses
> more than a minute?
As mentioned on the other comment, it shouldn't be slow, therefore we don't mark
it as slow.

https://codereview.chromium.org/12035053/diff/13009/tools/testing/dart/test_r...
File tools/testing/dart/test_runner.dart (right):

https://codereview.chromium.org/12035053/diff/13009/tools/testing/dart/test_r...
tools/testing/dart/test_runner.dart:960: void timeoutHandler(Timer unusedTimer)
{
On 2013/01/29 13:01:17, ricow1 wrote:
> Timer unusedTimer -> _

This was old code.

https://codereview.chromium.org/12035053/diff/13009/tools/testing/dart/test_r...
tools/testing/dart/test_runner.dart:966: // Hopefully, this means that the
process died on its own.
On 2013/01/29 13:01:17, ricow1 wrote:
> First of all, I don't think kill will ever throw an exception, secondly if it
> did I think this is something we want to log

This was old code. You're right, ProcessException is only thrown in
Process.start() but not in Process.kill().

https://codereview.chromium.org/12035053/diff/13009/tools/testing/dart/test_r...
tools/testing/dart/test_runner.dart:1619: 
On 2013/01/29 13:01:17, ricow1 wrote:
> remove blank line

Done.

https://codereview.chromium.org/12035053/diff/13009/tools/testing/dart/test_r...
tools/testing/dart/test_runner.dart:1635: void wrapper(TestCase test_arg) {
On 2013/01/29 13:01:17, ricow1 wrote:
> call this something other than wrapper

This was old code.

https://codereview.chromium.org/12035053/diff/13009/tools/testing/dart/test_r...
tools/testing/dart/test_runner.dart:1735: print("Potential flake. Re-running
${testCase.displayName} "
On 2013/01/29 13:01:17, ricow1 wrote:
> should we write this out to our flaky log?
Let's write it to the debug.log since flaky.log should only contain failing
tests which are marked as flaky in the status files.

Powered by Google App Engine
This is Rietveld 408576698