[femu] Update run_vdl_test.sh to correctly fail if a test fails. Skipped failing tests. Example run: https://ci.chromium.org/swarming/task/525794618bd3f810?server=chromium-swarm.appspot.com Bug: https://github.com/flutter/flutter/issues/78277 Change-Id: I856771d9eee2045d60c467f6ead1e83fd93a903e Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/11104 Commit-Queue: Yuan Zhi <yuanzhi@google.com> Reviewed-by: Godofredo Contreras <godofredoc@google.com> Reviewed-by: David Worsham <dworsham@google.com>
diff --git a/recipes/femu_test.expected/start_femu_with_vdl.json b/recipes/femu_test.expected/start_femu_with_vdl.json index 5839f83..70fc054 100644 --- a/recipes/femu_test.expected/start_femu_with_vdl.json +++ b/recipes/femu_test.expected/start_femu_with_vdl.json
@@ -556,7 +556,7 @@ "-root", "[CACHE]/builder/vdl", "-ensure-file", - "fuchsia/vdl/${platform} g3-revision:vdl_fuchsia_20201002_RC00", + "fuchsia/vdl/${platform} g3-revision:vdl_fuchsia_20210316_RC00", "-max-threads", "0", "-json-output",
diff --git a/recipes/femu_test.py b/recipes/femu_test.py index 9f4c3d0..b6f0566 100644 --- a/recipes/femu_test.py +++ b/recipes/femu_test.py
@@ -103,7 +103,7 @@ ) def addVDLFiles(): - vdl_version = api.properties.get('vdl_version', 'g3-revision:vdl_fuchsia_20201002_RC00') + vdl_version = api.properties.get('vdl_version', 'g3-revision:vdl_fuchsia_20210316_RC00') api.vdl.set_vdl_cipd_tag(tag=str(vdl_version)) add(api.vdl.vdl_path, 'device_launcher') add(api.vdl.aemu_dir, 'aemu') @@ -182,9 +182,29 @@ 'fml_tests': '--gtest_filter=-MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure', 'shell_tests': - '--gtest_filter=-ShellTest.ReportTimingsIsCalledLaterInReleaseMode:ShellTest.ReportTimingsIsCalledSoonerInNonReleaseMode', + ( + '--gtest_filter=-' + 'ShellTest.ReportTimingsIsCalledLaterInReleaseMode:' + 'ShellTest.ReportTimingsIsCalledSoonerInNonReleaseMode:' + 'ShellTest.CacheSkSLWorks:' + 'ShellTest.FrameRasterizedCallbackIsCalled:' + 'ShellTest.ExternalEmbedderNoThreadMerger:' + 'ShellTest.OnPlatformViewDestroyWithoutRasterThreadMerger:' + 'ShellTest.ReportTimingsIsCalledImmediatelyAfterTheFirstFrame:' + 'ShellTest.DisallowedDartVMFlag:' + 'ShellTest.SetResourceCacheSize:' + 'ShellTest.SetResourceCacheSizeEarly:' + 'ShellTest.SetResourceCacheSizeNotifiesDart:' + 'ShellTest.Screenshot:' + 'ShellTest.RasterizerScreenshot:' + 'ShellTest.DiscardLayerTreeOnResize:' + 'SkpWarmupTest.Basic:' + 'SkpWarmupTest.Image:' + 'FuchsiaShellTest.LocaltimesVaryOnTimezoneChanges'), 'flutter_runner_scenic_tests': '--gtest_filter=-SessionConnectionTest.*:CalculateNextLatchPointTest.*', + 'flutter_runner_tests': + '--gtest_filter=-EngineTest.SkpWarmup', } flutter_tests, root_dir, isolated_hash = IsolateSymlink(api) cmd = ['./run_vdl_test.sh']
diff --git a/recipes/femu_test.resources/run_vdl_test.sh b/recipes/femu_test.resources/run_vdl_test.sh index 11c8cc7..e8d7117 100644 --- a/recipes/femu_test.resources/run_vdl_test.sh +++ b/recipes/femu_test.resources/run_vdl_test.sh
@@ -107,34 +107,50 @@ readonly PORT_MAP="hostfwd=tcp::${SSH_PORT}-:22" readonly VDL_PROTO=$(mktemp -p "${PWD}") -# Make sure --action=kill gets called even if --action=start errored. set +e +shutdown() { + # Make sure --action=kill gets called even if --action=start errored. + # Stop the emulator + log "Stopping virtual device." + "./${VDL_LOCATION}" \ + --action=kill \ + --ga=true \ + --launched_virtual_device_proto="${VDL_PROTO}" + + VDL_STOP_EXIT_CODE=$? + + if [[ ${VDL_STOP_EXIT_CODE} == 0 ]]; then + log "Stopped virtual device." + else + log "Stopping virutal device errored, this is usually fine. Exit code ${VDL_STOP_EXIT_CODE}" + fi +} +trap shutdown EXIT + log "Launching virtual device using VDL." "./${VDL_LOCATION}" "${VDL_ARGS[@]}" \ --action=start \ --ga=true \ + --event_action="flutter_infra" \ --host_port_map="${PORT_MAP}" \ --output_launched_device_proto="${VDL_PROTO}" > "${EMULATOR_LOG}" \ --grpc_port="${GRPC_PORT}" _LAUNCH_EXIT_CODE=$? -_TEST_EXIT_CODE=0 +err_codes=() if [[ ${_LAUNCH_EXIT_CODE} == 0 ]]; then log "Successfully launched virtual device proto ${VDL_PROTO}" ssh_to_guest "log_listener" >"${SYSLOG}" 2>&1 & - # Debug info to makesure fvm resizing worked. - ssh_to_guest lsblk - for target in "${RUN_TESTS[@]}"; do ssh_to_guest "run-test-component fuchsia-pkg://fuchsia.com/${target}#meta/${target}.cmx ${TEST_ARGS}" _EXIT_CODE=$? if [[ ${_EXIT_CODE} == 0 ]]; then log "${target} Passed" else - _TEST_EXIT_CODE=${_EXIT_CODE} + err_codes+=(${_EXIT_CODE}) log "${target} Failed with exit code ${_EXIT_CODE}" fi done @@ -142,20 +158,8 @@ log "Failed to launch virtual device. Exit code ${_LAUNCH_EXIT_CODE}" fi -# Stop the emulator -log "Stopping virtual device." - -"./${VDL_LOCATION}" \ - --action=kill \ - --ga=true \ - --launched_virtual_device_proto="${VDL_PROTO}" - -VDL_STOP_EXIT_CODE=$? - -if [[ ${VDL_STOP_EXIT_CODE} == 0 ]]; then - log "Stopped virtual device." -else - log "Failed to stop virtual device. Exit code ${VDL_STOP_EXIT_CODE}" +if [[ ${err_codes[@]} ]]; then + log "Has test fails" + exit 1 fi - -exit ${_LAUNCH_EXIT_CODE} && ${_TEST_EXIT_CODE} && ${VDL_STOP_EXIT_CODE} +exit 0