Greg Spencer 35640af9fa
Convert format script to Dart (#20572)
This converts the ci/format.sh script to a Dart script that uses process_runner and isolates to multi-process the clang-format, diffs, and grepping needed to do the formatting changes.

It also will (by default) only check the formatting of changed files.

The user can optionally check all files (--all-files) or do only some types of checks with --check. --verbose prints the versions of the tools used for Clang format and Java format.

Specifying --fix will cause any formatting errors that would have been detected to be fixed.
2020-08-18 13:25:30 -07:00
..

Scenario App

This folder contains e2e integration tests for the engine in conjunction with a fake dart:ui framework running in JIT or AOT.

It intentionally has no dependencies on the Flutter framework or tooling, such that it should be buildable as a presubmit or postsubmit to the engine even in the face of changes to Dart or dart:ui that require upstream changes in the Flutter tooling.

Adding a New Scenario

Create a new subclass of Scenario and add it to the map in main.dart. For an example, see animated_color_square.dart, which draws a continuously animating colored square that bounces off the sides of the viewport.

Then set the scenario from the Android or iOS app by calling "set_scenario" on platform channel.

Running for iOS

./build_and_run_ios_tests.sh

iOS Platform View Tests

For PlatformView tests on iOS, you'll also have to edit the dictionaries in AppDelegate.m and PlatformViewGoldenTestManager.m so that the correct golden image can be found. Also, you'll have to add a GoldenPlatformViewTests in PlatformViewUITests.m.

Generating Golden Images on iOS

Screenshots are saved as XCTAttachment's. If you look at the output from running the tests you'll find a path in the form: /Users/$USER/Library/Developer/Xcode/DerivedData/Scenarios-$HASH. Inside that directory you'll find ./Build/Products/Debug-iphonesimulator/ScenariosUITests-Runner.app/PlugIns/ScenariosUITests.xctest/ which is where all the images that were compared against golden reside.

Running for Android

The test is run on a x86 emulator. To run the test locally, you must create an emulator running API level 28, and set the following screen settings in the avd's config.ini file:

hw.lcd.density = 480
hw.lcd.height = 1920
hw.lcd.width = 1080
lcd.depth = 16

This file is typically located in your $HOME/.android/avd/<avd> folder.

Once the emulator is up, you can run the test by running:

./build_and_run_android_tests.sh

Generating Golden Images on Android

In the android directory, run:

./gradlew app:recordDebugAndroidTestScreenshotTest

The screenshots are recorded into android/reports/screenshots.

Verifying Golden Images on Android

In the android directory, run:

./gradlew app:verifyDebugAndroidTestScreenshotTest

Changing dart:ui code

If you change the dart:ui interface, remember to point the sky_engine and sky_services clauses to your local engine's output path before compiling.