Commit Graph

40 Commits

Author SHA1 Message Date
Phil Quitslund
ab6df3af40 Bump to Dart SDK 1.23.0-dev.10 (#9051)
* Bump to Dart SDK 1.23.0-dev.10

* allows us to understand flutter usage via telemetry
* brings in `@immutable`

Fixes: #9042

* completer fix

* Update to platform 1.1.1.
2017-03-28 14:53:03 -07:00
Alexandre Ardhuin
2166ea5b7f apply partially the upcoming unnecessary_lambdas (#8810) 2017-03-15 23:09:58 +01:00
Chris Bracken
7a09316cd0 Declare locals final where not reassigned (flutter_tools) (#8570) 2017-03-03 17:50:46 -08:00
Ian Hickson
03ae2cf366 Catch crashes during or before coverage collection. (#8207)
This assumes a fix to https://github.com/dart-lang/test/issues/542

The timeout added in this patch is a workaround for https://github.com/dart-lang/coverage/issues/165
2017-02-15 18:50:19 -08:00
Michael Goderbauer
5e54fd54d9 Ban package:path from Flutter Tools (#8119) 2017-02-13 17:45:50 -08:00
Ian Hickson
65ca387075 Make the Ahem font available to tests. (#7725) 2017-01-28 15:55:47 -08:00
Todd Volkert
9ba607862e Update to package:process v1.0.1 (#7607) 2017-01-24 10:09:29 -08:00
Ian Hickson
94cac1a69c flutter test --start-paused (#7584)
Make debugging tests in a debugger easier.

Fixes https://github.com/flutter/flutter/issues/163
2017-01-23 11:31:59 -08:00
Ian Hickson
63aa1397a3 Increase the strictness of our requiring explicit types (#7585)
...now that we have generic methods, their types need to be specified too.
2017-01-23 01:04:31 -08:00
Ian Hickson
2bb800a2e4 Explain the -15 magic number. (#7571) 2017-01-20 16:44:26 -08:00
Ian Hickson
47de51557a Provide a feature to set the ports when running tests. (#7558)
This brings the feature back, since removing it broke one of our more
exotic sets of customers.
2017-01-19 17:57:47 -08:00
Ian Hickson
3f1d6d3bca Remove randomness from port assignment during coverage collection. (#7548)
Also, defer to test package for throttling (this will require a test
package update as well).

Also, add a lot more instrumentation to --verbose mode for tests, and
fix minor trivial things here and there, and add error handling in
more places.

Also, refactor how coverage works to be simpler and not use statics.
2017-01-19 15:31:11 -08:00
Todd Volkert
4e8628c146 Fix sky_shell test flakiness caused by CPU throttling (#7543)
When a machine is heavily loaded, it can severely delay the time it
takes for the OS to start a process once it's asked to do so. Our
5 second timeout that we were giving the test process to connect
to the test harness seemed like plenty of time, were it not for the
fact that the test process itself was not being started in time when
CPU throttling was in effect.

This change updates the test timeout to begin counting only once the
test process has been started. We keep the original timeout in play
in the event that the test process *never* starts up for some reason,
but we up that timeout value to 5 minutes.
2017-01-19 13:03:31 -08:00
Todd Volkert
4f9e5c8dc7 Fix race condition in coverage collection (#7455)
Previously, it was possible for the test harness to bail
and the test runner to complete before the platform plugin
triggered the collection of coverage data. This fixes the
race condition such that the pending coverage collection
task is recorded immediately after starting the process.
2017-01-12 13:58:19 -08:00
Adam Barth
b9f49a40f7 Handle missing flutter_test dependency cleanly (#7421)
We now produce a more reasonable error message when we're missing the
flutter_test dependency in a test. Also, remove the flutter_tools stack traces
when the engine dies.

Fixes #6187
2017-01-10 11:31:24 -08:00
Jason Simmons
fb8179bfed Remove a misfiring assert in the test framework plugin (#7397)
Fixes https://github.com/flutter/flutter/issues/7351

When a test runs to completion, the test harness closes the stream side of the
StreamChannel, causing the sink side to be closed as well.  So by the time we
receive a test result of completed/harnessBailed, the controller sink has been
closed.
2017-01-09 16:52:00 -08:00
Todd Volkert
016b5ab0cc Force all dart:io usage to go through 'base/io.dart' (#7390)
This ensures that accidental usages of dart:io's
file API don't creep in over time.
2017-01-09 08:37:00 -08:00
Todd Volkert
8bb270342e Update flutter_tools to use package:file throughout (#7385)
This removes direct file access from within flutter_tools
in favor of using `package:file` via a `FileSystem` that's
accessed via the `ApplicationContext`.

This lays the groundwork for us to be able to easily swap
out the underlying file system when running Flutter tools,
which will be used to provide a record/replay file system,
analogous to what we have for process invocations.
2017-01-06 16:51:44 -08:00
Ian Hickson
971ca4b835 Check exit code for test subprocess (#7269) 2016-12-15 13:43:45 -08:00
Ian Hickson
502592e56c Revert "Use test fonts in the test shell and remove custom font installation on Travis." (#7265) 2016-12-15 11:01:39 -08:00
Chinmay Garde
3bc6a1bf6f Use test fonts in the test shell and remove custom font installation on Travis. (#7250) 2016-12-13 12:18:02 -08:00
Chinmay Garde
4efb428254 Unconditionally enable Dart profiling on for all devices and platforms. (#7159)
It is not enabled by default in the VM because applications not launched via the tools may try to connect with the debugger. This causes the debugger and the IDE to hang on Mac.
2016-12-05 13:48:41 -08:00
Todd Volkert
60b19b2035 Create abstraction layer for dart:io's Process commands (#7100)
With this change, they're run via instance methods on an object
obtained through the context. This will allow us to substitute
that object in tests with replay/record versions to allow us to
mock out the os-layer in tests.
2016-11-30 08:42:42 -08:00
Todd Volkert
d9a0de3747 Use InternetAddress instead of String (#6922) 2016-11-17 23:07:20 -08:00
Chinmay Garde
ffe5700948 Shell instances launched by the tools from the desktop are always non-interactive. (#5778)
In that they never create a window with an OpenGL context and the works.
2016-09-09 16:31:49 -07:00
Chris Bracken
bfbbef108d Prevent hangs due to bad import/export directives (#5538)
If the input test script contains a bad import, sky_shell will fail to
execute main(), in which case a connection to /runner is never
established and the _ServerInfo.socket never completes.

This change works around this by issuing a request on /shutdown when
sky_shell exits.
2016-08-22 15:30:10 -07:00
Chris Bracken
49e172e54c Limit font fallback to those in the cache dir (#5270)
This reduces dependence on machine-specific font configuration, making
tests a bit more reproducible.
2016-08-05 15:58:15 -07:00
Chris Bracken
0ba0127c1a Support a user-specified observatory port in CoverageCollector (#5217) 2016-08-04 10:43:04 -07:00
Adam Barth
b094fa6dd3 Add support for --coverage to flutter test (#4679)
We need https://github.com/dart-lang/coverage/issues/100 to be fixed before
this will be useful.

Fixes #2342
2016-06-22 12:22:01 -07:00
Adam Barth
c02c553867 Fix types for flutter test in checked mode (#4488)
Fixes #4059
2016-06-09 07:27:23 -07:00
Devon Carew
3ba17136b7 add a restart command to the daemon protocol (#4385)
* refactor the --resident run option into a separate file

* update daemon to run --resident apps

* re-plumbing daemon start

* send app logs

* update tests

* review changes

* fix test runner

* remove PackageMap.createGlobalInstance; rely on the ctor

* review comments
2016-06-07 12:13:35 -07:00
Devon Carew
1ae0a76cf9 warn when flutter doesn't match the pubspec version (#4109) 2016-05-23 12:23:05 -07:00
Chinmay Garde
376cb2eb38 Attach standard streams of the child sky_shell process so that logs from the shell show up. (#4024) 2016-05-18 16:58:46 -07:00
Ian Hickson
3252701753 Make it possible to run tests live on a device (#3936)
This makes it possible to substitute 'flutter run' for 'flutter test'
and actually watch a test run on a device.

For any test that depends on flutter_test:

1. Remove any import of 'package:test/test.dart'.

2. Replace `testWidgets('...', (WidgetTester tester) {`
      with `testWidgets('...', (WidgetTester tester) async {`

3. Add an "await" in front of calls to any of the following:
    * tap()
    * tapAt()
    * fling()
    * flingFrom()
    * scroll()
    * scrollAt()
    * pump()
    * pumpWidget()

4. Replace any calls to `tester.flushMicrotasks()` with calls to
   `await tester.idle()`.

There's a guarding API that you can use, if you have particularly
complicated tests, to get better error messages. Search for
TestAsyncUtils.
2016-05-16 12:53:13 -07:00
Devon Carew
c9010c91f6 fix analysis errors (#3677)
* fix analysis errors

* review comments; fix test

* re-add an export for debugPrint
2016-05-03 09:09:00 -07:00
Adam Barth
2e062dfab4 Use --packages rather than --package-root
The .packages file is replacing the packages directory of symlinks.
2016-03-28 15:01:25 -07:00
Hixie
797e27edd3 Add @override annotations to flutter framework 2016-03-14 14:02:26 -07:00
Ian Hickson
d745e20853 Even more types 2016-03-14 09:41:54 -07:00
Ian Hickson
1b9cd52081 Enable ALL THE LINTS
Well, all the easy ones, anyway.

For some reason `// ignore:` isn't working for me so I've disabled
lints that need that. Also disabled those that require a ton of work
(which I'm doing, but not in this PR, to keep it reviewable).

This adds:
- avoid_init_to_null
- library_names
- package_api_docs
- package_names
- package_prefixed_library_names
- prefer_is_not_empty
- sort_constructors_first
- sort_unnamed_constructors_first
- unnecessary_getters_setters
2016-03-10 23:15:31 -08:00
Adam Barth
96ec5316b8 Switch from hack_load_vm_file_hook to PlatformPlugin
This patch switches us from using our previous hacking approach to integrating
with package:test to using the new PlatformPlugin interface.
2016-03-03 11:23:36 -08:00