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.
Review URL: https://codereview.chromium.org//12035053
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17764 260f80e4-7a28-3924-810f-c04153c831b5
Some context:
On windows, selenium will be hanging a chrome browser
crashes and additional to this we would actually not get information
that the browser crashed, we would get this as a failing test.
This change basically sets up a python timer that will trigger us to
close the browser using browser.service.stop() (I suspect that when
the browser crashes and does not respond in time selenium will call
browser.quit which will be blocking on trying to kill the remote
service).
In addition, this changes the test_runner to handle a crash exitcode
correctly (we will set it to -10 in the bacth runner, I don't know
why, but I dont want to change that in this cl). The current
hasCrashed getter will mask out errors that it does not recognize as
valid windows crashes (of which -10 is not one since it will have a
bunch of set bits in the middle of the bit pattern). I changed this to
explictily recognize the -10 value.
Input on why we have that value is welcome
Review URL: https://codereview.chromium.org//12051037
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17752 260f80e4-7a28-3924-810f-c04153c831b5
Currently drt-trampoline.py is used to call DRT. Unfortunately this causes
problems on Windows: If drt-trampoline.py times out, it is killed by test.dart.
But drt-trampoline.py has no way of installing a signal handler on Windows which
would kill the actual DumpRenderTree process. So sometimes we're left with one
hanging DumpRenderTree process on the Windows buildbots.
This change removes the drt-trampoline.py indirection and calls DRT directly
from test.dart.
Committed: https://code.google.com/p/dart/source/detail?r=16214
Review URL: https://codereview.chromium.org//11586012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16247 260f80e4-7a28-3924-810f-c04153c831b5
Currently drt-trampoline.py is used to call DRT. Unfortunately this causes
problems on Windows: If drt-trampoline.py times out, it is killed by test.dart.
But drt-trampoline.py has no way of installing a signal handler on Windows which
would kill the actual DumpRenderTree process. So sometimes we're left with one
hanging DumpRenderTree process on the Windows buildbots.
This change removes the drt-trampoline.py indirection and calls DRT directly
from test.dart.
Review URL: https://codereview.chromium.org//11586012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16214 260f80e4-7a28-3924-810f-c04153c831b5
Currently, the buildbots run tests on every commit. But often neither
the tests nor the dart2js compiler did change (e.g. on status file updates).
The added code will check if the dependencies (i.e. files listed in
test.js.deps) or the dart2js snapshot did change. If not, the output
of the previous dart2js compilation is up to date and the compilation
step is skipped.
The skipping of redundant dart2js compilations works only if the '--use-sdk'
option was specified (because in this case the dart2js snapshot is used).
Committed: https://code.google.com/p/dart/source/detail?r=15080
Review URL: https://codereview.chromium.org//11369216
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16158 260f80e4-7a28-3924-810f-c04153c831b5
Currently, the buildbots run tests on every commit. But often neither
the tests nor the dart2js compiler did change (e.g. on status file updates).
The added code will check if the dependencies (i.e. files listed in
test.js.deps) or the dart2js snapshot did change. If not, the output
of the previous dart2js compilation is up to date and the compilation
step is skipped.
The skipping of redundant dart2js compilations works only if the '--use-sdk'
option was specified (because in this case the dart2js snapshot is used).
Review URL: https://codereview.chromium.org//11369216
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15080 260f80e4-7a28-3924-810f-c04153c831b5
Currently the TestCase has exactly one TestOutput. This worked
until now, since we were only interested in the output of the
last command.
This change introduces one CommandOutput for each command which
has been run. Doing so enables us to fetch output (stdin,stderr)
information as well as exitCode ... for all commands.
See also 11293278.
Review URL: https://codereview.chromium.org//11348088
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15006 260f80e4-7a28-3924-810f-c04153c831b5
Currently the TestCase has exactly one TestOutput. This worked
until now, since we were only interested in the output of the
last command.
This change introduces one CommandOutput for each command which
has been run. Doing so enables us to fetch output (stdin,stderr)
information as well as exitCode ... for all commands.
Review URL: https://codereview.chromium.org//11293278
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14947 260f80e4-7a28-3924-810f-c04153c831b5