[pigeon] cleaned up run_test.sh (#325)
cleaned up run_test.sh, allowed you to specify what you want to run
diff --git a/packages/pigeon/lib/dart_generator.dart b/packages/pigeon/lib/dart_generator.dart
index 95f92f4..41c1dcb 100644
--- a/packages/pigeon/lib/dart_generator.dart
+++ b/packages/pigeon/lib/dart_generator.dart
@@ -137,8 +137,8 @@
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');
diff --git a/packages/pigeon/run_tests.sh b/packages/pigeon/run_tests.sh
index d99e2e4..bc6ce58 100755
--- a/packages/pigeon/run_tests.sh
+++ b/packages/pigeon/run_tests.sh
@@ -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_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 @@
# 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_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 @@
--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 @@
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