| #!/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 the fx-update-path function from //scripts/fx-env.sh | |
| BT_FILE_DEPS=( | |
| "scripts/fx-env.sh" | |
| "tools/devshell/lib/platform.sh" | |
| "tools/devshell/lib/vars.sh" | |
| ) | |
| FUCHSIA_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../.." >/dev/null 2>&1 && pwd)" | |
| TEST_fx_update_path() { | |
| . "${FUCHSIA_DIR}/scripts/fx-env.sh" | |
| BT_ASSERT_FUNCTION_EXISTS fx-update-path | |
| # make sure $FUCHSIA_DIR isn't in the path | |
| BT_ASSERT [[ "${PATH#*${FUCHSIA_DIR}}" == "${PATH}" ]] | |
| fx-update-path | |
| # make sure jiri and git directories are in the path | |
| for d in "${FUCHSIA_DIR}/.jiri_root/bin" "${FUCHSIA_DIR}/scripts/git"; do | |
| BT_ASSERT [[ ":${PATH#*:${d}:}:" != ":${PATH}:" ]] | |
| done | |
| # change FUCHSIA_DIR to a newly named symlink to the current one | |
| readonly OLD_FUCHSIA_DIR="${FUCHSIA_DIR}" | |
| readonly TEMP_DIR="$(mktemp -d -t new-fuchsia-dir-XXXXXXXXX)" | |
| FUCHSIA_DIR="${TEMP_DIR}/fuchsia" | |
| ln -s "${OLD_FUCHSIA_DIR}" "${FUCHSIA_DIR}" | |
| # make sure the new $FUCHSIA_DIR isn't in the path | |
| BT_ASSERT [[ "${PATH#*${FUCHSIA_DIR}}" == "${PATH}" ]] | |
| fx-update-path | |
| # make sure the old $FUCHSIA_DIR isn't in the path | |
| BT_ASSERT [[ "${PATH#*${OLD_FUCHSIA_DIR}}" == "${PATH}" ]] | |
| # make sure jiri and git directories are in the path | |
| for d in "${FUCHSIA_DIR}/.jiri_root/bin" "${FUCHSIA_DIR}/scripts/git"; do | |
| BT_ASSERT [[ ":${PATH#*:${d}:}:" != ":${PATH}:" ]] | |
| done | |
| } | |
| BT_RUN_TESTS "$@" |