Skip to content

Commit

Permalink
continue->next in Ruby script (#104296)
Browse files Browse the repository at this point in the history
  • Loading branch information
jmagman committed May 24, 2022
1 parent 8dc5121 commit c5d046c
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 23 deletions.
2 changes: 1 addition & 1 deletion packages/flutter_tools/bin/podhelper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def flutter_additional_ios_build_settings(target)
# Profile can't be derived from the CocoaPods build configuration. Use release framework (for linking only).
configuration_engine_dir = build_configuration.type == :debug ? debug_framework_dir : release_framework_dir
Dir.new(configuration_engine_dir).each_child do |xcframework_file|
continue if xcframework_file.start_with?(".") # Hidden file, possibly on external disk.
next if xcframework_file.start_with?(".") # Hidden file, possibly on external disk.
if xcframework_file.end_with?("-simulator") # ios-arm64_x86_64-simulator
build_configuration.build_settings['FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]'] = "\"#{configuration_engine_dir}/#{xcframework_file}\" $(inherited)"
elsif xcframework_file.start_with?("ios-") # ios-arm64
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'package:file_testing/file_testing.dart';
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart';
Expand All @@ -15,11 +13,12 @@ import '../src/darwin_common.dart';

void main() {
group('iOS app validation', () {
String flutterRoot;
Directory pluginRoot;
String projectRoot;
String flutterBin;
Directory tempDir;
late String flutterRoot;
late Directory pluginRoot;
late String projectRoot;
late String flutterBin;
late Directory tempDir;
late File hiddenFile;

setUpAll(() {
flutterRoot = getFlutterRoot();
Expand All @@ -30,6 +29,29 @@ void main() {
'flutter',
);

final Directory xcframeworkArtifact = fileSystem.directory(
fileSystem.path.join(
flutterRoot,
'bin',
'cache',
'artifacts',
'engine',
'ios',
'Flutter.xcframework',
),
);

// Pre-cache iOS engine Flutter.xcframework artifacts.
processManager.runSync(<String>[
flutterBin,
...getLocalEngineArguments(),
'precache',
'--ios',
], workingDirectory: tempDir.path);

// Pretend the SDK was on an external drive with stray "._" files in the xcframework
hiddenFile = xcframeworkArtifact.childFile('._Info.plist')..createSync();

// Test a plugin example app to allow plugins validation.
processManager.runSync(<String>[
flutterBin,
Expand All @@ -47,22 +69,24 @@ void main() {
});

tearDownAll(() {
tryToDelete(hiddenFile);
tryToDelete(tempDir);
});

for (final BuildMode buildMode in <BuildMode>[BuildMode.debug, BuildMode.release]) {
group('build in ${buildMode.name} mode', () {
Directory buildPath;
Directory outputApp;
Directory frameworkDirectory;
Directory outputFlutterFramework;
File outputFlutterFrameworkBinary;
Directory outputAppFramework;
File outputAppFrameworkBinary;
File outputPluginFrameworkBinary;
late Directory buildPath;
late Directory outputApp;
late Directory frameworkDirectory;
late Directory outputFlutterFramework;
late File outputFlutterFrameworkBinary;
late Directory outputAppFramework;
late File outputAppFrameworkBinary;
late File outputPluginFrameworkBinary;
late ProcessResult buildResult;

setUpAll(() {
processManager.runSync(<String>[
buildResult = processManager.runSync(<String>[
flutterBin,
...getLocalEngineArguments(),
'build',
Expand Down Expand Up @@ -94,6 +118,11 @@ void main() {
});

testWithoutContext('flutter build ios builds a valid app', () {
printOnFailure('Output of flutter build ios:');
printOnFailure(buildResult.stdout.toString());
printOnFailure(buildResult.stderr.toString());
expect(buildResult.exitCode, 0);

expect(outputPluginFrameworkBinary, exists);

expect(outputAppFrameworkBinary, exists);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'package:file_testing/file_testing.dart';
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart';
Expand Down
8 changes: 4 additions & 4 deletions packages/flutter_tools/test/src/common.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,19 @@ import 'package:test_api/test_api.dart' hide test; // ignore: deprecated_member_

export 'package:test_api/test_api.dart' hide test, isInstanceOf; // ignore: deprecated_member_use

void tryToDelete(Directory directory) {
void tryToDelete(FileSystemEntity fileEntity) {
// This should not be necessary, but it turns out that
// on Windows it's common for deletions to fail due to
// bogus (we think) "access denied" errors.
try {
if (directory.existsSync()) {
directory.deleteSync(recursive: true);
if (fileEntity.existsSync()) {
fileEntity.deleteSync(recursive: true);
}
} on FileSystemException catch (error) {
// We print this so that it's visible in the logs, to get an idea of how
// common this problem is, and if any patterns are ever noticed by anyone.
// ignore: avoid_print
print('Failed to delete ${directory.path}: $error');
print('Failed to delete ${fileEntity.path}: $error');
}
}

Expand Down

0 comments on commit c5d046c

Please sign in to comment.