#!/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 emu-remote

BT_FILE_DEPS=(
  "scripts/fx"
  "tools/devshell/emu-remote"
  "tools/devshell/lib/fvm.sh"
  "tools/devshell/lib/fx-cmd-locator.sh"
  "tools/devshell/lib/fx-optional-features.sh"
  "tools/devshell/lib/fx-remote.sh"
  "tools/devshell/lib/platform.sh"
  "tools/devshell/lib/vars.sh"
)

BT_MOCKED_TOOLS=(
  "tools/devshell/emu"
  "bin/rsync"
)

declare fx sshmock rsyncmock

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)"
  sshmock=$(btf::make_mock_binary "ssh")
  rsyncmock="$(btf::make_mock_binary "rsync")"
  btf::add_binary_to_path "$sshmock"
  btf::add_binary_to_path "$rsyncmock"
}

# Test that fetching artifacts and launching local emulator works.
TEST_fetch_and_launch() {
  BT_EXPECT ${fx} emu-remote 127.0.0.1 dir
  btf::expect-mock-args "$rsyncmock" "-z" "-P" \
      "127.0.0.1:/{multiboot.bin,fuchsia.zbi,obj/build/images/fvm.blk}" \
      "out/fetched/"
  btf::expect-mock-args "${BT_TEMP_DIR}/tools/devshell/emu" \
      "-K" "out/fetched/multiboot.bin" \
      "-z" "out/fetched/fuchsia.zbi" \
      "-f" "out/fetched/fvm.blk" \
      "-A" ""
}

BT_RUN_TESTS "$@"
