blob: 8006eb493e3ff1edfec459e608001a05ac2ff85c [file] [log] [blame]
#!/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 flash
BT_FILE_DEPS=(
"scripts/fx"
"tools/devshell/flash"
"tools/devshell/lib/fx-cmd-locator.sh"
"tools/devshell/lib/fx-flash.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"
)
declare fx fastboot_mock flash_script
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)"
flash_script="${BT_TEMP_DIR}/out/default/flash.sh"
btf::make_mock "$flash_script"
btf::make_mock "${BT_TEMP_DIR}/out/default/image_paths.sh"
btf::make_mock "${BT_TEMP_DIR}/out/default/host-tools/device-finder"
btf::make_mock "${BT_TEMP_DIR}/tools/devshell/list-build-artifacts"
fastboot_mock="$(btf::make_mock_binary "fastboot")"
echo '[[ "$4" == "fastboot" ]] && echo ' "${fastboot_mock}" \
> "${BT_TEMP_DIR}/tools/devshell/list-build-artifacts.mock_side_effects"
}
TEST_fx_flash_ssh() {
cat >"${fastboot_mock}.mock_side_effects" <<INPUT
if [[ "\$1" == "devices" ]]; then
echo "97300YCABZZ5AA fastboot"
fi
INPUT
BT_EXPECT ${fx} flash
source "${flash_script}.mock_state"
BT_EXPECT [[ "${BT_MOCK_ARGS[1]}" == "--ssh-key="*".ssh/fuchsia_authorized_keys" ]]
}
TEST_fx_flash_ssh_falls_back_to_recovery_if_not_exist() {
# Remove the ssh key file
rm "${BT_TEMP_DIR}/.ssh/fuchsia_authorized_keys"
cat >"${fastboot_mock}.mock_side_effects" <<INPUT
if [[ "\$1" == "devices" ]]; then
echo "97300YCABZZ5AA fastboot"
fi
INPUT
BT_EXPECT ${fx} flash 2>/dev/null
source "${flash_script}.mock_state"
btf::expect-mock-args "${flash_script}" --recovery
}
BT_RUN_TESTS "$@"