| #!/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 behavior from fx helpdoc | |
| BT_FILE_DEPS=( | |
| "scripts/fx" | |
| "scripts/fx-help.awk" | |
| "tools/devshell/helpdoc" | |
| "tools/devshell/lib/vars.sh" | |
| "tools/devshell/lib/prebuilt.sh" | |
| ) | |
| BT_MOCKED_TOOLS=( | |
| "tools/devshell/lib/metrics.sh" | |
| ) | |
| BT_MKDIR_DEPS=( | |
| ".jiri_root" | |
| "helpdoc_out" | |
| ) | |
| BT_SET_UP() { | |
| _FUCHSIA_DIR="${BT_TEMP_DIR}" | |
| _FUCHSIA_BUILD_DIR="${_FUCHSIA_DIR}/out/default" | |
| fx="${_FUCHSIA_DIR}/scripts/fx" | |
| BT_ASSERT_FILE_EXISTS "${fx}" | |
| export PATH="${_FUCHSIA_DIR}/scripts:${PATH}" | |
| # Fake fuchsia dir configuration. | |
| mkdir -p "${_FUCHSIA_BUILD_DIR}" | |
| echo "out/default" > "${_FUCHSIA_DIR}/.fx-build-dir" | |
| touch "${_FUCHSIA_BUILD_DIR}/args.gn" | |
| touch "${_FUCHSIA_BUILD_DIR}/fx.config" | |
| cat > "${_FUCHSIA_DIR}/tools/devshell/lib/metrics.sh.mock_side_effects" <<EOF | |
| function track-command-execution { | |
| echo "" | |
| } | |
| function track-command-finished { | |
| echo "" | |
| } | |
| EOF | |
| cd "${BT_TEMP_DIR}" | |
| } | |
| # ensure that "fx helpdoc" does not generate docs for vendor commands when | |
| # executed with the default arguments | |
| TEST_check-no-vendor() { | |
| mkdir -p vendor/mycompany/scripts/devshell | |
| local vendor_cmd="vendor_command" | |
| cp "tools/devshell/helpdoc" "vendor/mycompany/scripts/devshell/${vendor_cmd}" | |
| BT_EXPECT fx helpdoc helpdoc_out | |
| BT_EXPECT_EMPTY "$(find "helpdoc_out" -name "${vendor_cmd}*")" | |
| } | |
| # ensure that "fx helpdoc" does generate docs for vendor commands when | |
| # executed with the "--vendor" argument | |
| TEST_check-no-vendor() { | |
| mkdir -p vendor/mycompany/scripts/devshell | |
| local vendor_cmd="vendor_command" | |
| cp "tools/devshell/helpdoc" "vendor/mycompany/scripts/devshell/${vendor_cmd}" | |
| BT_EXPECT fx helpdoc --vendor helpdoc_out | |
| BT_EXPECT_NOT_EMPTY "$(find "helpdoc_out" -name "${vendor_cmd}*")" | |
| } | |
| # ensure that paths in _toc.yaml files created by "fx helpdoc" have the | |
| # correct prefix | |
| TEST_check-paths() { | |
| local prefix="/mycustom_path/should/work" | |
| BT_EXPECT fx helpdoc --toc-prefix "${prefix}" helpdoc_out | |
| BT_EXPECT_EMPTY "$(find "helpdoc_out" -name "*_toc.yaml" | xargs grep -E "^\s*(path|include):" | grep -v -E "\s${prefix}")" | |
| } | |
| BT_RUN_TESTS "$@" |