Commit Graph

857 Commits

Author SHA1 Message Date
Jens Johansen 64be0aa210 [DDC-kernel] Use package:sourcemap_testing, delete copied file
Now that some files were factored out into a separate package, delete
the copied file and use the package instead.

Bug:
Change-Id: I3e58ae0213517234b179d6dcfcf251830cb1166a
Reviewed-on: https://dart-review.googlesource.com/22980
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2017-11-22 14:54:37 +00:00
Jens Johansen 49dc9f5a8d [DDC-kernel] Make source map tests report better errors; fix paths.
Update the expected paths for summary, sdk and dill files.
Report errors saying that it cannot find specific files instead of
letting ddc crash with some exit code.

Bug:
Change-Id: I88348dc28ebad8cc4b630b85555be978244c8cd7
Reviewed-on: https://dart-review.googlesource.com/22920
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2017-11-22 14:12:27 +00:00
Jens Johansen df1d05a7a1 [DDC-kernel] Initial source maps; testing framework for sourcemaps
This CL adds the bare minimum of source map generation for the kernel
pipeline in DDC.

It additionally introduces a testing framework that compiles dart files
with DDC (with or without kernel), steps through it via D8 and compares
the positions stopped at to the expected stop positions.

Bug:
Change-Id: Ie9e06164d8e51c973b83c46a8472e044876e4317
Reviewed-on: https://dart-review.googlesource.com/20662
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2017-11-21 10:23:08 +00:00
Bob Nystrom 68dc77f456 Build DDC's SDK as part of the regular build.
This involves a few main pieces:

- Add code to the GN scripts to generate DDC's patched SDK and then
  compile it to summaries and JS in the build output directory.

- Add support to the underlying DDC build scripts to support controlling
  which files are built where.

- Update test.dart to use the DDC SDK from the build directory.

- Update create_sdk to use the built SDK instead of the checked in one.

- Fix various internal DDC tools to build their own copy of the SDK
  (since they can't easily find the one in the build directory because
  it's path if config-specific) and use those.

- Delete the checked DDC SDK JS and summaries.

I think I got everything working. The built Dart SDK looks fine -- it's
identical to one built using the old build scripts.

The various tools and DDC's little test runner I *think* work, but there
may be a bug or two in there. I tried the various things I could and it
seems like they work but it's hard to tell since they may be kind of
broken right now anyway.

Bug:
Change-Id: Iea77915a5c1cc8450f60ebfbdf8c725c7ea2f32c
Reviewed-on: https://dart-review.googlesource.com/18144
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2017-11-20 23:24:07 +00:00
Alexander Markov 22218e9b9e Revert "[Tests] Update _2 tests for Dart 2.0 fixed-size integers"
This reverts commit 92ebd8aefa.

Reason: various failures on buildbots.
Change-Id: I03e877e240fdb010d1288baebc124a3e364d1025
Reviewed-on: https://dart-review.googlesource.com/21565
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2017-11-17 00:52:17 +00:00
Alexander Markov 92ebd8aefa [Tests] Update _2 tests for Dart 2.0 fixed-size integers
Also, --limit-ints-to-64-bits is enabled when running tests in _2 test
suites.

Change-Id: I0b75e5e6e7af78adb29401d77ff55e735781ab73
Reviewed-on: https://dart-review.googlesource.com/20960
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2017-11-16 22:40:11 +00:00
Bob Nystrom ba2e4aff24 Some minor clean-up in test.dart.
- 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>
2017-10-19 19:05:58 +00:00
Jenny Messerly ef3ac59dd6 add a dartdevk command that compiles with the new front end
This ports a fairly large part of DDC's Analyzer-based code generator,
however most nodes are not supported yet.

The goal is to preserve all functionality of code that was ported,
except for deprecated features (e.g. mirrors, fuzzy arrows, libraryRoot).

Change-Id: I3b10d5773c7c10a740fa336720243b03c6b82529
Reviewed-on: https://dart-review.googlesource.com/10705
Reviewed-by: Vijay Menon <vsm@google.com>
2017-10-16 21:13:52 +00:00
Vijay Menon c1d45769c3 Inline constant values
Change-Id: Iee929bc64c152be989e6e7ba38132f806c33c7e0
Reviewed-on: https://dart-review.googlesource.com/11960
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-10-10 13:21:41 +00:00
Florian Loitsch 38bf70d7ac Use generic functions in zones.
Migrated from https://chromiumcodereview.appspot.com/2893893002/

Change-Id: I0bd6dc1438eb1e6762e7760a08b5a760b07d4b10
Reviewed-on: https://dart-review.googlesource.com/4942
Reviewed-by: Florian Loitsch <floitsch@google.com>
Commit-Queue: Florian Loitsch <floitsch@google.com>
2017-09-20 15:46:06 +00:00
Jennifer Messerly ab226fd40c optimize Object members in DDC
This should improve performance of these members in most cases:
- toString
- operator ==
- hashCode
- runtimeType
- noSuchMethod

The helpers for checking `null` and then dispatching to the method are now very small again. Also, because we can lookup symbolized names always, we can start taking advantage of this in our Map/Set implementations (for a follow up CL).

This also improves correctness of these helpers given JavaScript objects; we were previously falling back to calling a Dart method name like `.hashCode`, which is incorrect (except for `toString` where fallback is probably the correct behavior).

Change-Id: I39cbc80ca3e93ca7672652610b02bce899894da1
Reviewed-on: https://dart-review.googlesource.com/3427
Commit-Queue: Jennifer Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-09-06 08:12:11 +00:00
Janice Collins 51cc9689b3 Remove corelib and corelib_strong and migrate last two remaining tests.
This includes a migration of linked_hash_map_from_iterable_test and
stacktrace_current_test, which were migrated without changes.

BUG=
R=rnystrom@google.com, whesse@google.com

Review-Url: https://codereview.chromium.org/3004073002 .
2017-09-01 08:11:15 -07:00
Jennifer Messerly 353583fb10 fix how DDC finds its undefined constant
R=vsm@google.com

Review-Url: https://codereview.chromium.org/3009733002 .
2017-08-29 14:16:39 -07:00
Leaf Petersen 1b8f4ac1e7 Optimize DDC private runtime library files.
Eliminate numerous type checks not needed in strong mode.  Use
private nullability annotations instead of inline JS to mark known
non-null variables, and to make the compiler generate null checks
for null checked variables. Use nullability annotations and code refactoring to
remove redundant null checks and to move checks out of loops.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2994203002 .
2017-08-23 10:28:45 -07:00
Leaf Petersen f744dea741 Fix DDC presubmit status.
Update some status entries and fix a few miscellaneous issues.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/3002133002 .
2017-08-22 16:29:18 -07:00
Jennifer Messerly ed5ced82b1 Re-land "fix #30423, covariant parameter tearoff type should be Object"
This is the original CL plus status file fixes.

Disables auto-generated function_type tests that are not working for the Dart 2 runtime behavior, and filed #30462 to track. Also removes the separate status that was skipping these tests in DDC when $checked was unset. $checked is not a thing for Dart 2, and DDC test status should never depend on it.

This reverts commit 1b0b1a4913.

R=leafp@google.com

Review-Url: https://codereview.chromium.org/3001053002 .
2017-08-16 23:23:36 -07:00
Brian Wilkerson 1b0b1a4913 Gardening: Revert "fix #30423, covariant parameter tearoff type should be Object" (TBR)
Review-Url: https://codereview.chromium.org/2995973002 .
2017-08-15 17:02:49 -07:00
Jennifer Messerly d09868c02f fix #30423, covariant parameter tearoff type should be Object
some tests needed to be updated to reflect the informal spec semantics.

R=leafp@google.com, paulberry@google.com

Review-Url: https://codereview.chromium.org/2995813002 .
2017-08-15 14:27:06 -07:00
Jennifer Messerly 65e609548d fix #28988, remove throw on Dart1 incompatible is-checks for dartdevc
We've had this flag off in testing for quite a while. This should not affect user code because it's removing a throw.

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2996573002 .
2017-08-07 16:41:18 -07:00
Jennifer Messerly 89578574d0 mark call_test failing for DDC travis bot
TBR= @munificent
2017-08-04 18:27:33 -07:00
Jennifer Messerly 4cb87e6f1e Update language_tests.js
The test was fixed shortly after the fail marker was added
2017-08-04 17:48:31 -07:00
Jennifer Messerly fdf8c22e23 fix Travis bot runtime status
Review-Url: https://codereview.chromium.org/2995563002 .
2017-08-04 16:41:13 -07:00
Jennifer Messerly dcc5f0a873 fix ddc travis bot
Review-Url: https://codereview.chromium.org/2998483002 .
2017-08-04 14:08:27 -07:00
Jennifer Messerly 62303b6711 enable batch mode for dartdevc tests, also fix status so ddc bots pass
R=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2987393002 .
2017-08-03 14:39:45 -07:00
Jennifer Messerly 676cf46c44 Fix DDC buildbot so it is green
This is an attempt to get DDC's bot (https://travis-ci.org/dart-lang/sdk) green and restore test coverage, without affecting the Analyzer --strong buildbot. DDC and Analyzer can generally use the same status entries, as they are running nearly identical strong mode analysis. This fixes DDC's test builder to understand status codes in the same way analyzer does, as that was causing mismatch in statuses.

This does not fix the problem that we're skipping tests instead of recording the status. So there is a bit of test coverage lost, but it restores most of DDC's coverage. We can tackle the skips either in a follow up, or as we migrate tests from *_strong to *_2.

This is a partial revert of  "Revert status file changes from 58a6227198d2aa927df19f1b4862f8d0017d6da4" in commit 7be946cf3d.

Review-Url: https://codereview.chromium.org/2990213002 .
2017-08-02 19:57:56 -07:00
Jennifer Messerly 58a6227198 Use status files for DDC's presubmit script/travis bot
This only handles compile time errors & compiler crashes. It does not yet support status files at runtime, that is still hard coded in language_tests.js. Some preliminary support for runtime status is there, but it's not enabled yet.

This also updates *_strong.status to reflect current test behavior. It looks like those files have not been triaged in a while.

R=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2987093002 .
2017-08-01 16:36:17 -07:00
Vijay Menon 427b2890ce Fix ddc status
TBR=rnystrom@google.com,jmesserly@google.com

Review-Url: https://codereview.chromium.org/2993533002 .
2017-08-01 10:36:29 -07:00
Jennifer Messerly bba4b68d51 fix unsound cast failures in tests
the "whitelist" option to ignore cast failures is no longer used by most tests (I'm investigating what to do about package:unittest)

R=rnystrom@google.com, vsm@google.com

Review-Url: https://codereview.chromium.org/2989993002 .
2017-07-31 14:30:40 -07:00
Jennifer Messerly 925295d7af remove unittest as a test status, instead record this at test build time
this will help integrate with existing .status files

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2991073002 .
2017-07-31 14:25:11 -07:00
Jennifer Messerly d705cff08e fix #30290, assertion messages that contain yield
also fixes list_sort_test to work in strong mode.

R=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2985333002 .
2017-07-31 14:20:21 -07:00
Jennifer Messerly 951e9a5f88 fix DDC travis bot
It appears to have been broken by the language_2 test migration.

Review-Url: https://codereview.chromium.org/2991063002 .
2017-07-28 17:04:32 -07:00
Jennifer Messerly d207e8d5ca fix test status for DDC's travis bot
Review-Url: https://codereview.chromium.org/2991633004 .
2017-07-25 18:40:50 -07:00
Vijay Menon 598b98bd09 Fix DDC travis status
A few more passes, but perhaps one regression:

Chrome 59.0.3071 (Mac OS X 10.12.5)  corelib/date_time10_test FAILED
       Error: Expect.equals(at index 1: Expected <0100-01-01 00:00:00.000Z...>, Found: <0099-01-01 00:00:00.000Z...>) fails.
           at finish (test/browser/language_tests.js:807:59)

TBR=rnystrom@google.com,jmesserly@google.com

Review-Url: https://codereview.chromium.org/2983403003 .
2017-07-25 08:36:20 -07:00
Jennifer Messerly ff8511c83e fix override checking of mixins
it was rejecting some patterns that are sound, because the mixin member is overridden and thus not exposed.

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2988673003 .
2017-07-24 16:27:08 -07:00
Vijay Menon 19a19f4423 Fix getSetterType in presence of metadata
R=jmesserly@google.com, rnystrom@google.com

Review-Url: https://codereview.chromium.org/2986673002 .
2017-07-23 19:56:06 -07:00
Bob Nystrom 39a56dd020 Triage a couple of DDC tests. (#30232) 2017-07-21 17:01:39 -07:00
Bob Nystrom f334284967 Squashed commit of the following:
commit 4ed5f6f9d34510c3f0d6a3e5db9f8bac3290e464
Merge: 075833b fb613c0
Author: Bob Nystrom <rnystrom@google.com>
Date:   Fri Jul 21 16:08:11 2017 -0700

    Merge branch 'master' into ddc-tests-2

commit 075833bbdb33d2642f4df1ca501805f0a97a96e7
Author: Bob Nystrom <rnystrom@google.com>
Date:   Thu Jul 20 18:08:25 2017 -0700

    Include migrated "_2" test directories in DDC's codegen_test.

    This required a couple of other changes too:

    - I renamed "not_yet_strong_tests.dart" to "compile_error_tests.dart"
      because it includes some tests that have been made strong mode clean,
      but still generate static errors due to bugs in analyzer or ddc.
    - Reworded the test failure messages to take the above into account.
    - I cleaned up the failure reporting code a bit. There was some
      redundancy and unreachable code.
    - Triaged the "_2" tests to mark the ones that are failing at compile
      time or runtime appropriately. Good news! The big integers tests
      compile now! Of course, they don't actually *run* correctly on the
      web...
2017-07-21 16:12:23 -07:00
Jennifer Messerly 04f3c8835f implement Invocation.typeArguments in DDC
also fixes various bugs:
* setters now use the correct memberName symbol, fixes #30223
* object members work for callable classes, fixes #30213
* some test fixes to work in strong mode
* a few other small cleanups (e.g. obsolete `dart.list` is removed)

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2979353002 .
2017-07-21 15:51:16 -07:00
Jennifer Messerly 132067f685 ignore @proxy in strong mode
R=paulberry@google.com

Review-Url: https://codereview.chromium.org/2980383002 .
2017-07-19 18:17:01 -07:00
Vijay Menon 7365a24d98 Fix DDC status
TBR=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2981213002 .
2017-07-18 13:59:57 -07:00
Vijay Menon ab39958ac5 Dummy DDC implementation of MirrorSystem
It's a bit absurd that a bunch of tests are passing with this.

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2978223002 .
2017-07-18 13:00:23 -07:00
Jennifer Messerly cc167f5901 fix #30108, mock support for callable classes
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2975273002 .
2017-07-14 12:42:16 -07:00
Jennifer Messerly 418d11fbd6 fix #30094, assert should work with a function
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2971243003 .
2017-07-13 22:51:45 -07:00
Vijay Menon d952055a7e Support ClassMirror.newInstance on factory constructors
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2976133002 .
2017-07-13 13:07:37 -07:00
Vijay Menon 5b742853c7 Treat JS TypeError as Dart NSM
Fixes #30134

R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2979613002 .
2017-07-11 05:44:22 -07:00
Bob Nystrom 7b17a3dd01 Use "|" as the separator between module path and name. (#30106)
* Use "|" as the separator between module path and name.

":" is already a path character in Windows. This is why the
dartdevc tests aren't working on Windows. Because they try to do:

-sC:/some/path/blah.dart:blah

And it splits at the first ":". Oops.

* Switch to "=" for separating module path from name.

It looks a little funny when used with "--summary=", but it works fine
and is very unlikely to be used for anything else on any platform
(since we already use it as the separator between arg name and value).
2017-07-07 17:13:43 -07:00
Dan Rubel db02df3d3f update strong mode test for fasta scanner
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2973963002 .
2017-07-07 12:27:48 -04:00
Jennifer Messerly 90380dfdfa fix #27259, implement covariance checking for strong mode and DDC
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2954523002 .
2017-07-06 14:31:35 -07:00
Jennifer Messerly 79cace0848 fix #29028, understand promoted type parameters
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2969373002 .
2017-07-06 13:16:23 -07:00
Vijay Menon a67db4cd1e Remove failures
Weird - passing now.  Maybe some flakiness in our test framework?

TBR=jmesserly@google.com,rnystrom@google.com

Review-Url: https://codereview.chromium.org/2971193002 .
2017-07-06 10:06:54 -07:00