#!/bin/bash set -o pipefail -e; BUILDROOT_DIR="$(pwd)" if [[ "$BUILDROOT_DIR" != */src ]]; then if [[ "$BUILDROOT_DIR" != */src/* ]]; then echo "Unable to determine build root. Exiting." exit 1 fi BUILDROOT_DIR="${BUILDROOT_DIR%/src/*}/src" fi echo "Using build root: $BUILDROOT_DIR" OUT_DIR="$BUILDROOT_DIR/out" HOST_DIR="$OUT_DIR/${1:-host_debug_unopt}" # Check a Dart SDK has been built. if [[ ! -d "$HOST_DIR/dart-sdk" ]]; then echo "Built Dart SDK not found at $HOST_DIR/dart-sdk. Exiting." exit 1 fi # Switch to buildroot dir. Some tests assume paths relative to buildroot. cd "$BUILDROOT_DIR" # TODO(dnfield): Re-enable this when the upstream Dart changes that make it not be flaky land. # $HOST_DIR/embedder_unittests echo "Running flow_unittests..." "$HOST_DIR/flow_unittests" echo "Running fml_unittests..." "$HOST_DIR/fml_unittests" --gtest_filter="-*TimeSensitiveTest*" echo "Running runtime_unittests..." "$HOST_DIR/runtime_unittests" echo "Running shell_unittests..." "$HOST_DIR/shell_unittests" echo "Running txt_unittests..." "$HOST_DIR/txt_unittests" --font-directory="$BUILDROOT_DIR/flutter/third_party/txt/third_party/fonts" # Build flutter/sky/packages. # # flutter/testing/dart/pubspec.yaml contains harcoded path deps to # host_debug_unopt packages. "$BUILDROOT_DIR/flutter/tools/gn" --unoptimized ninja -C $OUT_DIR/host_debug_unopt flutter/sky/packages # Fetch Dart test dependencies. pushd "$BUILDROOT_DIR/flutter/testing/dart" "$HOST_DIR/dart-sdk/bin/pub" get popd run_test () { "$HOST_DIR/dart" $HOST_DIR/gen/frontend_server.dart.snapshot \ --sdk-root $HOST_DIR/flutter_patched_sdk \ --incremental \ --strong \ --target=flutter \ --packages flutter/testing/dart/.packages \ --output-dill $HOST_DIR/engine_test.dill \ $1 "$HOST_DIR/flutter_tester" \ --disable-observatory \ --use-test-fonts \ "$HOST_DIR/engine_test.dill" } # Verify that a failing test returns a failure code. ! run_test "$BUILDROOT_DIR/flutter/testing/smoke_test_failure/fail_test.dart" for TEST_SCRIPT in "$BUILDROOT_DIR"/flutter/testing/dart/*.dart; do run_test "$TEST_SCRIPT" done pushd flutter ci/test.sh popd exit 0