From cc4e07954ddcabe8bdbd9aa6a5dcba0058b5db82 Mon Sep 17 00:00:00 2001 From: "auto-submit[bot]" <98614782+auto-submit[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 22:44:19 +0000 Subject: [PATCH] Reverts "Improve build output for all platforms" (#143125) Reverts flutter/flutter#128236 Initiated by: vashworth Reason for reverting: Causing `Mac_pixel_7pro run_release_test` and `Mac_arm64_android run_release_test` to fail: https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_pixel_7pro%20run_release_test/547/overview https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_arm64_android%20run_release_test/10516/overview Original PR Author: guidezpl Reviewed By: {christopherfujino, loic-sharma} This change reverts the following previous change: Original Description: Improves the build output: 1. Gives confirmation that the build succeeded, in green 1. Gives the path to the built executable, without a trailing period to make it slightly easier to cmd/ctrl+open 1. Gives the size of the built executable (when the built executable is self contained) ### `apk`, `appbundle` image image ### `macos`, `ios`, `ipa` Build executables are self-contained and use a newly introduced `OperatingSystemUtils.getDirectorySize`. image image image ### `windows`, `linux`, and `web` Build executables aren't self-contained, and folder size can sometimes overestimate distribution size, therefore their size isn't mentioned (see discussion below). image image image ### Size reporting When applicable, the printed size matches the OS reported size. - macOS image - Windows image - Linux image ## Related issues Part of #120127 Fixes https://github.com/flutter/flutter/issues/121401 --- .../flutter_tools/lib/src/android/gradle.dart | 13 ++++---- packages/flutter_tools/lib/src/base/os.dart | 12 -------- .../flutter_tools/lib/src/base/utils.dart | 13 ++------ .../lib/src/commands/build_ios.dart | 27 ++--------------- .../lib/src/isolated/resident_web_runner.dart | 2 +- .../lib/src/linux/build_linux.dart | 22 ++------------ .../lib/src/macos/build_macos.dart | 18 ----------- .../lib/src/resident_runner.dart | 2 +- .../flutter_tools/lib/src/web/compile.dart | 9 ------ .../lib/src/windows/build_windows.dart | 21 ++++++------- .../hermetic/build_ios_test.dart | 30 ------------------- .../hermetic/build_ipa_test.dart | 10 +++---- .../hermetic/build_linux_test.dart | 29 ------------------ .../hermetic/build_macos_test.dart | 27 +---------------- .../hermetic/build_web_test.dart | 2 -- .../hermetic/build_windows_test.dart | 22 -------------- .../test/general.shard/base/os_test.dart | 22 +------------- .../test/general.shard/utils_test.dart | 11 ------- packages/flutter_tools/test/src/fakes.dart | 3 -- 19 files changed, 34 insertions(+), 261 deletions(-) diff --git a/packages/flutter_tools/lib/src/android/gradle.dart b/packages/flutter_tools/lib/src/android/gradle.dart index 352f0e325f..1b60f4eb19 100644 --- a/packages/flutter_tools/lib/src/android/gradle.dart +++ b/packages/flutter_tools/lib/src/android/gradle.dart @@ -546,15 +546,14 @@ class AndroidGradleBuilder implements AndroidBuilder { final File bundleFile = findBundleFile(project, buildInfo, _logger, _usage, _analytics); final String appSize = (buildInfo.mode == BuildMode.debug) ? '' // Don't display the size when building a debug variant. - : ' (${getSizeAsPlatformMB(bundleFile.lengthSync())})'; + : ' (${getSizeAsMB(bundleFile.lengthSync())})'; if (buildInfo.codeSizeDirectory != null) { await _performCodeSizeAnalysis('aab', bundleFile, androidBuildInfo); } _logger.printStatus( - '${_logger.terminal.successMark} ' - 'Built ${_fileSystem.path.relative(bundleFile.path)}$appSize', + '${_logger.terminal.successMark} Built ${_fileSystem.path.relative(bundleFile.path)}$appSize.', color: TerminalColor.green, ); return; @@ -584,10 +583,9 @@ class AndroidGradleBuilder implements AndroidBuilder { final String appSize = (buildInfo.mode == BuildMode.debug) ? '' // Don't display the size when building a debug variant. - : ' (${getSizeAsPlatformMB(apkFile.lengthSync())})'; + : ' (${getSizeAsMB(apkFile.lengthSync())})'; _logger.printStatus( - '${_logger.terminal.successMark} ' - 'Built ${_fileSystem.path.relative(apkFile.path)}$appSize', + '${_logger.terminal.successMark} Built ${_fileSystem.path.relative(apkFile.path)}$appSize.', color: TerminalColor.green, ); @@ -779,8 +777,7 @@ class AndroidGradleBuilder implements AndroidBuilder { ); } _logger.printStatus( - '${_logger.terminal.successMark} ' - 'Built ${_fileSystem.path.relative(repoDirectory.path)}', + '${_logger.terminal.successMark} Built ${_fileSystem.path.relative(repoDirectory.path)}.', color: TerminalColor.green, ); } diff --git a/packages/flutter_tools/lib/src/base/os.dart b/packages/flutter_tools/lib/src/base/os.dart index c2ecba17d7..eb9847cf13 100644 --- a/packages/flutter_tools/lib/src/base/os.dart +++ b/packages/flutter_tools/lib/src/base/os.dart @@ -105,18 +105,6 @@ abstract class OperatingSystemUtils { /// Return the File representing a new pipe. File makePipe(String path); - /// Return a directory's total size in bytes. - int? getDirectorySize(Directory directory) { - int? size; - for (final FileSystemEntity entity in directory.listSync(recursive: true, followLinks: false)) { - if (entity is File) { - size ??= 0; - size += entity.lengthSync(); - } - } - return size; - } - void unzip(File file, Directory targetDirectory); void unpack(File gzippedTarFile, Directory targetDirectory); diff --git a/packages/flutter_tools/lib/src/base/utils.dart b/packages/flutter_tools/lib/src/base/utils.dart index bbc3572516..46d0ef38fa 100644 --- a/packages/flutter_tools/lib/src/base/utils.dart +++ b/packages/flutter_tools/lib/src/base/utils.dart @@ -7,11 +7,9 @@ import 'dart:math' as math; import 'package:file/file.dart'; import 'package:intl/intl.dart'; -import 'package:meta/meta.dart'; import 'package:path/path.dart' as path; // flutter_ignore: package_path_import import '../convert.dart'; -import 'platform.dart'; /// A path jointer for URL paths. final path.Context urlContext = path.url; @@ -90,14 +88,9 @@ String getElapsedAsMilliseconds(Duration duration) { return '${kMillisecondsFormat.format(duration.inMilliseconds)}ms'; } -/// Return a platform-appropriate [String] representing the size of the given number of bytes. -String getSizeAsPlatformMB(int bytesLength, { - @visibleForTesting Platform platform = const LocalPlatform() - }) { - // Because Windows displays 'MB' but actually reports MiB, we calculate MiB - // accordingly on Windows. - final int bytesInPlatformMB = platform.isWindows ? 1024 * 1024 : 1000 * 1000; - return '${(bytesLength / bytesInPlatformMB).toStringAsFixed(1)}MB'; +/// Return a String - with units - for the size in MB of the given number of bytes. +String getSizeAsMB(int bytesLength) { + return '${(bytesLength / (1024 * 1024)).toStringAsFixed(1)}MB'; } /// A class to maintain a list of items, fire events when items are added or diff --git a/packages/flutter_tools/lib/src/commands/build_ios.dart b/packages/flutter_tools/lib/src/commands/build_ios.dart index acf34b7c09..241413f5ef 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios.dart @@ -5,16 +5,15 @@ import 'dart:typed_data'; import 'package:crypto/crypto.dart'; +import 'package:file/file.dart'; import 'package:meta/meta.dart'; import 'package:unified_analytics/unified_analytics.dart'; import '../base/analyze_size.dart'; import '../base/common.dart'; import '../base/error_handling_io.dart'; -import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/process.dart'; -import '../base/terminal.dart'; import '../base/utils.dart'; import '../build_info.dart'; import '../convert.dart'; @@ -524,17 +523,7 @@ class BuildIOSArchiveCommand extends _BuildIOSSubCommand { return FlutterCommandResult.success(); } - final Directory outputDirectory = globals.fs.directory(absoluteOutputPath); - final int? directorySize = globals.os.getDirectorySize(outputDirectory); - final String appSize = (buildInfo.mode == BuildMode.debug || directorySize == null) - ? '' // Don't display the size when building a debug variant. - : ' (${getSizeAsPlatformMB(directorySize)})'; - - globals.printStatus( - '${globals.terminal.successMark} ' - 'Built IPA to ${globals.fs.path.relative(outputDirectory.path)}$appSize', - color: TerminalColor.green, - ); + globals.printStatus('Built IPA to $absoluteOutputPath.'); if (isAppStoreUpload) { globals.printStatus('To upload to the App Store either:'); @@ -748,17 +737,7 @@ abstract class _BuildIOSSubCommand extends BuildSubCommand { } if (result.output != null) { - final Directory outputDirectory = globals.fs.directory(result.output); - final int? directorySize = globals.os.getDirectorySize(outputDirectory); - final String appSize = (buildInfo.mode == BuildMode.debug || directorySize == null) - ? '' // Don't display the size when building a debug variant. - : ' (${getSizeAsPlatformMB(directorySize)})'; - - globals.printStatus( - '${globals.terminal.successMark} ' - 'Built ${globals.fs.path.relative(outputDirectory.path)}$appSize', - color: TerminalColor.green, - ); + globals.printStatus('Built ${result.output}.'); // When an app is successfully built, record to analytics whether Impeller // is enabled or disabled. diff --git a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart index 81573b98a0..7a62b7815e 100644 --- a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart +++ b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart @@ -576,7 +576,7 @@ Please provide a valid TCP port (an integer between 0 and 65535, inclusive). shaderCompiler: device!.developmentShaderCompiler, ); devFSStatus.stop(); - _logger.printTrace('Synced ${getSizeAsPlatformMB(report.syncedBytes)}.'); + _logger.printTrace('Synced ${getSizeAsMB(report.syncedBytes)}.'); return report; } diff --git a/packages/flutter_tools/lib/src/linux/build_linux.dart b/packages/flutter_tools/lib/src/linux/build_linux.dart index 1a5e886a7b..808130a24f 100644 --- a/packages/flutter_tools/lib/src/linux/build_linux.dart +++ b/packages/flutter_tools/lib/src/linux/build_linux.dart @@ -10,7 +10,6 @@ import '../base/common.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/project_migrator.dart'; -import '../base/terminal.dart'; import '../base/utils.dart'; import '../build_info.dart'; import '../cache.dart'; @@ -74,31 +73,16 @@ Future buildLinux( final Status status = logger.startProgress( 'Building Linux application...', ); - final String buildModeName = buildInfo.mode.cliName; - final Directory platformBuildDirectory = globals.fs.directory(getLinuxBuildDirectory(targetPlatform)); - final Directory buildDirectory = platformBuildDirectory.childDirectory(buildModeName); try { + final String buildModeName = buildInfo.mode.cliName; + final Directory buildDirectory = + globals.fs.directory(getLinuxBuildDirectory(targetPlatform)).childDirectory(buildModeName); await _runCmake(buildModeName, linuxProject.cmakeFile.parent, buildDirectory, needCrossBuild, targetPlatform, targetSysroot); await _runBuild(buildDirectory); } finally { status.cancel(); } - - final String? binaryName = getCmakeExecutableName(linuxProject); - final File binaryFile = buildDirectory - .childDirectory('bundle') - .childFile('$binaryName'); - final FileSystemEntity buildOutput = binaryFile.existsSync() ? binaryFile : binaryFile.parent; - // We don't print a size because the output directory can contain - // optional files not needed by the user and because the binary is not - // self-contained. - globals.printStatus( - '${globals.terminal.successMark} ' - 'Built ${globals.fs.path.relative(buildOutput.path)}', - color: TerminalColor.green, - ); - if (buildInfo.codeSizeDirectory != null && sizeAnalyzer != null) { final String arch = getNameForTargetPlatform(targetPlatform); final File codeSizeFile = globals.fs.directory(buildInfo.codeSizeDirectory) diff --git a/packages/flutter_tools/lib/src/macos/build_macos.dart b/packages/flutter_tools/lib/src/macos/build_macos.dart index 88cfd375bf..146477b63b 100644 --- a/packages/flutter_tools/lib/src/macos/build_macos.dart +++ b/packages/flutter_tools/lib/src/macos/build_macos.dart @@ -9,8 +9,6 @@ import '../base/common.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/project_migrator.dart'; -import '../base/terminal.dart'; -import '../base/utils.dart'; import '../build_info.dart'; import '../convert.dart'; import '../globals.dart' as globals; @@ -20,7 +18,6 @@ import '../migrations/xcode_project_object_version_migration.dart'; import '../migrations/xcode_script_build_phase_migration.dart'; import '../migrations/xcode_thin_binary_build_phase_input_paths_migration.dart'; import '../project.dart'; -import 'application_package.dart'; import 'cocoapod_utils.dart'; import 'migrations/flutter_application_migration.dart'; import 'migrations/macos_deployment_target_migration.dart'; @@ -161,24 +158,9 @@ Future buildMacOS({ } finally { status.cancel(); } - if (result != 0) { throwToolExit('Build process failed'); } - final String? applicationBundle = MacOSApp.fromMacOSProject(flutterProject.macos).applicationBundle(buildInfo); - if (applicationBundle != null) { - final Directory outputDirectory = globals.fs.directory(applicationBundle); - // This output directory is the .app folder itself. - final int? directorySize = globals.os.getDirectorySize(outputDirectory); - final String appSize = (buildInfo.mode == BuildMode.debug || directorySize == null) - ? '' // Don't display the size when building a debug variant. - : ' (${getSizeAsPlatformMB(directorySize)})'; - globals.printStatus( - '${globals.terminal.successMark} ' - 'Built ${globals.fs.path.relative(outputDirectory.path)}$appSize', - color: TerminalColor.green, - ); - } await _writeCodeSizeAnalysis(buildInfo, sizeAnalyzer); final Duration elapsedDuration = sw.elapsed; globals.flutterUsage.sendTiming('build', 'xcode-macos', elapsedDuration); diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index 67082b7fed..a0f6713eb2 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -593,7 +593,7 @@ class FlutterDevice { return UpdateFSReport(); } devFSStatus.stop(); - globals.printTrace('Synced ${getSizeAsPlatformMB(report.syncedBytes)}.'); + globals.printTrace('Synced ${getSizeAsMB(report.syncedBytes)}.'); return report; } diff --git a/packages/flutter_tools/lib/src/web/compile.dart b/packages/flutter_tools/lib/src/web/compile.dart index bcd0efa6c4..dd92d49d62 100644 --- a/packages/flutter_tools/lib/src/web/compile.dart +++ b/packages/flutter_tools/lib/src/web/compile.dart @@ -10,7 +10,6 @@ import '../base/common.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/project_migrator.dart'; -import '../base/terminal.dart'; import '../base/utils.dart'; import '../build_info.dart'; import '../build_system/build_system.dart'; @@ -131,14 +130,6 @@ class WebBuilder { status.stop(); } - // We don't print a size because the output directory can contain - // optional files not needed by the user. - globals.printStatus( - '${globals.terminal.successMark} ' - 'Built ${globals.fs.path.relative(outputDirectory.path)}', - color: TerminalColor.green, - ); - final String buildSettingsString = _buildEventAnalyticsSettings( configs: compilerConfigs, ); diff --git a/packages/flutter_tools/lib/src/windows/build_windows.dart b/packages/flutter_tools/lib/src/windows/build_windows.dart index 5072be3959..813100dd57 100644 --- a/packages/flutter_tools/lib/src/windows/build_windows.dart +++ b/packages/flutter_tools/lib/src/windows/build_windows.dart @@ -114,19 +114,20 @@ Future buildWindows( } final String? binaryName = getCmakeExecutableName(windowsProject); - final File binaryFile = buildDirectory + final File appFile = buildDirectory .childDirectory('runner') .childDirectory(sentenceCase(buildModeName)) .childFile('$binaryName.exe'); - final FileSystemEntity buildOutput = binaryFile.existsSync() ? binaryFile : binaryFile.parent; - // We don't print a size because the output directory can contain - // optional files not needed by the user and because the binary is not - // self-contained. - globals.logger.printStatus( - '${globals.logger.terminal.successMark} ' - 'Built ${globals.fs.path.relative(buildOutput.path)}', - color: TerminalColor.green, - ); + if (appFile.existsSync()) { + final String appSize = (buildInfo.mode == BuildMode.debug) + ? '' // Don't display the size when building a debug variant. + : ' (${getSizeAsMB(appFile.lengthSync())})'; + globals.logger.printStatus( + '${globals.logger.terminal.successMark} ' + 'Built ${globals.fs.path.relative(appFile.path)}$appSize.', + color: TerminalColor.green, + ); + } if (buildInfo.codeSizeDirectory != null && sizeAnalyzer != null) { final String arch = getNameForTargetPlatform(targetPlatform); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart index 238121a610..9adee59ee0 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart @@ -282,36 +282,6 @@ void main() { XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), }); - - testUsingContext('ios build outputs path and size when successful', () async { - final BuildCommand command = BuildCommand( - artifacts: artifacts, - androidSdk: FakeAndroidSdk(), - buildSystem: TestBuildSystem.all(BuildResult(success: true)), - fileSystem: MemoryFileSystem.test(), - logger: BufferLogger.test(), - processUtils: processUtils, - osUtils: FakeOperatingSystemUtils(), - ); - createMinimalMockProjectFiles(); - - await createTestCommandRunner(command).run( - const ['build', 'ios', '--no-pub'] - ); - expect(testLogger.statusText, contains(RegExp(r'✓ Built build/ios/iphoneos/Runner\.app \(\d+\.\d+MB\)'))); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.list([ - xattrCommand, - setUpFakeXcodeBuildHandler(onRun: (_) { - fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true); - }), - setUpRsyncCommand(), - ]), - Platform: () => macosPlatform, - XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(), - }); - testUsingContext('ios build invokes xcode build', () async { final BuildCommand command = BuildCommand( artifacts: artifacts, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart index a1a86dc7ec..a90f414d01 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart @@ -576,7 +576,7 @@ void main() { expect(logger.statusText, contains('build/ios/archive/Runner.xcarchive')); expect(logger.statusText, contains('Building App Store IPA')); - expect(logger.statusText, contains(RegExp(r'Built IPA to build/ios/ipa \(\d+\.\d+MB\)'))); + expect(logger.statusText, contains('Built IPA to /build/ios/ipa')); expect(logger.statusText, contains('To upload to the App Store')); expect(logger.statusText, contains('Apple Transporter macOS app')); expect(fakeProcessManager, hasNoRemainingExpectations); @@ -628,7 +628,7 @@ void main() { expect(logger.statusText, contains('build/ios/archive/Runner.xcarchive')); expect(logger.statusText, contains('Building ad-hoc IPA')); - expect(logger.statusText, contains(RegExp(r'Built IPA to build/ios/ipa \(\d+\.\d+MB\)'))); + expect(logger.statusText, contains('Built IPA to /build/ios/ipa')); // Don'ltruct how to upload to the App Store. expect(logger.statusText, isNot(contains('To upload'))); expect(fakeProcessManager, hasNoRemainingExpectations); @@ -680,7 +680,7 @@ void main() { expect(logger.statusText, contains('build/ios/archive/Runner.xcarchive')); expect(logger.statusText, contains('Building enterprise IPA')); - expect(logger.statusText, contains(RegExp(r'Built IPA to build/ios/ipa \(\d+\.\d+MB\)'))); + expect(logger.statusText, contains('Built IPA to /build/ios/ipa')); // Don'ltruct how to upload to the App Store. expect(logger.statusText, isNot(contains('To upload'))); expect(fakeProcessManager, hasNoRemainingExpectations); @@ -889,7 +889,7 @@ void main() { testUsingContext('ipa build invokes xcode build export archive when passed plist', () async { final String outputPath = - fileSystem.path.relative(fileSystem.path.join('build', 'ios', 'ipa')); + fileSystem.path.absolute(fileSystem.path.join('build', 'ios', 'ipa')); final File exportOptions = fileSystem.file('ExportOptions.plist') ..createSync(); final BuildCommand command = BuildCommand( @@ -918,7 +918,7 @@ void main() { ], ); - expect(logger.statusText, contains(RegExp('Built IPA to $outputPath ' r'\(\d+\.\d+MB\)'))); + expect(logger.statusText, contains('Built IPA to $outputPath.')); expect(fakeProcessManager, hasNoRemainingExpectations); }, overrides: { FileSystem: () => fileSystem, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart index 666aa2fce9..5232513cdb 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart @@ -194,35 +194,6 @@ void main() { FeatureFlags: () => TestFeatureFlags(), }); - testUsingContext('Linux build outputs path when successful', () async { - final BuildCommand command = BuildCommand( - artifacts: artifacts, - androidSdk: FakeAndroidSdk(), - buildSystem: TestBuildSystem.all(BuildResult(success: true)), - fileSystem: MemoryFileSystem.test(), - logger: BufferLogger.test(), - processUtils: processUtils, - osUtils: FakeOperatingSystemUtils(), - ); - processManager = FakeProcessManager.list([ - cmakeCommand('release'), - ninjaCommand('release'), - ]); - - setUpMockProjectFilesForBuild(); - - await createTestCommandRunner(command).run( - const ['build', 'linux', '--no-pub'] - ); - expect(testLogger.statusText, contains('✓ Built build/linux/x64/release/bundle')); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => processManager, - Platform: () => linuxPlatform, - FeatureFlags: () => TestFeatureFlags(isLinuxEnabled: true), - OperatingSystemUtils: () => FakeOperatingSystemUtils(), - }); - testUsingContext('Linux build invokes CMake and ninja, and writes temporary files', () async { final BuildCommand command = BuildCommand( artifacts: artifacts, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart index 6e4a1fa18c..d486e6efa8 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart @@ -301,31 +301,6 @@ STDERR STUFF FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), }); - testUsingContext('macOS build outputs path and size when successful', () async { - final BuildCommand command = BuildCommand( - artifacts: artifacts, - androidSdk: FakeAndroidSdk(), - buildSystem: TestBuildSystem.all(BuildResult(success: true)), - fileSystem: MemoryFileSystem.test(), - processUtils: processUtils, - logger: BufferLogger.test(), - osUtils: FakeOperatingSystemUtils(), - ); - createMinimalMockProjectFiles(); - - await createTestCommandRunner(command).run( - const ['build', 'macos', '--no-pub'] - ); - expect(testLogger.statusText, contains(RegExp(r'✓ Built build/macos/Build/Products/Release/example.app \(\d+\.\d+MB\)'))); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Release'), - ]), - Platform: () => macosPlatform, - FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), - }); - testUsingContext('macOS build invokes xcode build (debug)', () async { final BuildCommand command = BuildCommand( artifacts: artifacts, @@ -664,7 +639,7 @@ STDERR STUFF ); createMinimalMockProjectFiles(); - fileSystem.file('build/macos/Build/Products/Release/example.app/App') + fileSystem.file('build/macos/Build/Products/Release/Runner.app/App') ..createSync(recursive: true) ..writeAsBytesSync(List.generate(10000, (int index) => 0)); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart index 2cfee6db34..15a8ed0e22 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart @@ -140,7 +140,6 @@ void main() { final Directory buildDir = fileSystem.directory(fileSystem.path.join('build', 'web')); expect(buildDir.existsSync(), true); - expect(testLogger.statusText, contains('✓ Built ${buildDir.path}')); }, overrides: { Platform: () => fakePlatform, FileSystem: () => fileSystem, @@ -237,7 +236,6 @@ void main() { ]); expect(buildDir.existsSync(), true); - expect(testLogger.statusText, contains('✓ Built $newBuildDir')); }, overrides: { Platform: () => fakePlatform, FileSystem: () => fileSystem, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart index d6a31f3b8e..c24f72a65a 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart @@ -570,28 +570,6 @@ if %errorlevel% neq 0 goto :VCEnd FeatureFlags: () => TestFeatureFlags(isWindowsEnabled: true), }); - testUsingContext('Windows build outputs path when successful', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) - ..visualStudioOverride = fakeVisualStudio; - setUpMockProjectFilesForBuild(); - - processManager = FakeProcessManager.list([ - cmakeGenerationCommand(), - buildCommand('Release'), - ]); - - await createTestCommandRunner(command).run( - const ['windows', '--release', '--no-pub'] - ); - expect(testLogger.statusText, contains(r'✓ Built build\windows\x64\runner\Release')); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => processManager, - Platform: () => windowsPlatform, - FeatureFlags: () => TestFeatureFlags(isWindowsEnabled: true), - }); - testUsingContext('Windows build passes correct generator', () async { const String generator = 'A different generator'; final FakeVisualStudio fakeVisualStudio = FakeVisualStudio( diff --git a/packages/flutter_tools/test/general.shard/base/os_test.dart b/packages/flutter_tools/test/general.shard/base/os_test.dart index 1472b87522..ee95332100 100644 --- a/packages/flutter_tools/test/general.shard/base/os_test.dart +++ b/packages/flutter_tools/test/general.shard/base/os_test.dart @@ -751,7 +751,7 @@ void main() { ); expect( - () => unknownOsUtils.unzip(fileSystem.file('foo.zip'), fileSystem.currentDirectory), + () => unknownOsUtils.unzip(fileSystem.file('foo.zip'), fileSystem.currentDirectory), throwsToolExit (message: 'Missing "unzip" tool. Unable to extract foo.zip.\n' 'Please install unzip.'), @@ -759,26 +759,6 @@ void main() { }); }); - testWithoutContext('directory size', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - final OperatingSystemUtils osUtils = OperatingSystemUtils( - fileSystem: fileSystem, - logger: BufferLogger.test(), - platform: FakePlatform(operatingSystem: 'fuchsia'), - processManager: fakeProcessManager, - ); - - final Directory directory = fileSystem.systemTempDirectory.childDirectory('test_directory'); - directory.createSync(); - directory.childFile('file1.txt').writeAsBytesSync(List.filled(10, 0)); - directory.childFile('file2.txt').writeAsBytesSync(List.filled(20, 0)); - final Directory subDirectory = directory.childDirectory('sub_directory'); - subDirectory.createSync(); - subDirectory.childFile('file3.txt').writeAsBytesSync(List.filled(15, 0)); - - expect(osUtils.getDirectorySize(directory), equals(10 + 20 + 15)); - }); - testWithoutContext('stream compression level', () { expect(OperatingSystemUtils.gzipLevel1.level, equals(1)); }); diff --git a/packages/flutter_tools/test/general.shard/utils_test.dart b/packages/flutter_tools/test/general.shard/utils_test.dart index da12e4f681..3fa94cb1c7 100644 --- a/packages/flutter_tools/test/general.shard/utils_test.dart +++ b/packages/flutter_tools/test/general.shard/utils_test.dart @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/base/utils.dart'; import 'package:flutter_tools/src/base/version.dart'; @@ -407,14 +406,4 @@ needs to be wrapped. ); }); }); - - testWithoutContext('getSizeAsMB', () async { - // ignore: avoid_redundant_argument_values - expect(getSizeAsPlatformMB(10 * 1000 * 1000, platform: FakePlatform(operatingSystem: 'linux')), '10.0MB'); - expect(getSizeAsPlatformMB(10 * 1000 * 1000, platform: FakePlatform(operatingSystem: 'macos')), '10.0MB'); - expect(getSizeAsPlatformMB(10 * 1000 * 1000, platform: FakePlatform(operatingSystem: 'windows')), '9.5MB'); - expect(getSizeAsPlatformMB(10 * 1000 * 1000, platform: FakePlatform(operatingSystem: 'android')), '10.0MB'); - expect(getSizeAsPlatformMB(10 * 1000 * 1000, platform: FakePlatform(operatingSystem: 'ios')), '10.0MB'); - expect(getSizeAsPlatformMB(10 * 1000 * 1000, platform: FakePlatform(operatingSystem: 'web')), '10.0MB'); - }); } diff --git a/packages/flutter_tools/test/src/fakes.dart b/packages/flutter_tools/test/src/fakes.dart index 0a942a3f71..33dfdb554a 100644 --- a/packages/flutter_tools/test/src/fakes.dart +++ b/packages/flutter_tools/test/src/fakes.dart @@ -541,9 +541,6 @@ class FakeOperatingSystemUtils extends Fake implements OperatingSystemUtils { @override List whichAll(String execName) => []; - @override - int? getDirectorySize(Directory directory) => 10000000; // 10 MB / 9.5 MiB - @override void unzip(File file, Directory targetDirectory) { }