|  | #!/bin/bash | 
|  | # Copyright 2020 The Fuchsia Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | ### Test fx vdl | 
|  |  | 
|  | BT_FILE_DEPS=( | 
|  | "scripts/fx" | 
|  | "tools/devshell/lib/fx-cmd-locator.sh" | 
|  | "tools/devshell/lib/fx-optional-features.sh" | 
|  | "tools/devshell/lib/image_build_vars.sh" | 
|  | "tools/devshell/lib/platform.sh" | 
|  | "tools/devshell/lib/vars.sh" | 
|  | "tools/devshell/vdl" | 
|  | ) | 
|  |  | 
|  | BT_MOCKED_TOOLS=( | 
|  | # VDL | 
|  | "prebuilt/vdl/device_launcher" | 
|  |  | 
|  | # Emulator | 
|  | "${PREBUILT_AEMU_DIR}/emulator" | 
|  | ) | 
|  | declare fx | 
|  |  | 
|  | BT_SET_UP() { | 
|  | source "${BT_TEMP_DIR}/tools/devshell/lib/vars.sh" | 
|  | source "${BT_TEMP_DIR}/tools/devshell/tests/lib/fuchsia-mock.sh" | 
|  | fx="$(btf::setup_fx)" | 
|  | btf::make_mock "${BT_TEMP_DIR}/out/default/image_paths.sh" | 
|  | btf::make_mock "${BT_TEMP_DIR}/${PREBUILT_VDL_DIR}/device_launcher" | 
|  |  | 
|  | btf::make_mock "${BT_TEMP_DIR}/tools/devshell/list-build-artifacts" | 
|  | btf::make_mock "${BT_TEMP_DIR}/out/default/host/zbi" | 
|  | cat >> "${BT_TEMP_DIR}/tools/devshell/list-build-artifacts.mock_side_effects" << "EOF" | 
|  | if [[ "$@" == "--name zbi --expect-one tools" ]] ; then | 
|  | echo "host/zbi" | 
|  | fi | 
|  | EOF | 
|  | } | 
|  |  | 
|  | TEST_fx_vdl_default() { | 
|  | local out="${BT_TEMP_DIR}/output.log" | 
|  | BT_EXPECT ${fx} vdl >>${out} 2>&1 | 
|  | btf::expect-mock-args "${PREBUILT_VDL_DIR}/device_launcher.mock_state" \ | 
|  | "--action=start" _ANY_ _ANY_ _ANY_ _ANY_ \ | 
|  | "--resize_fvm=2G" \ | 
|  | "--gpu=swiftshader_indirect" \ | 
|  | "--headless_mode=false" \ | 
|  | "--tuntap=false" \ | 
|  | _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ \ | 
|  | "--ga=true" \ | 
|  | _ANY_ _ANY_ | 
|  | } | 
|  |  | 
|  | TEST_fx_vdl_tuntap() { | 
|  | local out="${BT_TEMP_DIR}/output.log" | 
|  | BT_EXPECT ${fx} vdl -N  >>${out} 2>&1 | 
|  |  | 
|  | btf::expect-mock-args "${PREBUILT_VDL_DIR}/device_launcher.mock_state" \ | 
|  | "--action=start" _ANY_ _ANY_ _ANY_ _ANY_ \ | 
|  | "--resize_fvm=2G" \ | 
|  | "--gpu=swiftshader_indirect" \ | 
|  | "--headless_mode=false" \ | 
|  | "--tuntap=true" \ | 
|  | _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ \ | 
|  | "--ga=true" \ | 
|  | _ANY_ _ANY_ | 
|  | } | 
|  |  | 
|  | TEST_fx_vdl_headless_tuntap() { | 
|  | local out="${BT_TEMP_DIR}/output.log" | 
|  | BT_EXPECT ${fx} vdl -N --headless >>${out} 2>&1 | 
|  |  | 
|  | btf::expect-mock-args "${PREBUILT_VDL_DIR}/device_launcher.mock_state" \ | 
|  | "--action=start" _ANY_ _ANY_ _ANY_ _ANY_ \ | 
|  | "--resize_fvm=2G" \ | 
|  | "--gpu=swiftshader_indirect" \ | 
|  | "--headless_mode=true" \ | 
|  | "--tuntap=true" \ | 
|  | _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ \ | 
|  | "--ga=true" \ | 
|  | _ANY_ _ANY_ | 
|  | } | 
|  |  | 
|  | TEST_fx_vdl_tuntap_script() { | 
|  | local out="${BT_TEMP_DIR}/output.log" | 
|  | BT_EXPECT ${fx} vdl -N -u "./script" >>${out} 2>&1 | 
|  |  | 
|  | btf::expect-mock-args "${PREBUILT_VDL_DIR}/device_launcher.mock_state" \ | 
|  | "--action=start" _ANY_ _ANY_ _ANY_ _ANY_ \ | 
|  | "--resize_fvm=2G" \ | 
|  | "--gpu=swiftshader_indirect" \ | 
|  | "--headless_mode=false" \ | 
|  | "--tuntap=true" \ | 
|  | "--upscript=./script" \ | 
|  | _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ _ANY_ \ | 
|  | "--ga=true" \ | 
|  | _ANY_ _ANY_ | 
|  | } | 
|  |  | 
|  | BT_RUN_TESTS "$@" | 
|  |  |