[tool] Use an arm64 Dart SDK on arm64 macOS (#97189)

This commit is contained in:
Zachary Anderson
2022-01-26 11:30:20 -08:00
committed by GitHub
parent 790ca116f9
commit 657bca4b7f
2 changed files with 20 additions and 1 deletions

View File

@@ -71,7 +71,7 @@ if [ ! -f "$ENGINE_STAMP" ] || [ "$ENGINE_VERSION" != `cat "$ENGINE_STAMP"` ]; t
case "$(uname -s)" in
Darwin)
DART_ZIP_NAME="dart-sdk-darwin-x64.zip"
DART_ZIP_NAME="dart-sdk-darwin-${ARCH}.zip"
IS_USER_EXECUTABLE="-perm +100"
;;
Linux)

View File

@@ -113,6 +113,25 @@ exit(0);
expect(logger.hadWarningOutput, isTrue);
});
});
testWithoutContext('Dart SDK target arch matches host arch', () async {
if (platform.isWindows) {
return;
}
final ProcessResult dartResult = await const LocalProcessManager().run(
<String>[dart, '--version'],
);
// Parse 'arch' out of a string like '... "os_arch"\n'.
final String dartTargetArch = (dartResult.stdout as String)
.trim().split(' ').last.replaceAll('"', '').split('_')[1];
final ProcessResult unameResult = await const LocalProcessManager().run(
<String>['uname', '-m'],
);
final String unameArch = (unameResult.stdout as String)
.trim().replaceAll('aarch64', 'arm64')
.replaceAll('x86_64', 'x64');
expect(dartTargetArch, equals(unameArch));
});
}
class FakeArtifactUpdater extends Fake implements ArtifactUpdater {