This is the first checked-in SDK with null-safety enabled by default.
Change-Id: I8f6fcdfd8856483f4737eb200ed4623a244cb0cd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/170085
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
I don't like having a large volume of Dart code sitting under tools/
where it is hard to analyze, lint, test, and reuse. Also, eventually
we want to merge test.dart and test.py. This seems like an easy mostly
mechanical first step.
All I did was:
1. Move the contents of tools/test.dart to
pkg/test_runner/lib/test_runner.dart. (That's not a great file name
since we already have pkg/test_runner/bin/test_runner.dart, but it
was the best I could come up with.
2. Copy tools/bots/results to pkg/test_runner/bot_results.dart. I
don't like duplicating this, but there are other scripts under tools
that import the old location. Eventually, we should have those
scripts import it from package:test_runner/bot_results.dart, but I
didn't want to do that here since I'm not familiar with those other
scripts.
3. Make tools/test.dart import and forward to
pkg/test_runner/lib/test_runner.dart.
4. Fix any linter and type errors. The test_runner package has a bunch
of strictness checks and lints enable to keep it cleaner.
5. Run dartfmt --fix to format and get rid of "new", etc.
Change-Id: Ifc89817508d3fc147fa78dbc6744d547aeaf4c55
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155240
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
This CL changes test.dart to
- improve errors reporting with multiple configurations and builders
by tracking the builders for each configuration separately
- improve output of which configurations and which builders are
tested
- fix a missing check for the case that at least one invalid and
one valid configuration was used
- remove a class and some type annotations
Change-Id: If91e3033c3892c39243327101d3017a5f8e710c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130369
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
Change-Id: I72fe74e1052c9c82eaf12e8c510501b037aa00a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130361
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
This change allows to run test.dart and pkg/test_runner with multiple arguments
for the -n option to run tests for multiple configurations with one invocation.
Change-Id: If62e0bfc364460fa415c7f700f7e449b0de56987
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122395
Commit-Queue: Karl Klose <karlklose@google.com>
Reviewed-by: William Hesse <whesse@google.com>
This adds a "--deflake" flag to test.dart. Deflaking will only run if
that flag is set.
Deflaking is time consuming and delays the information that users want
to see when most of the time they know that the result is not caused by
flakiness.
A typical session may look like this:
* Run test.dart with a broad test selector without deflaking.
* Re-run test.dart with a narrow test selector for suspected flakes with
"--deflake". This second step is optional.
Additionally, a new "--report-flakes" flag is added that can be
used to report test failures for tests known to be flaky.
Change-Id: I543d0b40c32065eb0a50338c55e7050b7887abce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102381
Reviewed-by: Jonas Termansen <sortie@google.com>
This change makes test.dart handle if the baseline commit hasn't been built
on the requested builder and instead attempts to search for whether there's
results for up to 25 preceding commits, which it then uses as an inexact
baseline.
Closes https://github.com/dart-lang/sdk/issues/36211
Change-Id: Ie44042c67c9460826736f4a2cf159d8d7b455f0b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96944
Reviewed-by: William Hesse <whesse@google.com>
This option makes the available named configurations much more discoverable.
Additionally this change expands the available named configurations by
generalizing the operating system and processor architecture patterns
in the named configurations. This change should ensure that nobody is doing
any local testing that isn't covered by a named configuration.
Change-Id: I776105955a86e9f0403ce07a3cdf971e4213646f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96320
Commit-Queue: Jonas Termansen <sortie@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
There are more named configurations in existance than the ones that actually
run on the builders.
Change-Id: Ie91e71fcec6014830fe286b33c856177fb30c2a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96380
Reviewed-by: Alexander Thomas <athom@google.com>
This change lets one download the results for one named configuration but do
the local testing with another named configuration. This change addresses
the issue of developers needing to do local testing where there is no
builder matching their local environment. This allows e.g. a dart2js
developer on Windows to use the results for the Linux variant of the same
named configuration, which should be identical or close enough for the
comparison to be meaningful.
Fixes https://github.com/dart-lang/sdk/issues/36151
Change-Id: I1a387a9767cdf5ba99964535478201c0142f15e1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96102
Reviewed-by: William Hesse <whesse@google.com>
This change makes named configurations central in test.dart. Previously
test.dart would attempt to emulate the steps taken by a builder. Instead it
now runs a single named configuration as a single step and invokes test.py
directly without any other arguments from the test steps. This better
matches the behavior of test.py and what the developers expect.
Either a named configuration or a builder must be specified. If both are
provided, then the results for that builder is downloaded and used to
compare with when running the named configuration. Otherwise if the only the
named configuration is provided, then it downloads results from all the
builders using the named configuration. Finally if only the builder is
provided, then the named configuration defaults to the one tested by the
builder. If the builder has multiple named configuration, the user is
asked to clarify which one should be tested.
This change adds support for branches to the test matrix. test.dart needs to
know which builders are on which branch, so it can download the relevant
results, and not look on builders that won't be building the right commit.
Fixes https://github.com/dart-lang/sdk/issues/35873
Change-Id: Ie7b75445b954250493528299a0b45eca4e0bb2e5
Reviewed-on: https://dart-review.googlesource.com/c/92780
Reviewed-by: William Hesse <whesse@google.com>
This change takes advantage of the new --clean-exit and --silent-failures
options to test.py, which means the test.py native progress bar can be used.
test.py exiting 0 if results were written out, no matter the results, lets
us properly handle if the program failed.
The output is now sectioned to make it more readable, and if no tests
failed, then the program says so.
This change also fixes logs which were broken because the logs for the steps
weren't merged, and the main test.py run wasn't even being passed the
--write-logs option.
This change also fixes directly starting dart scripts as an executable
rather than using the platform resolved executable.
TBR=whesse@google.com
Bug: https://github.com/dart-lang/sdk/issues/35359
Change-Id: I7bed009475df3ffea01c9e805513d0e04e77427c
Reviewed-on: https://dart-review.googlesource.com/c/86568
Reviewed-by: Jonas Termansen <sortie@google.com>
test.dart locates where the current branch branched off master and compares
the local testing results with the appropriate mainline builder results,
letting you know how the current change compares without the need for status
files.
Bug: https://github.com/dart-lang/sdk/issues/35086
Change-Id: Ib79479b867c5ac131302fea1bdf7effd0422a83a
Reviewed-on: https://dart-review.googlesource.com/c/83281
Reviewed-by: Alexander Thomas <athom@google.com>
This is mainly so that all of the code relating to test.dart is in one
directory tree so things like "Find All Usages" work a little better.
It felt weird to me to have a .dart file two directories up importing a
bunch of stuff within "testing/dart/".
Also cleaned up the affected code since it could use a little love. I'm
working on getting test.dart running DDC tests, but from poking around,
it seems like it could use some housekeeping as well.
R=vsm@google.com, whesse@google.com
Review-Url: https://codereview.chromium.org/2848103002 .
Steps to make this work:
a) Make sure you have an android sdk checkout:
=> See https://github.com/dart-lang/sdk/wiki/Building-Dart-SDK-for-Android
b) Building using android-toolchain crosscompiler:
$ ./tools/build.py -mrelease -aarm --os=android dart_precompiled_runtime
=> Notice --os=android
c) Testing using attached android phones:
$ export PATH=$PATH:$PWD/third_party/android_tools/sdk/platform-tools
$ ./tools/test.py -mrelease -aarm --system=android -cprecompiler -rdart_precompiled --use-blobs
=> Notice --system=android
Failing tests on android can be marked in status files via:
[ $compiler == precompiler && $runtime == dart_precompiled && $system == android ]
R=whesse@google.com
Review URL: https://codereview.chromium.org/1922163002 .
This will be used on the bots to be able to archive dumps from unexpectec crashes.
The tools/archive_crash.py tool will be used to actually archive the dumps to gcs and delete the local copies. The reason for the split is to enable developers to actually utilize this locally as well (run tools/test.py in a loop but don't archive the expected crashes). Additionally, this puts the bot specific code in the small python script.
R=whesse@google.com
Review URL: https://codereview.chromium.org//145273024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32111 260f80e4-7a28-3924-810f-c04153c831b5