Files
sdk/tools/bots/flutter/compile_flutter.sh
T
Johnni Winther c5cd8ff349 [cfe] Remove agnostic mode
The agnostic mode was added to allow the platform dill embedded in
the VM to support both weak and strong mode. Since weak mode is no
longer supported in the VM, the agnostic mode can new be deleted.

All uses of the agnostic in Dart and Flutter have been removed prior
to this change.

Change-Id: Iff0f69d9cd64e887e01cd7e7d336a97761bd6d4b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366801
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2024-06-06 11:02:37 +00:00

135 lines
3.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Compile flutter tests with a locally built SDK.
set -ex
prepareOnly=false
leakTest=false
weeklyTest=false
REMAINING_ARGS=()
while [[ $# -gt 0 ]]; do
case $1 in
--prepareOnly|--prepare-only|--prepare_only)
prepareOnly=true
shift
;;
--leakTest|--leak-test|--leak_test)
leakTest=true
shift
;;
--weeklyTest|--weekly-test|--weekly_test)
weeklyTest=true
shift
;;
*)
REMAINING_ARGS+=("$1")
shift
;;
esac
done
# Restore remaining arguments.
set -- "${REMAINING_ARGS[@]}"
if $prepareOnly; then
echo "Will prepare only!"
elif $leakTest; then
echo "Will run leak test"
fi
checkout=$(pwd)
dart=$checkout/out/ReleaseX64/dart-sdk/bin/dart
sdk=$checkout/out/ReleaseX64/dart-sdk
tmpdir=$(mktemp -d)
cleanup() {
if ! $prepareOnly; then
rm -rf "$tmpdir"
fi
}
trap cleanup EXIT HUP INT QUIT TERM PIPE
pushd "$tmpdir"
git clone --single-branch -vv \
https://dart.googlesource.com/external/github.com/flutter/flutter
pushd flutter
bin/flutter config --no-analytics
bin/flutter update-packages
popd # flutter
# Directly in temp directory again.
git clone --single-branch --depth=1 -vv \
https://dart.googlesource.com/external/github.com/flutter/buildroot src
pushd src
git clone --single-branch --branch main --depth=1 -vv \
https://dart.googlesource.com/external/github.com/flutter/engine flutter
pushd flutter
mkdir -p third_party
pushd third_party
ln -s $checkout dart
popd # third_party
popd # flutter
popd # src
./src/flutter/third_party/dart/tools/patches/flutter-engine/apply.sh || true
mkdir flutter_patched_sdk
$checkout/tools/sdks/dart-sdk/bin/dart \
--packages=$checkout/.dart_tool/package_config.json \
$checkout/pkg/front_end/tool/_fasta/compile_platform.dart \
dart:core \
-Ddart.vm.product=false \
-Ddart.isVM=true \
--nnbd-strong \
--single-root-scheme=org-dartlang-sdk \
--single-root-base=$checkout/ \
org-dartlang-sdk:///sdk/lib/libraries.json \
vm_outline_strong.dill \
vm_platform_strong.dill \
vm_outline_strong.dill
$checkout/tools/sdks/dart-sdk/bin/dart \
--packages=$checkout/.dart_tool/package_config.json \
$checkout/pkg/front_end/tool/_fasta/compile_platform.dart \
--nnbd-strong \
--target=flutter \
dart:core \
--single-root-scheme=org-dartlang-sdk \
--single-root-base=src \
org-dartlang-sdk:///flutter/lib/snapshot/libraries.json \
vm_outline_strong.dill \
flutter_patched_sdk/platform_strong.dill \
flutter_patched_sdk/outline_strong.dill
popd # tmpdir
if $prepareOnly; then
echo "Preparations complete!"
echo "Flutter is now in $tmpdir/flutter and the patched sdk in $tmpdir/flutter_patched_sdk"
echo "You can run the test with $dart --enable-asserts pkg/frontend_server/test/frontend_server_flutter.dart --flutterDir=$tmpdir/flutter --flutterPlatformDir=$tmpdir/flutter_patched_sdk"
elif $leakTest; then
$dart \
--enable-asserts \
pkg/front_end/test/flutter_gallery_leak_tester.dart \
--path=$tmpdir
elif $weeklyTest; then
$dart \
--enable-asserts \
pkg/front_end/test/weekly_tester.dart \
--path=$tmpdir \
$@
else
$dart \
--enable-asserts \
pkg/frontend_server/test/frontend_server_flutter_suite.dart \
-v \
--flutterDir=$tmpdir/flutter \
--flutterPlatformDir=$tmpdir/flutter_patched_sdk \
$@
fi