Commit Graph

158 Commits

Author SHA1 Message Date
Vyacheslav Egorov
71b2cfb2a0
Turn Dart 2 mode by default. (#15565) 2018-03-16 20:29:38 +01:00
Keerti Parthasarathy
50190d2810
Do not encode the server port in the test file (#15535)
* Do not encode the server port in the test file

* revert formatting

* add back ignore

* add a default value to serverPort

* address comments
2018-03-15 10:56:10 -07:00
Jason Simmons
466d15433f
Use Dart 2 camel case constants (#15360) 2018-03-12 11:06:32 -07:00
Alexander Aprelev
ded538a1bb
Update dependencies with forced upgrade. (#15344)
* Update dependencies with forced upgrade.

Now that https://github.com/flutter/flutter/issues/15261 is fixed, do the update with upgrade.

* Update test package use following upgrade

* Replace addOption(allowMultiple) with addMultiOption
2018-03-09 10:38:54 -08:00
Jacob Richman
046c6d5f7f
Track which Widget objects were created by the local project. (#15041)
Make flutter test support the --track-widget-creation flag.
Add widget creation location tests. Tests are skipped when
--track-widget-creation flag is not passed.
2018-03-09 08:09:49 -08:00
Alexander Aprelev
2890e18bcb
Return copied kernel filename for flutter test execution. (#15298)
* Return copied kernel filename.

This fixes 'flutter test --preview-dart-2' crash.
2018-03-08 16:02:21 -08:00
Alexander Aprelev
1087279a4d
Create frontend compiler in flutter test lazily. (#15251)
* Create frontend compiler in `flutter test` lazily.

This is needed to avoid unwarranted runtime dependencies on Artifacts,
for example when in non-preview-dart-2 mode.
Refactor the compilation-related code into _Compiler class.
2018-03-08 11:21:40 -08:00
Alexander Aprelev
c01cad3491
Fix flutter test --preview-dart-2 following last dart roll. (#15233)
* Fix `flutter test --preview-dart-2`  following last dart roll.

Incremental compiler maintains single incremental dill file, so for every test compilation that dill file has to be copied away for execution.

* Fix lints
2018-03-07 06:27:58 -08:00
Todd Volkert
d0cbbd5394
Fail if precompiled test entry point is specified, but more than one test suite is run (#15208) 2018-03-06 21:28:52 -08:00
Keerti Parthasarathy
0263394028
Adding back commit #e0f6e62 with fix to test failures (#15212)
* Add to Artifacts, and add optional arguments to entry points for flut… (#15185)

Add to Artifacts, and add optional arguments to entry points for flutter run and test to allow for wiring up the same with preview-dart-2 internally

* Changing packages uri here is not necessary
2018-03-06 14:41:50 -08:00
Keerti Parthasarathy
7066cd7b88
Revert "Add to Artifacts, and add optional arguments to entry points for flut… (#15185)" (#15210)
This reverts commit e0f6e626e9.
2018-03-06 11:55:39 -08:00
Keerti Parthasarathy
e0f6e626e9 Add to Artifacts, and add optional arguments to entry points for flut… (#15185)
Add to Artifacts, and add optional arguments to entry points for flutter run and test to allow for wiring up the same with preview-dart-2 internally
2018-03-06 10:03:42 -08:00
Alexander Aprelev
d3797628ca
Run flutter tests in preview-dart-2 mode on travis flutter builds. (#14728)
* Run flutter tests in preview-dart-2 mode on travis flutter builds.

* Run dart2 tests on osx. Run dart tests in dart2.

* Fix name camelCase

* Default options to empty array, rather than null

* Troubleshoot failures

* More logging

* Troubleshoot: run single test

* Troubleshoot: run 15 tests

* Troubleshoot: run 15 tests with fix

* Try limit concurrency to 1

* Limit concurrency for preview-dart-2 tests to 4

* Move dart2 tests to allow_failures section

* Reinstate tests_dart_2 shard

* Raise concurrency to 8

* Reuse compiler across multiple test runs

* Allow to switch entry points when recompiling.

Actually use single compiler to incrementally recompile all tests executed by 'flutter test'.

* Remove leftover commented code

* Fix comment

* Lints
2018-03-01 09:04:26 -08:00
Alexander Aprelev
9a9aed191d
When doing flutter test use batch compiler and link platform in. (#14983)
This is to fix #14931.
2018-02-28 12:54:30 -08:00
asiva
11105bed4d - Roll engine to version 9867298f86a7ccd5f1c07a83796ee21567d37fb0
- Remove redundant strong flag as it is the default for preview-dart-2
now
2018-02-15 17:45:36 -08:00
Vyacheslav Egorov
3932a22cdf
When running tests with --preview-dart-2 check for compilation errors. (#14724)
If compiler failed to produce Kernel binary then compile(...) returns
null to the caller. If we don't check for null we end up trying to
run file called "null" which causes a very confusing crash of the
flutter_tester.
2018-02-15 16:57:52 +01:00
asiva
83e0ca24fd Fuse --strong into --preview-dart-2 option. 2018-02-08 09:18:52 -08:00
Alexandre Ardhuin
841d5d7bd5
prefer_const_declarations on local variables (#14358) 2018-02-01 07:51:26 +01:00
Vyacheslav Egorov
340d9e00cf
Fix various strong mode issues. (#14284) 2018-01-31 08:21:32 +01:00
Vyacheslav Egorov
ae72cea001
Fix an incorrect variable name in Dart 2 flutter test code (#14283)
The code was attempting to delete temporaryDirectory while it should have been deleting tempBundleDirectory
2018-01-25 19:33:24 -08:00
Ian Hickson
97b9579e55
Random cleanup across the tree (#14221) 2018-01-25 09:46:48 -08:00
Alexander Aprelev
7c2fe34fbb
Run 'flutter test --preview-dart-2' in strong mode (#14188)
* Default to strong for 'flutter test --preview-dart-2' mode

* Remove empty line

* Dont init to null

* Break up line to make it more readable

* Add missing type annotation
2018-01-22 10:26:01 -08:00
Alexander Aprelev
e910ce7ece
Fix local import paths. (#14183)
This is in attempt to resolve build failure on Windows.
2018-01-19 07:05:28 -08:00
Alexander Aprelev
a50b465c99
Add --preview-dart-2 to 'flutter test' (#14135) 2018-01-19 06:17:28 -08:00
Mehmet Fidanboylu
951b85a12b
Increase coverage collection timeout to 2 minutes. Leafy is hitting the limits of the previous timeout of 30 seconds for tests that touch a lot of code in the app. (#13527) 2017-12-12 15:54:18 -08:00
Ben Konyi
08c2e0771f Removed special cases for '.exe'. 2017-12-11 11:13:16 -08:00
Greg Spencer
2a26f29c9d
Switch to concurrency of two, to see if that is a good balance. (#13003) 2017-11-13 15:26:42 -08:00
Greg Spencer
e2b9f8906d
Turn on concurrency for coverage shard so that it runs in parallel to fix Travis timeouts. (#13001) 2017-11-13 13:20:38 -08:00
Alexandre Ardhuin
15601fe55c
Enable lint prefer asserts in initializer lists (#12903)
* enable lint prefer_asserts_in_initializer_lists

* enable --assert-initializer
2017-11-08 22:59:49 +01:00
Ian Hickson
d402d40aa6
Up a timeout to reduce the number of flakes. (#12837) 2017-11-02 12:19:43 -07:00
Ian Hickson
e1174eb0f2
TextPainter RTL (#12791) 2017-10-31 10:39:34 -07:00
Jason Simmons
1affb4237a
Remove the diagnostic server from flutter_tools (#12771) 2017-10-30 15:53:04 -07:00
Alexandre Ardhuin
1fce14a31c enable lint prefer_single_quotes (#12665) 2017-10-22 18:11:36 +02:00
xster
e28765a997 Delinting future awaits round 3 (#10791)
* round 3

* partially address comments

* merge

* review notes

* review

* review

* review
2017-09-20 17:24:43 -07:00
Phil Quitslund
05562d5734 Quiet debug test runner output when in machine mode. (#11228)
* Quiet debug test runner output when in machine mode.

See: https://github.com/flutter/flutter-intellij/issues/1176

* json => machine
2017-07-14 11:20:50 -07:00
Brian Slesinsky
6841ab22be Add --name and --plain-name to 'flutter test' (#11020)
This adds a way to run only a subset of the tests.
(The new flags do the same thing as 'pub run test'.)
2017-06-29 17:26:19 -07:00
Ian Hickson
9adb4a78a6 Deep linking: automatically push the route hiearchy on load. (#10894)
The main purpose of this PR is to make it so that when you set the
initial route and it's a hierarchical route (e.g. `/a/b/c`), it
implies multiple pushes, one for each step of the route (so in that
case, `/`, `/a`, `/a/b`, and `/a/b/c`, in that order). If any of those
routes don't exist, it falls back to '/'.

As part of doing that, I:

 * Changed the default for MaterialApp.initialRoute to honor the
   actual initial route.

 * Added a MaterialApp.onUnknownRoute for handling bad routes.

 * Added a feature to flutter_driver that allows the host test script
   and the device test app to communicate.

 * Added a test to make sure `flutter drive --route` works.
   (Hopefully that will also prove `flutter run --route` works, though
   this isn't testing the `flutter` tool's side of that. My main
   concern is over whether the engine side works.)

 * Fixed `flutter drive` to output the right target file name.

 * Changed how the stocks app represents its data, so that we can
   show a page for a stock before we know if it exists.

 * Made it possible to show a stock page that doesn't exist. It shows
   a progress indicator if we're loading the data, or else shows a
   message saying it doesn't exist.

 * Changed the pathing structure of routes in stocks to work more
   sanely.

 * Made search in the stocks app actually work (before it only worked
   if we happened to accidentally trigger a rebuild). Added a test.

 * Replaced some custom code in the stocks app with a BackButton.

 * Added a "color" feature to BackButton to support the stocks use case.

 * Spaced out the ErrorWidget text a bit more.

 * Added `RouteSettings.copyWith`, which I ended up not using.

 * Improved the error messages around routing.

While I was in some files I made a few formatting fixes, fixed some
code health issues, and also removed `flaky: true` from some devicelab
tests that have been stable for a while. Also added some documentation
here and there.
2017-06-23 14:58:29 -07:00
Brian Slesinsky
f01e9418fc change --machine flag for flutter test to report test progress as JSON (#10848)
(The Flutter plugin will use this to update the UI with test progress.)
2017-06-20 14:40:42 -07:00
Brian Slesinsky
d1feb1ad5f Coverage: fix installHook API (#10747)
- remove unused collector parameter
- clarify a comment
- inline _currentPackageTestDir
2017-06-15 14:39:46 -07:00
Brian Slesinsky
e329356f0f Oops, fix code coverage (#10672)
And add comments explaining why.
2017-06-13 14:42:09 -07:00
Brian Slesinsky
3528cd6f2d flutter test: add --machine flag (#10520)
Currently this just prints the observatory URL as a JSON event.
Refactored the code to make this fit in.
2017-06-13 13:26:32 -07:00
Todd Volkert
2841497344 Support IPv6 in coverage collection (#9841)
Builds on engine fixes to #9813

Also fixes #7366
2017-05-05 11:09:55 -07:00
Todd Volkert
ba4bba7498 Support IPv6 in test platform (#9795) 2017-05-03 22:50:24 -07:00
Todd Volkert
3b5b46b07c Revert "Switch test platform to use IPv6 (#9775)" (#9779)
This reverts commit 9f5fa31ebd.
2017-05-03 14:46:28 -07:00
Todd Volkert
9f5fa31ebd Switch test platform to use IPv6 (#9775) 2017-05-03 14:33:38 -07:00
Todd Volkert
dbc447b19a Only complete the web socket future once (#9176) 2017-04-04 10:15:48 -07:00
Alexandre Ardhuin
2de61a0853 add @required when there's an assert not null (#9124)
* add @required when there's an assert not null

* address review comments
2017-03-31 18:34:13 +02:00
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
Jacob Richman
53fc96da9e Small Flutter strong mode cleanup fixes. (#7825)
* Small Flutter strong mode cleanup fixes.

These are cases where strong mode down cast composite errors
generally indicated cases that would performance or correctness
issues if Flutter code was run in a strong mode VM.

* Fix Command API so that it is always in terms of Map<String,String>.

* Fix typedef
2017-02-06 08:55:09 -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
Chris Bracken
88536859b4 Correct style in finalizeCoverage parameter list (#5213) 2016-08-03 19:54:33 -07:00
Chris Bracken
a1fa7c94e3 Support passing a custom coverage formatter to finalizeCoverage() (#5208) 2016-08-03 16:58:47 -07:00
Adam Barth
41d6303570 Improve test coverage for material.dart (#4776)
Previously these widget had zero test coverage. Also, improve the
coverage tooling Mac.
2016-06-28 08:48:48 -07:00
Adam Barth
7b99ecff35 Use relative paths in lcov.info (#4722)
Using relative paths makes it easier to share lcov.info files across machines.
2016-06-23 15:29:54 -07:00
Adam Barth
ed2c24ba2b Add coveralls support to Travis (#4690)
This patch causes us to upload a coverage report to coveralls.io.
2016-06-22 14:47:41 -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
Devon Carew
d7fbf5302d use status(), error(), and trace() for logging
rename to printTrace(), printStatus(), and printError()
2016-01-28 12:44:17 -08:00
Ian Hickson
5494323db9 Move us to HashSet to avoid the overhead of tracking the order 2016-01-23 18:13:13 -08:00
Adam Barth
f41869f639 Update package:test to the latest version 2015-11-30 18:41:10 -08:00
Adam Barth
cada8b3faa Import path.dart as path rather than p
Fixes #311
2015-11-17 22:44:54 -08:00
Adam Barth
da0a12c611 Rename sky_tools to flutter_tools 2015-11-10 13:20:35 -08:00
Hixie
bd69e2c405 Run 'pub get' the first time the tests are run 2015-11-09 13:44:04 -08:00
Adam Barth
fc8cdf4daf Add a command for running unit tests 2015-11-04 23:43:15 -08:00