Commit Graph

299 Commits

Author SHA1 Message Date
Jenn Magder
b80b9bea38
Set DEFINES_MODULE for FlutterPluginRegistrant to generate modulemap (#40302) 2019-09-13 11:03:46 -07:00
Alexander Markov
cd84ceaf5e
Pass local engine in flutter_test_performance benchmark (#40193) 2019-09-12 09:34:43 -07:00
Todd Volkert
e10db6c838
Lower the iteration count on back_button_memory test (#40266)
It's still hitting global devicelab timeout
2019-09-11 11:28:39 -07:00
Jonah Williams
609a78fdca
Revert "build bundle with assemble (#37508)" (#40204) 2019-09-10 20:03:52 -07:00
Jonah Williams
a7aff56741
build bundle with assemble (#37508) 2019-09-10 19:28:38 -07:00
Todd Volkert
d02a3fe661
Lower the iterations on flutter_gallery__back_button_memory (#40102)
It was hitting the global devicelab 15 minute timeout.
2019-09-09 13:13:05 -07:00
Emmanuel Garcia
d230234d67
Revert Maven dependencies (#39747) (39157) (#39784) 2019-09-03 17:49:10 -07:00
Emmanuel Garcia
b63cb44105
Use new Maven artifacts from Gradle (#39157) 2019-09-02 10:35:17 -07:00
Tong Wu
a690b0b8e2
[devicelab] Reland adding smoke tests for Catalina/Android testing (#39361) 2019-08-27 17:47:32 -07:00
Tong Wu
2f58d08678
Revert "Add smoke tests for Catalina/Android testing. (#39300)" (#39347)
This reverts commit b38302b0c2.
2019-08-27 12:27:12 -07:00
Tong Wu
b38302b0c2
Add smoke tests for Catalina/Android testing. (#39300) 2019-08-27 11:22:54 -07:00
liyuqian
bbcfdea101
Add iOS backdrop filter benchmarks (#38814)
For https://github.com/flutter/flutter/issues/36064

That performance regression is iOS-only so we'd better get the
benchmarks running on iOS.
2019-08-20 10:39:29 -07:00
Tong Wu
b7bab3c2f0
Fix Catalina hot reload test by specifying the platform is iOS. (#38708) 2019-08-16 12:30:30 -07:00
Tong Wu
d067059399
Fix a smoke test. (#38579) 2019-08-14 15:29:50 -07:00
Tong Wu
066738324e
Add smoke tests to test every commit on a Catalina host. (#38567)
* Add a smoke test to test every commit on a Catalina host.
* Also add a hot-reload test.

Related issue: #36290.
2019-08-14 15:09:35 -07:00
jmagman
78cca6250a
Always install the ephemeral engine copy instead of fetching from CocoaPods specs (#37906) 2019-08-09 17:37:11 -07:00
jmagman
5ed3b418a1
Add COMPILER_INDEX_STORE_ENABLE=NO to macOS build and tests (#37806) 2019-08-07 18:02:06 -07:00
Emmanuel Garcia
c08a3c7a0a
Add metadata to indicate if the host app contains a Flutter module (#37731) 2019-08-06 22:38:09 -07:00
sjindel-google
0564f0a812
Tests for Engine ensuring debug-mode apps are attached on iOS. (#37043)
This PR contains the tests for flutter/engine#10186.
2019-08-06 20:08:09 +02:00
Emmanuel Garcia
40c5cc9708
Find the app bundle when the flavor contains underscores (#37457) 2019-08-02 16:02:46 -07:00
Jenn Magder
975156e91c
If xcode_backend.sh script fails or substitute variables are missing, fail the host Xcode build (#37449) 2019-08-02 13:01:25 -07:00
Emmanuel Garcia
bd02e4f573
Test that modules built as AAR contain the right assets and artifacts (#37206) 2019-07-30 13:38:06 -07:00
xster
dfad03952f
do not strip symbols when building profile (#37210) 2019-07-30 13:09:40 -07:00
Emmanuel Garcia
9f39cad4ed
Allow flavors and custom build types in host app (#36805)
Fixes these issues:
#30916
#34089
#36479
#29648
2019-07-29 09:26:41 -07:00
Jason Simmons
a3a350df1c
devicelab: replace the FLUTTER_ENGINE environment variable with the new local engine flags (#36969) 2019-07-26 10:06:56 -07:00
Emmanuel Garcia
a37921f107
Remove stdout related to settings_aar.gradle (#36949)
Fixes #36923
2019-07-25 08:52:08 -07:00
Emmanuel Garcia
c469b1fea9
Add annotation dependency to plugins (#36886)
Fixes #36817
2019-07-25 08:49:24 -07:00
Matt Carroll
a7387b127d
Added demo projects for splash screen support on Android. (#35728) 2019-07-24 13:44:13 -07:00
Emmanuel Garcia
242a4225a1
Flutter build aar (#36732)
`flutter build aar`

This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.

This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.

This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.

`flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.

In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:


repositories {
    maven {
        url "<path-to-flutter-module>build/host/outputs/repo"
    }
}

dependencies {
    implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
       transitive = true
    }
}
2019-07-23 09:27:42 -07:00
Emmanuel Garcia
c9b466f9e2
Revert "Add flutter build aar (#35217)" (#36731)
This reverts commit 11460b8378.
2019-07-22 22:07:59 -07:00
Emmanuel Garcia
11460b8378
Add flutter build aar (#35217)
`flutter build aar`

This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.

This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.

This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.

`flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.

In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:


repositories {
    maven {
        url "<path-to-flutter-module>build/host/outputs/repo"
    }
}

dependencies {
    implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
       transitive = true
    }
}
2019-07-22 20:46:01 -07:00
Ian Hickson
295530dcaf
Some minor cleanup in devicelab (#36571) 2019-07-22 14:13:33 -07:00
Todd Volkert
0f625196cc
Add plumbing for hello world startup test in devicelab (#36410)
This is the first step in getting esoteric devices wired
up to device lab to ensure that we can at least start Flutter
apps in profile mode on such devices.

https://github.com/flutter/flutter/issues/35838
2019-07-18 11:13:14 -07:00
xster
03220cacd1
Make sure add-to-app build bundle from outer xcodebuild/gradlew sends analytics (#36122) 2019-07-17 11:17:04 -07:00
xster
2d08fec368
Move buildable module test to a module test (#36102) 2019-07-15 18:31:44 -07:00
Jenn Magder
b5c1b61c73
Add platform_interaction_test_swift to devicelab (#35775) 2019-07-10 14:13:01 -07:00
Jonah Williams
91e3b2d671
add iOS build benchmarks (#35749) 2019-07-08 18:09:00 -07:00
liyuqian
34e18d38ce
ios (iPhone6) and iPhone XS tiles_scroll_perf tests (#35556)
For https://github.com/flutter/flutter/issues/31086.

Also test if our mac8 with iPhone XS is working
(https://github.com/flutter/flutter/issues/34590).
2019-07-08 14:13:33 -07:00
Alexander Aprelev
9f285aa9d9
Introduce image_list performance benchmark that runs on jit(debug) build. (#35424)
* Introduce image_list performance benchmark that runs on jit(debug) build.

We want to track performance of debug build because ongoing work on reducing the cost of spanwing new isolate will impact jit(debug) more than it will aot(release) configurations.

* Newlines and spaces
2019-07-08 08:23:06 -07:00
Jonah Williams
05b4c67550
add APK build time benchmarks (#35481) 2019-07-03 10:54:04 -07:00
Alexander Aprelev
3badcf51a4
Introduce image loading performance test. (#34823)
* Introduce image loading performance test.

This example reports how long it takes to load images over the network(locally spawned server).
2019-06-28 15:14:03 -07:00
Alexandre Ardhuin
919dcf53f3
enable lints prefer_spread_collections and prefer_inlined_adds (#35189) 2019-06-27 21:23:16 +02:00
Josh Burton
577c2fc48c Ensures flutter jar is added to all build types on plugin projects (#34573) 2019-06-25 10:40:55 -07:00
Jim Graham
f83fd9d467
Add test case for Flutter Issue #27677 as a benchmark. (#34870)
* Add test case for Flutter Issue #27677 as a benchmark.

See https://github.com/flutter/flutter/issues/27677

I got the following results running the test on a Moto E2 which
will help us determine how much we can gain by analyzing the
operations and eliminating unnecessary repaints based on
dirty rectangles/regions.

no blurs       - avg 216.0 fps over 3 samples
blur the group - avg  22.9 fps over 3 samples
blur each txt  - avg   3.4 fps over 3 samples

* Added the new benchmark to be tracked on the dashboard.
2019-06-24 20:53:22 -07:00
Emmanuel Garcia
c50fa3d2bd Re-land config lib dependencies for flavors (#34668) 2019-06-18 22:37:42 -07:00
Emmanuel Garcia
9dbc66979a
Revert "Config lib dependencies when using flavors (#34592)" (#34655)
This reverts commit 358b9bd381.
2019-06-18 15:30:59 -07:00
Emmanuel Garcia
358b9bd381
Config lib dependencies when using flavors (#34592) 2019-06-17 15:05:16 -07:00
Devon Carew
5f521eea22
add route information to Flutter.Navigation events (#34508)
* add route information to Flutter.Navigation events

* route can be null; re-work how we send route info to accomidate that
2019-06-15 20:40:34 -07:00
Dan Field
3d58400e76
Revert "Revert "redux of a change to use new engine APIs for Flutter.Frame events (#34365)" (#34514)" (#34530)
This reverts commit 8f75d53735.
2019-06-15 00:01:35 -07:00
Keerti Parthasarathy
8f75d53735
Revert "redux of a change to use new engine APIs for Flutter.Frame events (#34365)" (#34514)
This reverts commit ceb09b8bad.
2019-06-14 13:08:14 -07:00
Devon Carew
ceb09b8bad
redux of a change to use new engine APIs for Flutter.Frame events (#34365) 2019-06-14 11:16:54 -07:00
Emmanuel Garcia
21a532698f
Split gradle_plugin_test.dart (#34282)
Fixes timeout when running gradle_plugin_test
2019-06-11 16:24:03 -07:00
Emmanuel Garcia
8627ff433b
Allow multi-abi shared libraries in APKs and App bundles (#34123)
* Gradle generates ELF shared libraries instead of AOT snapshots.
* `flutter build apk/appbundle` supports multiple `--target-platform` and defaults to `android-arm` and `android-arm64`.
* `flutter build apk` now has a flag called `--split-per-abi`.
2019-06-10 13:16:09 -07:00
Jonah Williams
f8f7b89976
Revert "Generate ELF shared libraries and allow multi-abi libs in APKs and App bundles (#33696)" (#34121) 2019-06-08 18:43:25 -07:00
Emmanuel Garcia
966b15b4a4
Generate ELF shared libraries and allow multi-abi libs in APKs and App bundles (#33696)
* Gradle generates ELF shared libraries instead of AOT snapshots.
* `flutter build apk/appbundle` supports multiple `--target-platform` and defaults to `android-arm` and `android-arm64`.
*  `flutter build apk` now has a flag called `--split-per-abi`.
2019-06-08 18:02:32 -07:00
Jonah Williams
50ea6f32d3
add benchmarks to track web size (#33892) 2019-06-05 12:40:21 -07:00
Kaushik Iska
92bfc99132
Added a benchmark for ImageCache (#33814)
* Add an image cache benchmark for a monochrome image
2019-06-04 12:32:52 -07:00
Jonah Williams
83986acbdb
Add a real-er web restart, doctor, workflow (#33786) 2019-06-03 23:19:42 -07:00
Chris Bracken
98ea501995
Revert "Add real-er restart for web using webkit inspection protocol (#33629)" (#33703)
Revert "fix devicelab manfiest (#33698)"

This reverts commit 5a6a00dc54.
This reverts commit 0d79f0fc79.
2019-05-31 21:53:30 -07:00
Jonah Williams
5a6a00dc54
Add real-er restart for web using webkit inspection protocol (#33629) 2019-05-31 17:37:01 -07:00
Chris Bracken
4d9923201b
Correct typos (#33322)
Corects a bnuch of typeos throuhgout teh Fluter codebsae.

Made use of the `misspell` tool:
https://github.com/client9/misspell
2019-05-24 19:12:45 -07:00
Michael Thomsen
7ae3caf309
Rename flutter packages to flutter pub (#33041) 2019-05-21 16:38:58 +02:00
Emmanuel Garcia
90f38907d7
Support ARM 32 and 64 bits in app bundles 2019-05-20 13:09:20 -07:00
Ben Konyi
484f6e754a
Fixed flutter_attach_test not respecting authentication codes (#31321) 2019-04-19 13:55:34 -07:00
Ben Konyi
1459b1e91f
Fixed failing tests caused by introduction of authentication codes (#31315) 2019-04-19 11:45:53 -07:00
Ben Konyi
3764cb8515
Added support for authentication codes for the VM service. (#30857)
* Added support for authentication codes for the VM service.

Previously, a valid web socket connection would use the following URI:

`ws://127.0.0.1/ws`

Now, by default, the VM service requires a connection to be made with a
URI similar to the following:

`ws://127.0.0.1:8181/Ug_U0QVsqFs=/ws`

where `Ug_U0QVsqFs` is an authentication code generated and shared by
the
service.

This behavior can be disabled with the `--disable-service-auth-codes`
flag.
2019-04-18 21:01:50 -07:00
liyuqian
b0937a1e89
Fix the warning test by checking stderr (#30997)
Previously, I used the Android emulator for testing and everything
seemed to work fine with stdout (if I remember correctly). But our
devicelab uses real Android devices and the warnings are routed to
stderr. Hence change stdout to stderr in the test.
2019-04-15 10:19:36 -07:00
liyuqian
eb30745faf
Print warning if flutter drive is run in debug (#30747)
## Description

Print actionable warnings if `flutter drive` (where most of our performance benchmarks come from) is run in debug mode and it tries to gather benchmarks using `traceAction`.

## Related Issues

https://github.com/flutter/flutter/issues/30625

## Tests

I added the following tests:
* drive_perf_debug_warning devicelab test
2019-04-09 18:55:42 -07:00
Jonah Williams
953a947130
add coverage benchmark (#30222) 2019-03-29 17:00:19 -07:00
Jonah Williams
1bfa2f2311
Intercept errors thrown by synchronous Completers in image resolution. (#30139) 2019-03-29 10:05:18 -07:00
Dan Field
ecfdd7e1ea
Detect and cleanup leaky processes (#29196)
* Detect and cleanup leaky processes
* Add flaky tests for detecting leaked processes
2019-03-22 14:32:36 -07:00
Dan Field
2a644f301e
Run non-perf sensitive tests on Cirrus (#27971)
* Run non-perf sensisitive tests on Cirrus
2019-03-10 07:52:44 -07:00
Jonah Williams
d4a441a0d9
Add integration to all targets (#29020) 2019-03-08 12:25:35 -08:00
Alexandre Ardhuin
387f885481
Add missing trailing commas (#28673)
* add trailing commas on list/map/parameters

* add trailing commas on Invocation with nb of arg>1

* add commas for widget containing widgets

* add trailing commas if instantiation contains trailing comma

* revert bad change
2019-03-01 08:17:55 +01:00
liyuqian
19a6a6f431
Reland "Shader warm up (#27660)" (#28537)
This reverts commit adc8e159a5.

This should be safe to land once https://github.com/flutter/flutter/pull/28530 gets merged

Merge on yellow doc test because the doc test is actually green.
2019-02-27 09:33:08 -08:00
liyuqian
adc8e159a5
Revert "Shader warm up (#27660)" (#28376)
This reverts commit a44f174efc.

Reason: start_up tests become flaky.

See https://github.com/flutter/flutter/issues/28374

TBR: xster

Merge on red to fix the tree
2019-02-22 17:32:37 -08:00
liyuqian
a44f174efc
Shader warm up (#27660)
This patch adds a default shader warm up process which moves shader compilation from the animation time to the startup time. This also provides an extension for `runApp` so developers can customize the warm up process.

This should reduce our worst_frame_rasterizer_time_millis from ~100ms to ~20-30ms for both flutter_gallery and complex_layout benchmarks. Besides, this should also have a significant improvement on 90th and 99th percentile time (50%-100% speedup in some cases, but I haven't tested them thoroughly; I'll let our device lab collect the data afterwards).

The tradeoff the is the startup time (time to first frame). Our `flutter run --profile --trace-startup` seems to be a little noisy and I see about 100ms-200ms increase in that measurement for complex_layout and flutter_gallery. Note that this only happens on the first run after install or data wipe. Later the Skia persistent cache will remove the overhead.

This also adds a cubic_bezier benchmark to test the custom shader warm up process.

This should fix https://github.com/flutter/flutter/issues/813 (either by `defaultShaderWarmUp`, or a `customShaderWarmUp`).
2019-02-22 15:37:02 -08:00
Jonah Williams
67cf21577f
Add basic codegen app to be used for integration testing and benchmarks (#27257) 2019-02-14 23:17:16 -08:00
Greg Spencer
da27f62337
Make a kReleaseMode constant that is public. (#27502)
Before this, we had several places where an isReleaseMode was defined, all with the same definition. This just makes it more broadly visible to allow our users to use it, as well as creating debug and profile versions, and adding a device lab test for it.

Since this is a const value, this makes it possible for a developer to easily mark blocks that can be removed at AOT compile time.
2019-02-06 14:37:17 -08:00
liyuqian
de321b9cc1
Add scroll performance test for flutter_gallery (#27513)
Previously, we had a scroll_perf drive test but we were not exercising
it on our device lab. This helps us tracking issues like:
https://github.com/flutter/flutter/issues/24782
2019-02-04 22:54:11 -08:00
Todd Volkert
db7e4fbbc4 Fix test expectations per change made in #26736 (#26809) 2019-01-19 11:32:48 -08:00
Ian Hickson
31a9626c48
[O] Removing all timeouts (mark II) (#26736)
These are essentially self-inflicted race conditions. Instead of timeouts we're going to try a more verbose logging mechanism that points out when things are taking a long time.
2019-01-19 00:31:05 -08:00
Ian Hickson
78f4878fe1
Cleanup device lab test and remove a timeout. (#24581) 2019-01-13 20:44:59 -08:00
Ian Hickson
8426910a19
Revert "[O] Remove many timeouts. (#23531)" (#25646)
This reverts commit 76f70810e4.
2018-12-20 18:46:36 -08:00
Ian Hickson
76f70810e4
[O] Remove many timeouts. (#23531)
* Remove many timeouts.

These are essentially self-inflicted race conditions. Instead of timeouts we're going to try a more verbose logging mechanism that points out when things are taking a long time.

* Get the attach tests to pass.

* Apply review comments from Todd

* More review comment fixes

* Put back the extended timeouts here now that I know why we have them...
2018-12-20 17:10:40 -08:00
liyuqian
8ad4cbe06e
Add cull opacity perf test to device lab (#25381)
For https://github.com/flutter/flutter/issues/24712

This test verifies that https://github.com/flutter/engine/pull/6923 will speedup the average rasterize time of this test from ~150ms to ~10ms

Please see non-auto-generated files in 37b21d9fb4
2018-12-17 22:01:07 -08:00
Jonah Williams
d01f574a4a
Revert "Use stderr instead of stdout to contain errors in flutter attach test" (#25380) 2018-12-14 10:15:31 -08:00
David Shuckerow
2b819dd257
Use stderr instead of stdout to contain errors in flutter attach test (#25305) 2018-12-13 17:50:41 -04:00
Jonah Williams
f30029bae1
Run flutter tests through mini test engine when run directly (flutter run -t test_file) (#24930) 2018-12-12 12:51:16 -08:00
Ian Hickson
bcac1bd5e2
Handle the case where there are no missing dartdocs too... (#24801) 2018-11-27 14:44:53 -08:00
Ian Hickson
e0f642ecbb
Update dartdocs devicelab test to handle current analyzer output (#24582) 2018-11-27 11:29:32 -08:00
Dan Field
0155ee7157
fix devicelab (#24404) 2018-11-15 17:55:01 -08:00
Dan Field
091b73ab6f
fix variable check in xcode_backend.sh (#24368)
* fix test in xcode_backend.sh

* -n

* fix devicelab test

* uncomment good code, check for \"\"
2018-11-14 18:54:51 -08:00
Dan Field
2729385758
Make host app test actually test host app (#24131)
* Make host app test actually test host app

* mark updated test as flaky
2018-11-09 19:09:56 -08:00
Jonah Williams
d52f315c35
Add new benchmark to track cost of dependencies to a User (#23856) 2018-11-02 13:38:54 -07:00
Devon Carew
e30f9a9447
add explicit const keywords (#23652) 2018-10-29 22:39:40 -07:00
Michael Klimushyn
ce434022b5
Fix "E2E test setting and using isolate names (#23388)" (#23438)
Updates gradle.

This reverts commit d07c09c9a1.
2018-10-24 11:44:45 -07:00
Michael Klimushyn
e70f19523b
Revert "E2E test setting and using isolate names (#23388)" (#23416)
This reverts commit 93573de216.

Fails in the devicelab:

```
run:stderr: A problem occurred evaluating project ':app'.
run:stderr: > Could not resolve all files for configuration 'classpath'.2018-10-23T10:46:46.335864:
run:stderr:    > Could not find aapt2-proto.jar (com.android.tools.build:aapt2-proto:0.3.1).2018-10-23T10:46:46.335960:
run:stderr:      Searched in the following locations:2018-10-23T10:46:46.336048:
```
2018-10-23 11:28:12 -07:00
Michael Klimushyn
93573de216
E2E test setting and using isolate names (#23388)
Adds an integration devicelab test that runs an Android app with two
custom named isolates. Tests that the isolate names are present and that
it's possible to attach to just one of the isolates.

Fixes flutter/flutter#22009
2018-10-23 09:30:00 -07:00
Michael Klimushyn
43c99404c5
Test flutter create --offline (#23278)
Verifies that flutter tools isn't rebuilt. Doesn't truly check that the
created output is runnable.
2018-10-22 16:39:28 -07:00