mirror of
https://github.com/flutter/packages.git
synced 2025-07-01 23:51:55 +08:00
[pigeon] cleaned up run_test.sh (#325)
cleaned up run_test.sh, allowed you to specify what you want to run
This commit is contained in:
@ -137,8 +137,8 @@ void _writeFlutterApi(
|
||||
final String emptyReturnStatement = isMockHandler
|
||||
? 'return <Object$nullTag, Object$nullTag>{};'
|
||||
: func.returnType == 'void'
|
||||
? 'return;'
|
||||
: 'return null;';
|
||||
? 'return;'
|
||||
: 'return null;';
|
||||
String call;
|
||||
if (argType == 'void') {
|
||||
indent.writeln('// ignore message');
|
||||
|
@ -1,3 +1,4 @@
|
||||
#!/bin/bash
|
||||
###############################################################################
|
||||
# run_tests.sh
|
||||
#
|
||||
@ -6,22 +7,7 @@
|
||||
###############################################################################
|
||||
|
||||
# exit when any command fails
|
||||
set -ex
|
||||
|
||||
JAVA_LINTER=checkstyle-8.41-all.jar
|
||||
JAVA_FORMATTER=google-java-format-1.3-all-deps.jar
|
||||
GOOGLE_CHECKS=google_checks.xml
|
||||
GOOGLE_CHECKS_VERSION=7190c47ca5515ad8cb827bc4065ae7664d2766c1
|
||||
JAVA_ERROR_PRONE=error_prone_core-2.5.1-with-dependencies.jar
|
||||
DATAFLOW_SHADED=dataflow-shaded-3.7.1.jar
|
||||
JFORMAT_STRING=jFormatString-3.0.0.jar
|
||||
JAVA_VERSION=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1)
|
||||
JAVAC_JAR=javac-9+181-r4173-1.jar
|
||||
if [ $JAVA_VERSION == "8" ]; then
|
||||
JAVAC_BOOTCLASSPATH="-J-Xbootclasspath/p:ci/$JAVAC_JAR"
|
||||
else
|
||||
JAVAC_BOOTCLASSPATH=
|
||||
fi
|
||||
set -e
|
||||
|
||||
# TODO(blasten): Enable on stable when possible.
|
||||
# https://github.com/flutter/flutter/issues/75187
|
||||
@ -36,8 +22,23 @@ flutter=$(which flutter)
|
||||
flutter_bin=$(dirname $flutter)
|
||||
framework_path="$flutter_bin/cache/artifacts/engine/ios/"
|
||||
|
||||
java_linter=checkstyle-8.41-all.jar
|
||||
java_formatter=google-java-format-1.3-all-deps.jar
|
||||
google_checks=google_checks.xml
|
||||
google_checks_version=7190c47ca5515ad8cb827bc4065ae7664d2766c1
|
||||
java_error_prone=error_prone_core-2.5.1-with-dependencies.jar
|
||||
dataflow_shaded=dataflow-shaded-3.7.1.jar
|
||||
jformat_string=jFormatString-3.0.0.jar
|
||||
java_version=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1)
|
||||
javac_jar=javac-9+181-r4173-1.jar
|
||||
if [ $java_version == "8" ]; then
|
||||
javac_bootclasspath="-J-Xbootclasspath/p:ci/$javac_jar"
|
||||
else
|
||||
javac_bootclasspath=
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
# Functions
|
||||
# Helper Functions
|
||||
###############################################################################
|
||||
|
||||
# Create a temporary directory in a way that works on both Linux and macOS.
|
||||
@ -49,9 +50,10 @@ mktmpdir() {
|
||||
|
||||
# test_pigeon_ios(<path to pigeon file>)
|
||||
#
|
||||
# Compiles the pigeon file to a temp directory and attempts to compile the code
|
||||
# and runs the dart analyzer on the generated dart code.
|
||||
# Compiles the pigeon file to a temp directory and attempts to compile the objc
|
||||
# code.
|
||||
test_pigeon_ios() {
|
||||
echo "test_pigeon_ios($1)"
|
||||
temp_dir=$(mktmpdir)
|
||||
|
||||
pub run pigeon \
|
||||
@ -76,8 +78,10 @@ test_pigeon_ios() {
|
||||
|
||||
# test_pigeon_android(<path to pigeon file>)
|
||||
#
|
||||
# Compiles the pigeon file to a temp directory and attempts to compile the code.
|
||||
# Compiles the pigeon file to a temp directory and attempts to compile the java
|
||||
# code.
|
||||
test_pigeon_android() {
|
||||
echo "test_pigeon_android($1)"
|
||||
temp_dir=$(mktmpdir)
|
||||
|
||||
pub run pigeon \
|
||||
@ -86,12 +90,12 @@ test_pigeon_android() {
|
||||
--java_out $temp_dir/Pigeon.java \
|
||||
--java_package foo
|
||||
|
||||
java -jar ci/$JAVA_FORMATTER --replace "$temp_dir/Pigeon.java"
|
||||
java -jar ci/$JAVA_LINTER -c "ci/$GOOGLE_CHECKS" "$temp_dir/Pigeon.java"
|
||||
java -jar ci/$java_formatter --replace "$temp_dir/Pigeon.java"
|
||||
java -jar ci/$java_linter -c "ci/$google_checks" "$temp_dir/Pigeon.java"
|
||||
if ! javac \
|
||||
$JAVAC_BOOTCLASSPATH \
|
||||
$javac_bootclasspath \
|
||||
-XDcompilePolicy=simple \
|
||||
-processorpath "ci/$JAVA_ERROR_PRONE:ci/$DATAFLOW_SHADED:ci/$JFORMAT_STRING" \
|
||||
-processorpath "ci/$java_error_prone:ci/$dataflow_shaded:ci/$jformat_string" \
|
||||
'-Xplugin:ErrorProne -Xep:CatchingUnchecked:ERROR' \
|
||||
-classpath "$flutter_bin/cache/artifacts/engine/android-x64/flutter.jar" \
|
||||
$temp_dir/Pigeon.java; then
|
||||
@ -99,182 +103,327 @@ test_pigeon_android() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dartfmt -w $temp_dir/pigeon.dart
|
||||
dartanalyzer $temp_dir/pigeon.dart --fatal-infos --fatal-warnings --packages ./e2e_tests/test_objc/.packages
|
||||
|
||||
rm -rf $temp_dir
|
||||
}
|
||||
|
||||
# test_null_safe_dart(<path to pigeon file>)
|
||||
#
|
||||
# Compiles the pigeon file to a temp directory and attempts to run the dart
|
||||
# analyzer on it with null safety turned on.
|
||||
test_null_safe_dart() {
|
||||
temp_dir=$(mktmpdir)
|
||||
# analyzer on it with and without null safety turned on.
|
||||
test_pigeon_dart() {
|
||||
echo "test_pigeon_dart($1)"
|
||||
temp_dir_1=$(mktmpdir)
|
||||
temp_dir_2=$(mktmpdir)
|
||||
|
||||
pub run pigeon \
|
||||
--input $1 \
|
||||
--dart_out $temp_dir/pigeon.dart
|
||||
--dart_out $temp_dir_1/pigeon.dart &
|
||||
null_safe_gen_pid=$!
|
||||
|
||||
dartanalyzer $temp_dir/pigeon.dart --fatal-infos --fatal-warnings --packages ./e2e_tests/test_objc/.packages
|
||||
rm -rf $temp_dir
|
||||
pub run pigeon \
|
||||
--no-dart_null_safety \
|
||||
--input $1 \
|
||||
--dart_out $temp_dir_2/pigeon.dart &
|
||||
non_null_safe_gen_pid=$!
|
||||
|
||||
wait $null_safe_gen_pid
|
||||
wait $non_null_safe_gen_pid
|
||||
|
||||
# `./e2e_tests/test_objc/.packages` is used to get access to Flutter since
|
||||
# Pigeon doesn't depend on Flutter.
|
||||
dartanalyzer $temp_dir_1/pigeon.dart --fatal-infos --fatal-warnings --packages ./e2e_tests/test_objc/.packages &
|
||||
null_safe_analyze_pid=$!
|
||||
dartanalyzer $temp_dir_2/pigeon.dart --fatal-infos --fatal-warnings --packages ./e2e_tests/test_objc/.packages &
|
||||
non_null_safe_analyze_pid=$!
|
||||
|
||||
wait $null_safe_analyze_pid
|
||||
wait $non_null_safe_analyze_pid
|
||||
|
||||
rm -rf $temp_dir_1
|
||||
rm -rf $temp_dir_2
|
||||
}
|
||||
|
||||
print_usage() {
|
||||
echo "usage: ./run_tests.sh [-l] [-t test_name]
|
||||
|
||||
flags:
|
||||
-t test_name: Run only specified test.
|
||||
-l : List available tests.
|
||||
"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Get java linter / formatter
|
||||
# Stages
|
||||
###############################################################################
|
||||
if [ ! -f "ci/$JAVA_LINTER" ]; then
|
||||
curl -L https://github.com/checkstyle/checkstyle/releases/download/checkstyle-8.41/$JAVA_LINTER > "ci/$JAVA_LINTER"
|
||||
fi
|
||||
if [ ! -f "ci/$JAVA_FORMATTER" ]; then
|
||||
curl -L https://github.com/google/google-java-format/releases/download/google-java-format-1.3/$JAVA_FORMATTER > "ci/$JAVA_FORMATTER"
|
||||
fi
|
||||
if [ ! -f "ci/$GOOGLE_CHECKS" ]; then
|
||||
curl -L https://raw.githubusercontent.com/checkstyle/checkstyle/$GOOGLE_CHECKS_VERSION/src/main/resources/$GOOGLE_CHECKS > "ci/$GOOGLE_CHECKS"
|
||||
fi
|
||||
if [ ! -f "ci/$JAVA_ERROR_PRONE" ]; then
|
||||
curl https://repo1.maven.org/maven2/com/google/errorprone/error_prone_core/2.5.1/$JAVA_ERROR_PRONE > "ci/$JAVA_ERROR_PRONE"
|
||||
fi
|
||||
if [ ! -f "ci/$DATAFLOW_SHADED" ]; then
|
||||
curl https://repo1.maven.org/maven2/org/checkerframework/dataflow-shaded/3.7.1/$DATAFLOW_SHADED > "ci/$DATAFLOW_SHADED"
|
||||
fi
|
||||
if [ ! -f "ci/$JFORMAT_STRING" ]; then
|
||||
curl https://repo1.maven.org/maven2/com/google/code/findbugs/jFormatString/3.0.0/$JFORMAT_STRING > "ci/$JFORMAT_STRING"
|
||||
fi
|
||||
if [ ! -f "ci/$JAVAC_JAR" ]; then
|
||||
curl https://repo1.maven.org/maven2/com/google/errorprone/javac/9+181-r4173-1/$JAVAC_JAR > "ci/$JAVAC_JAR"
|
||||
fi
|
||||
get_java_linter_formatter() {
|
||||
if [ ! -f "ci/$java_linter" ]; then
|
||||
curl -L https://github.com/checkstyle/checkstyle/releases/download/checkstyle-8.41/$java_linter >"ci/$java_linter"
|
||||
fi
|
||||
if [ ! -f "ci/$java_formatter" ]; then
|
||||
curl -L https://github.com/google/google-java-format/releases/download/google-java-format-1.3/$java_formatter >"ci/$java_formatter"
|
||||
fi
|
||||
if [ ! -f "ci/$google_checks" ]; then
|
||||
curl -L https://raw.githubusercontent.com/checkstyle/checkstyle/$google_checks_version/src/main/resources/$google_checks >"ci/$google_checks"
|
||||
fi
|
||||
if [ ! -f "ci/$java_error_prone" ]; then
|
||||
curl https://repo1.maven.org/maven2/com/google/errorprone/error_prone_core/2.5.1/$java_error_prone >"ci/$java_error_prone"
|
||||
fi
|
||||
if [ ! -f "ci/$dataflow_shaded" ]; then
|
||||
curl https://repo1.maven.org/maven2/org/checkerframework/dataflow-shaded/3.7.1/$dataflow_shaded >"ci/$dataflow_shaded"
|
||||
fi
|
||||
if [ ! -f "ci/$jformat_string" ]; then
|
||||
curl https://repo1.maven.org/maven2/com/google/code/findbugs/jFormatString/3.0.0/$jformat_string >"ci/$jformat_string"
|
||||
fi
|
||||
if [ ! -f "ci/$javac_jar" ]; then
|
||||
curl https://repo1.maven.org/maven2/com/google/errorprone/javac/9+181-r4173-1/$javac_jar >"ci/$javac_jar"
|
||||
fi
|
||||
}
|
||||
|
||||
run_dart_unittests() {
|
||||
dart analyze bin
|
||||
dart analyze lib
|
||||
dart test
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Dart analysis and unit tests
|
||||
###############################################################################
|
||||
pub get
|
||||
dart analyze bin
|
||||
dart analyze lib
|
||||
dart test
|
||||
test_running_without_arguments() {
|
||||
pub run pigeon 1>/dev/null
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Execute without arguments test
|
||||
###############################################################################
|
||||
pub run pigeon 1> /dev/null
|
||||
|
||||
###############################################################################
|
||||
# Run unit tests on generated Dart code.
|
||||
###############################################################################
|
||||
pushd $PWD
|
||||
pub run pigeon \
|
||||
run_flutter_unittests() {
|
||||
pushd $PWD
|
||||
pub run pigeon \
|
||||
--input pigeons/message.dart \
|
||||
--dart_out platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart
|
||||
cd platform_tests/flutter_null_safe_unit_tests
|
||||
flutter pub get
|
||||
flutter test test/null_safe_test.dart
|
||||
popd
|
||||
cd platform_tests/flutter_null_safe_unit_tests
|
||||
flutter pub get
|
||||
flutter test test/null_safe_test.dart
|
||||
popd
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Mock handler flutter tests.
|
||||
###############################################################################
|
||||
pushd $PWD
|
||||
pub run pigeon \
|
||||
--input pigeons/message.dart \
|
||||
--dart_out mock_handler_tester/test/message.dart \
|
||||
--dart_test_out mock_handler_tester/test/test.dart
|
||||
dartfmt -w mock_handler_tester/test/message.dart
|
||||
dartfmt -w mock_handler_tester/test/test.dart
|
||||
cd mock_handler_tester
|
||||
flutter test
|
||||
popd
|
||||
run_mock_handler_tests() {
|
||||
pushd $PWD
|
||||
pub run pigeon \
|
||||
--input pigeons/message.dart \
|
||||
--dart_out mock_handler_tester/test/message.dart \
|
||||
--dart_test_out mock_handler_tester/test/test.dart
|
||||
dartfmt -w mock_handler_tester/test/message.dart
|
||||
dartfmt -w mock_handler_tester/test/test.dart
|
||||
cd mock_handler_tester
|
||||
flutter test
|
||||
popd
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# Compilation tests (Code is generated and compiled)
|
||||
###############################################################################
|
||||
# Make sure the artifacts are present.
|
||||
flutter precache
|
||||
# Make sure flutter dependencies are available.
|
||||
pushd $PWD
|
||||
cd e2e_tests/test_objc/
|
||||
flutter pub get
|
||||
popd
|
||||
test_pigeon_ios ./pigeons/async_handlers.dart
|
||||
test_null_safe_dart ./pigeons/message.dart
|
||||
test_pigeon_android ./pigeons/voidflutter.dart
|
||||
test_pigeon_android ./pigeons/voidhost.dart
|
||||
test_pigeon_android ./pigeons/host2flutter.dart
|
||||
test_pigeon_android ./pigeons/message.dart
|
||||
test_pigeon_android ./pigeons/void_arg_host.dart
|
||||
test_pigeon_android ./pigeons/void_arg_flutter.dart
|
||||
test_pigeon_android ./pigeons/list.dart
|
||||
test_pigeon_android ./pigeons/all_datatypes.dart
|
||||
test_pigeon_android ./pigeons/async_handlers.dart
|
||||
test_pigeon_ios ./pigeons/message.dart
|
||||
test_pigeon_ios ./pigeons/host2flutter.dart
|
||||
test_pigeon_ios ./pigeons/voidhost.dart
|
||||
test_pigeon_ios ./pigeons/voidflutter.dart
|
||||
test_pigeon_ios ./pigeons/void_arg_host.dart
|
||||
test_pigeon_ios ./pigeons/void_arg_flutter.dart
|
||||
test_pigeon_ios ./pigeons/list.dart
|
||||
test_pigeon_ios ./pigeons/all_datatypes.dart
|
||||
run_dart_compilation_tests() {
|
||||
# Make sure the artifacts are present.
|
||||
flutter precache
|
||||
# Make sure flutter dependencies are available.
|
||||
pushd $PWD
|
||||
cd e2e_tests/test_objc/
|
||||
flutter pub get
|
||||
popd
|
||||
test_pigeon_dart ./pigeons/all_datatypes.dart
|
||||
test_pigeon_dart ./pigeons/async_handlers.dart
|
||||
test_pigeon_dart ./pigeons/host2flutter.dart
|
||||
test_pigeon_dart ./pigeons/list.dart
|
||||
test_pigeon_dart ./pigeons/message.dart
|
||||
test_pigeon_dart ./pigeons/void_arg_flutter.dart
|
||||
test_pigeon_dart ./pigeons/void_arg_host.dart
|
||||
test_pigeon_dart ./pigeons/voidflutter.dart
|
||||
test_pigeon_dart ./pigeons/voidhost.dart
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# iOS unit tests on generated code.
|
||||
###############################################################################
|
||||
pub run pigeon \
|
||||
--no-dart_null_safety \
|
||||
--input pigeons/message.dart \
|
||||
--dart_out /dev/null \
|
||||
--objc_header_out platform_tests/ios_unit_tests/ios/Runner/messages.h \
|
||||
--objc_source_out platform_tests/ios_unit_tests/ios/Runner/messages.m
|
||||
pub run pigeon \
|
||||
--no-dart_null_safety \
|
||||
--input pigeons/async_handlers.dart \
|
||||
--dart_out /dev/null \
|
||||
--objc_header_out platform_tests/ios_unit_tests/ios/Runner/async_handlers.h \
|
||||
--objc_source_out platform_tests/ios_unit_tests/ios/Runner/async_handlers.m
|
||||
clang-format -i platform_tests/ios_unit_tests/ios/Runner/messages.h
|
||||
clang-format -i platform_tests/ios_unit_tests/ios/Runner/messages.m
|
||||
clang-format -i platform_tests/ios_unit_tests/ios/Runner/async_handlers.h
|
||||
clang-format -i platform_tests/ios_unit_tests/ios/Runner/async_handlers.m
|
||||
pushd $PWD
|
||||
cd platform_tests/ios_unit_tests
|
||||
flutter build ios --simulator
|
||||
cd ios
|
||||
xcodebuild \
|
||||
run_java_compilation_tests() {
|
||||
# Make sure the artifacts are present.
|
||||
flutter precache
|
||||
# Make sure flutter dependencies are available.
|
||||
pushd $PWD
|
||||
# We use e2e_tests/test_objc in order to get access to Flutter.
|
||||
cd e2e_tests/test_objc/
|
||||
flutter pub get
|
||||
popd
|
||||
test_pigeon_android ./pigeons/all_datatypes.dart
|
||||
test_pigeon_android ./pigeons/async_handlers.dart
|
||||
test_pigeon_android ./pigeons/host2flutter.dart
|
||||
test_pigeon_android ./pigeons/list.dart
|
||||
test_pigeon_android ./pigeons/message.dart
|
||||
test_pigeon_android ./pigeons/void_arg_flutter.dart
|
||||
test_pigeon_android ./pigeons/void_arg_host.dart
|
||||
test_pigeon_android ./pigeons/voidflutter.dart
|
||||
test_pigeon_android ./pigeons/voidhost.dart
|
||||
}
|
||||
|
||||
run_objc_compilation_tests() {
|
||||
# Make sure the artifacts are present.
|
||||
flutter precache
|
||||
|
||||
test_pigeon_ios ./pigeons/all_datatypes.dart
|
||||
test_pigeon_ios ./pigeons/async_handlers.dart
|
||||
test_pigeon_ios ./pigeons/host2flutter.dart
|
||||
test_pigeon_ios ./pigeons/list.dart
|
||||
test_pigeon_ios ./pigeons/message.dart
|
||||
test_pigeon_ios ./pigeons/void_arg_flutter.dart
|
||||
test_pigeon_ios ./pigeons/void_arg_host.dart
|
||||
test_pigeon_ios ./pigeons/voidflutter.dart
|
||||
test_pigeon_ios ./pigeons/voidhost.dart
|
||||
}
|
||||
|
||||
run_ios_unittests() {
|
||||
pub run pigeon \
|
||||
--no-dart_null_safety \
|
||||
--input pigeons/message.dart \
|
||||
--dart_out /dev/null \
|
||||
--objc_header_out platform_tests/ios_unit_tests/ios/Runner/messages.h \
|
||||
--objc_source_out platform_tests/ios_unit_tests/ios/Runner/messages.m
|
||||
pub run pigeon \
|
||||
--no-dart_null_safety \
|
||||
--input pigeons/async_handlers.dart \
|
||||
--dart_out /dev/null \
|
||||
--objc_header_out platform_tests/ios_unit_tests/ios/Runner/async_handlers.h \
|
||||
--objc_source_out platform_tests/ios_unit_tests/ios/Runner/async_handlers.m
|
||||
clang-format -i platform_tests/ios_unit_tests/ios/Runner/messages.h
|
||||
clang-format -i platform_tests/ios_unit_tests/ios/Runner/messages.m
|
||||
clang-format -i platform_tests/ios_unit_tests/ios/Runner/async_handlers.h
|
||||
clang-format -i platform_tests/ios_unit_tests/ios/Runner/async_handlers.m
|
||||
pushd $PWD
|
||||
cd platform_tests/ios_unit_tests
|
||||
flutter build ios --simulator
|
||||
cd ios
|
||||
xcodebuild \
|
||||
-workspace Runner.xcworkspace \
|
||||
-scheme RunnerTests \
|
||||
-sdk iphonesimulator \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 8' \
|
||||
test
|
||||
popd
|
||||
popd
|
||||
}
|
||||
|
||||
run_ios_e2e_tests() {
|
||||
DARTLE_H="e2e_tests/test_objc/ios/Runner/dartle.h"
|
||||
DARTLE_M="e2e_tests/test_objc/ios/Runner/dartle.m"
|
||||
DARTLE_DART="e2e_tests/test_objc/lib/dartle.dart"
|
||||
PIGEON_JAVA="e2e_tests/test_objc/android/app/src/main/java/io/flutter/plugins/Pigeon.java"
|
||||
pub run pigeon \
|
||||
--input pigeons/message.dart \
|
||||
--dart_out $DARTLE_DART \
|
||||
--objc_header_out $DARTLE_H \
|
||||
--objc_source_out $DARTLE_M \
|
||||
--java_out $PIGEON_JAVA
|
||||
dartfmt -w $DARTLE_DART
|
||||
|
||||
pushd $PWD
|
||||
cd e2e_tests/test_objc
|
||||
flutter build ios -t test_driver/e2e_test.dart --simulator
|
||||
cd ios
|
||||
xcodebuild \
|
||||
-workspace Runner.xcworkspace \
|
||||
-scheme RunnerTests \
|
||||
-sdk iphonesimulator \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 8' \
|
||||
test
|
||||
popd
|
||||
}
|
||||
|
||||
run_formatter() {
|
||||
cd ../..
|
||||
pub global activate flutter_plugin_tools && pub global run flutter_plugin_tools format 2>/dev/null
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# End-to-end (e2e) integration tests.
|
||||
# main
|
||||
###############################################################################
|
||||
DARTLE_H="e2e_tests/test_objc/ios/Runner/dartle.h"
|
||||
DARTLE_M="e2e_tests/test_objc/ios/Runner/dartle.m"
|
||||
DARTLE_DART="e2e_tests/test_objc/lib/dartle.dart"
|
||||
PIGEON_JAVA="e2e_tests/test_objc/android/app/src/main/java/io/flutter/plugins/Pigeon.java"
|
||||
pub run pigeon \
|
||||
--input pigeons/message.dart \
|
||||
--dart_out $DARTLE_DART \
|
||||
--objc_header_out $DARTLE_H \
|
||||
--objc_source_out $DARTLE_M \
|
||||
--java_out $PIGEON_JAVA
|
||||
dartfmt -w $DARTLE_DART
|
||||
should_run_dart_compilation_tests=true
|
||||
should_run_dart_unittests=true
|
||||
should_run_flutter_unittests=true
|
||||
should_run_formatter=true
|
||||
should_run_ios_e2e_tests=true
|
||||
should_run_ios_unittests=true
|
||||
should_run_java_compilation_tests=true
|
||||
should_run_mock_handler_tests=true
|
||||
should_run_objc_compilation_tests=true
|
||||
while getopts "t:l?h" opt; do
|
||||
case $opt in
|
||||
t)
|
||||
should_run_dart_compilation_tests=false
|
||||
should_run_dart_unittests=false
|
||||
should_run_flutter_unittests=false
|
||||
should_run_formatter=false
|
||||
should_run_ios_e2e_tests=false
|
||||
should_run_ios_unittests=false
|
||||
should_run_java_compilation_tests=false
|
||||
should_run_mock_handler_tests=false
|
||||
should_run_objc_compilation_tests=false
|
||||
case $OPTARG in
|
||||
dart_compilation_tests) should_run_dart_compilation_tests=true ;;
|
||||
dart_unittests) should_run_dart_unittests=true ;;
|
||||
flutter_unittests) should_run_flutter_unittests=true ;;
|
||||
ios_e2e_tests) should_run_ios_e2e_tests=true ;;
|
||||
ios_unittests) should_run_ios_unittests=true ;;
|
||||
java_compilation_tests) should_run_java_compilation_tests=true ;;
|
||||
mock_handler_tests) should_run_mock_handler_tests=true ;;
|
||||
objc_compilation_tests) should_run_objc_compilation_tests=true ;;
|
||||
*)
|
||||
echo "unrecognized test: $OPTARG"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
l)
|
||||
echo "available tests for -t:
|
||||
dart_compilation_tests - Compilation tests on generated Dart code.
|
||||
dart_unittests - Unit tests on and analysis on Pigeon's implementation.
|
||||
flutter_unittests - Unit tests on generated Dart code.
|
||||
ios_e2e_tests - End-to-end objc tests run on iOS Simulator
|
||||
ios_unittests - Unit tests on generated Objc code.
|
||||
java_compilation_tests - Compilation tests on generated Java code.
|
||||
mock_handler_tests - Unit tests on generated Dart mock handler code.
|
||||
objc_compilation_tests - Compilation tests on generated Objc code.
|
||||
"
|
||||
exit 1
|
||||
;;
|
||||
\h)
|
||||
print_usage
|
||||
exit 1
|
||||
;;
|
||||
\?)
|
||||
print_usage
|
||||
exit 1
|
||||
;;
|
||||
?)
|
||||
print_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
pushd $PWD
|
||||
cd e2e_tests/test_objc
|
||||
flutter build ios -t test_driver/e2e_test.dart --simulator
|
||||
cd ios
|
||||
xcodebuild \
|
||||
-workspace Runner.xcworkspace \
|
||||
-scheme RunnerTests \
|
||||
-sdk iphonesimulator \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 8' \
|
||||
test
|
||||
popd
|
||||
|
||||
###############################################################################
|
||||
# Run the formatter on generated code.
|
||||
###############################################################################
|
||||
cd ../..
|
||||
pub global activate flutter_plugin_tools && pub global run flutter_plugin_tools format
|
||||
if [ "$should_run_java_compilation_tests" = true ]; then
|
||||
get_java_linter_formatter
|
||||
fi
|
||||
pub get
|
||||
test_running_without_arguments
|
||||
if [ "$should_run_dart_unittests" = true ]; then
|
||||
run_dart_unittests
|
||||
fi
|
||||
if [ "$should_run_flutter_unittests" = true ]; then
|
||||
run_flutter_unittests
|
||||
fi
|
||||
if [ "$should_run_mock_handler_tests" = true ]; then
|
||||
run_mock_handler_tests
|
||||
fi
|
||||
if [ "$should_run_dart_compilation_tests" = true ]; then
|
||||
run_dart_compilation_tests
|
||||
fi
|
||||
if [ "$should_run_java_compilation_tests" = true ]; then
|
||||
run_java_compilation_tests
|
||||
fi
|
||||
if [ "$should_run_objc_compilation_tests" = true ]; then
|
||||
run_objc_compilation_tests
|
||||
fi
|
||||
if [ "$should_run_ios_unittests" = true ]; then
|
||||
run_ios_unittests
|
||||
fi
|
||||
if [ "$should_run_ios_e2e_tests" = true ]; then
|
||||
run_ios_e2e_tests
|
||||
fi
|
||||
if [ "$should_run_formatter" = true ]; then
|
||||
run_formatter
|
||||
fi
|
||||
|
Reference in New Issue
Block a user