In the process, I discovered multitests can't handle imports to
non-existent libraries. So I fixed that and cleaned up the code.
Change-Id: I9a8557e84f91ba7858bdf98f8732cd0ded55aa1a
Reviewed-on: https://dart-review.googlesource.com/52869
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
This CL modifies the Dart source used from test.py such that it takes
`syntax error` into account as an expected outcome in test files (so
that we can have `//# 01: syntax error` with a similar meaning as
`//# 01: compile-time error`).
For all tools except the spec_parser, `syntax error` is the same
outcome as `compile-time error`; that is, nobody else will see the
difference.
For the spec_parser, `syntax error` is the outcome where parsing has
failed; `compile-time error` is taken to mean some other compile-time
error, i.e., the spec_parser is expected to _succeed_ when the
expected outcome is `compile-time error`.
Test files in language and language_2 have been adjusted to use the
outcome `syntax error` where appropriate.
The status files in language and language_2 for the spec_parser have
been adjusted such that they fit all the new `syntax error` outcomes
in test files.
Other status files have been adjusted in a few cases where tests were
corrected (because a compile-time error which was clearly not intended
to be a syntax error turned out to be caused by a typo, which means
that the actual compile-time error has never been tested).
The spec grammar Dart.g was adjusted in a few cases, when some bugs
were discovered. In particular, the treatment of Function has been
changed: It is now known by the parser that Function does not take
any type arguments. This makes no difference for developers, because
they cannot declare a type named Function anyway, but it means that
a number of tricky parsing issues were resolved.
Dart.g was also adjusted to allow `qualified` to contain three
identifiers, which is an old bug (preventing things like metadata on
the form `@p.C.myConst`).
Change-Id: Ie420887d45c882ef97c84143365219f8aa0d2933
Reviewed-on: https://dart-review.googlesource.com/18262
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
- Fix fuzzy arrow errors.
- Default the Dart repo URI so it doesn't always need to be explicitly
set.
- Run dartfmt on everything.
- Move some members out of the garbage bin "TestUtils" class:
- Move the stuff around the Dart repo directory to a new Repository
class.
- Move absolute() into Path where it belongs.
- Move workingDirectory in Path since it is a Path.
- Delete the random number stuff since it was apparently unused.
Change-Id: I3dab3a4f1713b7a749e64b6776149d05a0ce1b69
Reviewed-on: https://dart-review.googlesource.com/14502
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
This doesn't get rid of all implicit dynamic and casts, but it covers
many of them.
Also did some minor modernization when I noticed it:
- Using "var" for local variables where inference does the right thing.
- camelCase for variable names.
- More collection literals.
There are (or should be!) zero behavioral changes.
R=whesse@google.com
Review-Url: https://codereview.chromium.org/2863253002 .
Update all tests
Support //# multitests for better dartfmt compatibility and fewer multitest false positives
All files under tests were manually updated with
find . -iregex '.*\.dart$' -print0 | xargs -0 perl -pi -e 's/(\S\s+)\/\/\/ /$1\/\/# /'
For now both old and new styles are allowed to accommodate CO19 tests.
R=efortuna@google.com
BUG=
Review-Url: https://codereview.chromium.org/2765693002 .
Review-Url: https://codereview.chromium.org/2765893003 .
Support //# multitests for better dartfmt compatibility and fewer multitest false positives
All files under tests were manually updated with
find . -iregex '.*\.dart$' -print0 | xargs -0 perl -pi -e 's/(\S\s+)\/\/\/ /$1\/\/# /'
For now both old and new styles are allowed to accommodate CO19 tests.
R=efortuna@google.com
Review-Url: https://codereview.chromium.org/2765693002 .
- [x] Start reloading even earlier.
- [x] Keep the value of FLAG_reload_every per-isolate (so spawned isolates reload eagerly too).
- [x] Adjust the reload every back off curve to be linear in the beginning.
- [x] Cap the reload every threshold at 1,000,000
- [x] Test status file updates.
- [x] Stop disabling the background compiler / OSR when running tests.
- [x] Skip multi tests with compilation errors when reloading.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2133823002 .
This change adds a out.js.cached_output (or equivalent) for compilations that fails.
There are two cases where this helps:
Commits where the sdk does not change and but we would normally recompile since we don't have the dart2js output
Runs on the buildbot where we do several runs on different runtimes in serial
Additionally, this introduces a check on multitest files so we don't copy the file if the content is already correct. The reason for this is that a bunch of tests depend on the copied import which will then trigger a recompilation.
This will help in the same two cases as above.
This change also changes dart2js to always output the deps file, otherwise we have no way of knowing if we can reuse the output.
R=floitsch@google.com, kustermann@google.com, whesse@google.com
Review URL: https://codereview.chromium.org//256743009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36162 260f80e4-7a28-3924-810f-c04153c831b5
This script supports two commands:
deflake:
This command will go through all status file entries and check if the actual
testoutcomes we've observed on our buildbots match the status file entries.
If we have tests marked as flaky which are in fact not flaky, it will write
a *.status.deflaked file which contains the fixes to the status file.
fix:
This command will go through all status files and ensures that all the
status file lines correspond to existing tests.
If we have lines that refer to non-existent tests, it will write a
*.status.fixed file which contains the fixes to the status file.
R=whesse@google.com
Review URL: https://codereview.chromium.org//143453012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32694 260f80e4-7a28-3924-810f-c04153c831b5
This CL will:
- fix a bug in the legacy AnalyzerCommandOutputImpl class (in certain cases
we did not report that the analyzer was missing a warning).
- make the outcome of running the analyzer on a test be one of:
* CompileTimeError
* MissingCompileTimeError
* StaticWarning
* MissingStaticWarning
- Make status file updates using the new Expectation markers
- Remove support for '@static-clean':
Previously running the analyer on a test could either result in
'Pass' or in 'Fail'. The '@static-clean' annotation has been used
as a (poor) mechanism to distinguish between errors and warnings.
Having the 4 markers mentioned above means we can remove '@static-clean'
- Remove 100 lines of rotted legacy code in our testing scripts.
- Make a status file entry for every test that has analyzer errors or warnings
R=ricow@google.com
Review URL: https://codereview.chromium.org//46163002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29350 260f80e4-7a28-3924-810f-c04153c831b5