| #!/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. |
| # |
| # Tests for fpublish. |
| |
| set -e |
| |
| # Constants. |
| readonly PACKAGE_NAME=placeholder.far |
| |
| |
| # Verifies that the correct pm serve command is run by fpublish. |
| TEST_fpublish() { |
| # Run command. |
| BT_EXPECT "${BT_TEMP_DIR}/scripts/sdk/gn/base/bin/fpublish.sh" "${PACKAGE_NAME}" |
| |
| # Verify that pm serve was run correctly. |
| # shellcheck disable=SC1090 |
| source "${MOCKED_PM}.mock_state" |
| local PM_ARGS=("${BT_MOCK_ARGS[@]:1}") |
| |
| # Expected commands to be run by fpublish.sh. |
| local EXPECTED_PM_PUBLISH_ARGS=( |
| publish |
| -a |
| -r "${FUCHSIA_WORK_DIR}/packages/amber-files" |
| -f "${PACKAGE_NAME}" |
| ) |
| |
| BT_EXPECT_EQ ${#EXPECTED_PM_PUBLISH_ARGS[@]} ${#PM_ARGS[@]} |
| for i in "${!EXPECTED_PM_PUBLISH_ARGS[@]}"; do |
| if [[ "$i" == "0" ]]; then |
| # The path to pm isn't relevant. The fact that the pm mock state is |
| # available is sufficient verification that pm was called. |
| continue |
| fi |
| BT_EXPECT_EQ "${EXPECTED_PM_PUBLISH_ARGS[$i]}" "${PM_ARGS[$i]}" |
| done |
| |
| # Verify that pm was only run once. |
| BT_EXPECT_FILE_DOES_NOT_EXIST "${MOCKED_PM}.mock_state.1" |
| } |
| |
| # Test initialization. |
| # shellcheck disable=SC2034 |
| BT_FILE_DEPS=( |
| scripts/sdk/gn/base/bin/fpublish.sh |
| scripts/sdk/gn/base/bin/fuchsia-common.sh |
| scripts/sdk/gn/bash_tests/gn-bash-test-lib.sh |
| ) |
| # shellcheck disable=SC2034 |
| BT_MOCKED_TOOLS=( |
| scripts/sdk/gn/base/tools/x64/pm |
| scripts/sdk/gn/base/tools/arm64/pm |
| ) |
| |
| BT_SET_UP() { |
| # shellcheck disable=SC1090 |
| source "${BT_TEMP_DIR}/scripts/sdk/gn/bash_tests/gn-bash-test-lib.sh" |
| |
| # Make "home" directory in the test dir so the paths are stable." |
| mkdir -p "${BT_TEMP_DIR}/test-home" |
| export HOME="${BT_TEMP_DIR}/test-home" |
| FUCHSIA_WORK_DIR="${HOME}/.fuchsia" |
| |
| MOCKED_PM="${BT_TEMP_DIR}/scripts/sdk/gn/base/$(gn-test-tools-subdir)/pm" |
| |
| } |
| |
| BT_RUN_TESTS "$@" |