blob: 8b7e2371324c96cbb07a3661429c52cd5a040615 [file] [log] [blame]
#!/bin/bash
# Copyright 2019 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 expected usage of pave in fx scripts
BT_FILE_DEPS=(
"scripts/fx"
"tools/devshell/lib/fx-cmd-locator.sh"
"tools/devshell/lib/fx-optional-features.sh"
"tools/devshell/lib/generate-ssh-config.sh"
"tools/devshell/lib/vars.sh"
"tools/devshell/lib/platform.sh"
"tools/devshell/pave"
)
BT_MOCKED_TOOLS=(
"out/default/pave.sh"
"tools/devshell/build"
"tools/devshell/get-flash-source"
)
declare fx build pavesh
BT_SET_UP() {
source "${BT_TEMP_DIR}/tools/devshell/tests/lib/fuchsia-mock.sh"
fx="$(btf::setup_fx)"
source "${BT_TEMP_DIR}/tools/devshell/lib/vars.sh"
fx-config-read
build="${BT_TEMP_DIR}/tools/devshell/build"
pavesh="${BT_TEMP_DIR}/out/default/pave.sh"
# Do not use product bundle as the flash/paving source when running
# tests by default.
cat > "${BT_TEMP_DIR}/tools/devshell/get-flash-source.mock_side_effects" <<EOF
echo "flash-manifest:flash.json"
EOF
}
TEST_pave_noincr_noargs() {
local out="${BT_TEMP_DIR}/_fx_pave_output"
BT_EXPECT ${fx} --disable=incremental pave > "$out" 2>&1
# build was not called
BT_ASSERT_FILE_DOES_NOT_EXIST "${build}.mock_state"
# pave.sh was called
BT_ASSERT_FILE_EXISTS "${pavesh}.mock_state"
# pave.sh was called with option "-1". `--run-once` is the default behavior
BT_EXPECT btf::does-mock-args-contain "${pavesh}.mock_state" "-1"
}
TEST_pave_noincr_noargs_with_product_bundle() {
local out="${BT_TEMP_DIR}/_fx_pave_output"
cat > "${BT_TEMP_DIR}/tools/devshell/get-flash-source.mock_side_effects" <<EOF
echo "product-bundle:acme/product_bundle_dir"
EOF
pavesh="${BT_TEMP_DIR}/out/default/acme/pave.sh"
btf::make_mock "${pavesh}"
BT_EXPECT ${fx} --disable=incremental pave > "$out" 2>&1
# build was not called
BT_ASSERT_FILE_DOES_NOT_EXIST "${build}.mock_state"
# pave.sh was called
BT_ASSERT_FILE_EXISTS "${pavesh}.mock_state"
# pave.sh was called with option "-1". `--run-once` is the default behavior
BT_EXPECT btf::does-mock-args-contain "${pavesh}.mock_state" "-1"
}
TEST_pave_singlerun() {
local out="${BT_TEMP_DIR}/_fx_pave_output"
BT_EXPECT ${fx} pave --run-once > "$out" 2>&1
# pave.sh was called with option "-1"
BT_EXPECT btf::does-mock-args-contain "${pavesh}.mock_state" "-1"
}
TEST_pave_singlerun_shortened() {
local out="${BT_TEMP_DIR}/_fx_pave_output"
BT_EXPECT ${fx} pave -1 > "$out" 2>&1
# pave.sh was called with option "-1"
BT_EXPECT btf::does-mock-args-contain "${pavesh}.mock_state" "-1"
}
TEST_pave_keeprunning() {
local out="${BT_TEMP_DIR}/_fx_pave_output"
BT_EXPECT ${fx} pave --keep-running > "$out" 2>&1
# pave.sh was called without option "-1"
BT_EXPECT btf::does-mock-args-not-contain "${pavesh}.mock_state" "-1"
}
TEST_pave_helpoptions() {
local out="${BT_TEMP_DIR}/_fx_pave_output"
BT_EXPECT ${fx} pave --build --help > "$out" 2>&1
BT_EXPECT btf::does-mock-args-contain "${pavesh}.mock_state" "--help"
}
BT_RUN_TESTS "$@"