From 074346f26a658c86c2ce3efa60c8320d7261ac1c Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Mon, 14 Dec 2020 16:35:13 -0800 Subject: [PATCH 1/3] Added golden test to make sure that spawn engines work. --- .../Scenarios.xcodeproj/project.pbxproj | 10 +++++ .../xcshareddata/xcschemes/Scenarios.xcscheme | 12 ++++++ .../ios/Scenarios/Scenarios/AppDelegate.m | 26 ++++++++++-- .../Scenarios/FlutterEngine+ScenariosTest.h | 2 + .../ScenariosUITests/SpawnEngineTest.h | 13 ++++++ .../ScenariosUITests/SpawnEngineTest.m | 38 ++++++++++++++++++ ..._spawn_engine_works_iPhone 8_simulator.png | Bin 0 -> 23265 bytes testing/scenario_app/lib/src/scenarios.dart | 1 + 8 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 testing/scenario_app/ios/Scenarios/ScenariosUITests/SpawnEngineTest.h create mode 100644 testing/scenario_app/ios/Scenarios/ScenariosUITests/SpawnEngineTest.m create mode 100644 testing/scenario_app/ios/Scenarios/ScenariosUITests/golden_spawn_engine_works_iPhone 8_simulator.png diff --git a/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/project.pbxproj b/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/project.pbxproj index b86187a454fc4..70a8e0c23ccdb 100644 --- a/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/project.pbxproj +++ b/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/project.pbxproj @@ -23,6 +23,8 @@ 0DB7820022EA2C9D00E9B371 /* App.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 246B4E4122E3B5F700073EBF /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 0DB7820122EA2CA500E9B371 /* App.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 246B4E4122E3B5F700073EBF /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 0DB7820222EA493B00E9B371 /* FlutterViewControllerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DB781FC22EA2C0300E9B371 /* FlutterViewControllerTest.m */; }; + 0DDEBC89258830B40065D0E8 /* SpawnEngineTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DDEBC88258830B40065D0E8 /* SpawnEngineTest.m */; }; + 0DDEBC8B258839760065D0E8 /* golden_spawn_engine_works_iPhone 8_simulator.png in Resources */ = {isa = PBXBuildFile; fileRef = 0DDEBC8A258839760065D0E8 /* golden_spawn_engine_works_iPhone 8_simulator.png */; }; 242F37A222E636DE001E83D4 /* Flutter.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 246B4E4522E3B61000073EBF /* Flutter.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 242F37A322E636DE001E83D4 /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 246B4E4122E3B5F700073EBF /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 244EA6D0230DBE8900B2D26E /* golden_platform_view_D21AP.png in Resources */ = {isa = PBXBuildFile; fileRef = 244EA6CF230DBE8900B2D26E /* golden_platform_view_D21AP.png */; }; @@ -124,6 +126,9 @@ 0D8470A2240F0B1F0030B565 /* StatusBarTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusBarTest.h; sourceTree = ""; }; 0D8470A3240F0B1F0030B565 /* StatusBarTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatusBarTest.m; sourceTree = ""; }; 0DB781FC22EA2C0300E9B371 /* FlutterViewControllerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FlutterViewControllerTest.m; sourceTree = ""; }; + 0DDEBC87258830B40065D0E8 /* SpawnEngineTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpawnEngineTest.h; sourceTree = ""; }; + 0DDEBC88258830B40065D0E8 /* SpawnEngineTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SpawnEngineTest.m; sourceTree = ""; }; + 0DDEBC8A258839760065D0E8 /* golden_spawn_engine_works_iPhone 8_simulator.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "golden_spawn_engine_works_iPhone 8_simulator.png"; sourceTree = ""; }; 244EA6CF230DBE8900B2D26E /* golden_platform_view_D21AP.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = golden_platform_view_D21AP.png; sourceTree = ""; }; 246A6610252E693A00EAB0F3 /* RenderingSelectionTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RenderingSelectionTest.m; sourceTree = ""; }; 246B4E4122E3B5F700073EBF /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = App.framework; sourceTree = ""; }; @@ -252,6 +257,7 @@ 248D76ED22E388380012F0C1 /* ScenariosUITests */ = { isa = PBXGroup; children = ( + 0DDEBC8A258839760065D0E8 /* golden_spawn_engine_works_iPhone 8_simulator.png */, 4F06F1B124731F66000AF246 /* LocalizationInitializationTest.m */, 6402EBD024147BDA00987DCB /* UnobstructedPlatformViewTests.m */, 0AC83145256E534E00DAE6BE /* golden_bogus_font_text_iPhone 8_simulator.png */, @@ -284,6 +290,8 @@ 0A42BFB32447E179007E212E /* TextSemanticsFocusTest.m */, 0A42BFB52447E19F007E212E /* TextSemanticsFocusTest.h */, 246A6610252E693A00EAB0F3 /* RenderingSelectionTest.m */, + 0DDEBC87258830B40065D0E8 /* SpawnEngineTest.h */, + 0DDEBC88258830B40065D0E8 /* SpawnEngineTest.m */, ); path = ScenariosUITests; sourceTree = ""; @@ -433,6 +441,7 @@ 59A97FDA236B984300B4C066 /* golden_platform_view_multiple_background_foreground_iPhone SE_simulator.png in Resources */, 3DEF491923C3BE6500184216 /* golden_platform_view_rotate_iPhone 8_simulator.png in Resources */, 24D47D1B230C79840069DD5E /* golden_platform_view_D211AP.png in Resources */, + 0DDEBC8B258839760065D0E8 /* golden_spawn_engine_works_iPhone 8_simulator.png in Resources */, 244EA6D0230DBE8900B2D26E /* golden_platform_view_D21AP.png in Resources */, 3DEF491A23C3BE6500184216 /* golden_platform_view_transform_iPhone 8_simulator.png in Resources */, ); @@ -480,6 +489,7 @@ 246A6611252E693A00EAB0F3 /* RenderingSelectionTest.m in Sources */, 4F06F1B32473296E000AF246 /* LocalizationInitializationTest.m in Sources */, 0A42BFB42447E179007E212E /* TextSemanticsFocusTest.m in Sources */, + 0DDEBC89258830B40065D0E8 /* SpawnEngineTest.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/xcshareddata/xcschemes/Scenarios.xcscheme b/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/xcshareddata/xcschemes/Scenarios.xcscheme index f1894291285d1..60e7353ffe46b 100644 --- a/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/xcshareddata/xcschemes/Scenarios.xcscheme +++ b/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/xcshareddata/xcschemes/Scenarios.xcscheme @@ -28,6 +28,18 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES" systemAttachmentLifetime = "keepNever"> + + + + + + + +NS_ASSUME_NONNULL_BEGIN + +@interface SpawnEngineTest : XCTestCase +@property(nonatomic, strong) XCUIApplication* application; +@end + +NS_ASSUME_NONNULL_END diff --git a/testing/scenario_app/ios/Scenarios/ScenariosUITests/SpawnEngineTest.m b/testing/scenario_app/ios/Scenarios/ScenariosUITests/SpawnEngineTest.m new file mode 100644 index 0000000000000..968d55d776e90 --- /dev/null +++ b/testing/scenario_app/ios/Scenarios/ScenariosUITests/SpawnEngineTest.m @@ -0,0 +1,38 @@ +// Copyright 2020 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "SpawnEngineTest.h" +#import "GoldenImage.h" + +@implementation SpawnEngineTest + +- (void)setUp { + [super setUp]; + self.continueAfterFailure = NO; + + self.application = [[XCUIApplication alloc] init]; + self.application.launchArguments = @[ @"--spawn-engine-works", @"--enable-software-rendering" ]; + [self.application launch]; +} + +- (void)testSpawnEngineWorks { + NSString* prefix = @"golden_spawn_engine_works_"; + GoldenImage* golden = [[GoldenImage alloc] initWithGoldenNamePrefix:prefix]; + if (!golden.image) { + XCTFail(@"unable to find golden image for: %@", prefix); + } + XCUIScreenshot* screenshot = [[XCUIScreen mainScreen] screenshot]; + if (![golden compareGoldenToImage:screenshot.image]) { + XCTAttachment* screenshotAttachment = [XCTAttachment attachmentWithImage:screenshot.image]; + screenshotAttachment.name = [golden.goldenName stringByAppendingString:@"_actual"]; + screenshotAttachment.lifetime = XCTAttachmentLifetimeKeepAlways; + [self addAttachment:screenshotAttachment]; + + XCTFail(@"Goldens do not match. Follow the steps in the " + @"README to update golden named %@ if needed.", + golden.goldenName); + } +} + +@end diff --git a/testing/scenario_app/ios/Scenarios/ScenariosUITests/golden_spawn_engine_works_iPhone 8_simulator.png b/testing/scenario_app/ios/Scenarios/ScenariosUITests/golden_spawn_engine_works_iPhone 8_simulator.png new file mode 100644 index 0000000000000000000000000000000000000000..ee124e0089ca808e5f7611516011b00288ef1992 GIT binary patch literal 23265 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 KQmSJ8&;J3Kb*vHq literal 0 HcmV?d00001 diff --git a/testing/scenario_app/lib/src/scenarios.dart b/testing/scenario_app/lib/src/scenarios.dart index ea3ff807d49da..8f8413e0b5e05 100644 --- a/testing/scenario_app/lib/src/scenarios.dart +++ b/testing/scenario_app/lib/src/scenarios.dart @@ -46,6 +46,7 @@ Map _scenarios = { 'initial_route_reply': () => InitialRouteReply(PlatformDispatcher.instance), 'platform_view_with_continuous_texture': () => PlatformViewWithContinuousTexture(PlatformDispatcher.instance, 'Platform View', id: _viewId++), 'bogus_font_text': () => BogusFontText(PlatformDispatcher.instance), + 'spawn_engine_works' : () => BogusFontText(PlatformDispatcher.instance), }; Map _currentScenarioParams = {}; From 54b2745eefdd5b351012cd4932d2bbe782bff69b Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Wed, 16 Dec 2020 15:02:50 -0800 Subject: [PATCH 2/3] fixed spawn platform view controller --- shell/platform/darwin/ios/framework/Source/FlutterEngine.mm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm b/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm index 857ad0e486a4d..ec9b0a34fe8bb 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm @@ -942,10 +942,10 @@ - (FlutterEngine*)spawnWithEntrypoint:(/*nullable*/ NSString*)entrypoint SetEntryPoint(&settings, entrypoint, libraryURI); flutter::Shell::CreateCallback on_create_platform_view = - [self](flutter::Shell& shell) { - [self recreatePlatformViewController]; + [result](flutter::Shell& shell) { + [result recreatePlatformViewController]; return std::make_unique( - shell, self->_renderingApi, self->_platformViewsController, shell.GetTaskRunners()); + shell, result->_renderingApi, result->_platformViewsController, shell.GetTaskRunners()); }; flutter::Shell::CreateCallback on_create_rasterizer = From 788f879350fc48199415d0eecf708e33c3d2ebf5 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Wed, 16 Dec 2020 15:09:16 -0800 Subject: [PATCH 3/3] stoped keeping the spawner alive --- .../xcshareddata/xcschemes/Scenarios.xcscheme | 12 ------------ .../ios/Scenarios/Scenarios/AppDelegate.m | 13 ++++--------- testing/scenario_app/run_ios_tests.sh | 2 +- 3 files changed, 5 insertions(+), 22 deletions(-) diff --git a/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/xcshareddata/xcschemes/Scenarios.xcscheme b/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/xcshareddata/xcschemes/Scenarios.xcscheme index 60e7353ffe46b..f1894291285d1 100644 --- a/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/xcshareddata/xcschemes/Scenarios.xcscheme +++ b/testing/scenario_app/ios/Scenarios/Scenarios.xcodeproj/xcshareddata/xcschemes/Scenarios.xcscheme @@ -28,18 +28,6 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES" systemAttachmentLifetime = "keepNever"> - - - - - -