| #!/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 of fx symbolize |
| |
| |
| BT_FILE_DEPS=( |
| "scripts/fx" |
| "tools/devshell/contrib/lib/symbol-index.sh" |
| "tools/devshell/lib/fx-cmd-locator.sh" |
| "tools/devshell/lib/fx-optional-features.sh" |
| "tools/devshell/lib/vars.sh" |
| "tools/devshell/lib/platform.sh" |
| "tools/devshell/symbolize" |
| ) |
| |
| declare fx symbolizer symbol_index |
| |
| BT_SET_UP() { |
| source "${BT_TEMP_DIR}/tools/devshell/tests/lib/fuchsia-mock.sh" |
| fx="$(btf::setup_fx)" |
| symbolizer="$(btf::make_hosttools_mock symbolizer)" |
| symbol_index="$(btf::make_hosttools_mock symbol-index)" |
| } |
| |
| TEST_symbolize_local() { |
| BT_EXPECT ${fx} symbolize --experimental |
| source "${symbolizer}.mock_state" |
| local symbol_args="$(count_symbol_server_args)" |
| BT_EXPECT_EQ "${symbol_args}" "0" "symbolizer should not get any --symbol-server arguments: ${symbol_args}" |
| } |
| |
| TEST_symbolize_remote() { |
| mkdir -p "${BT_TEMP_DIR}/.home/.fuchsia/debug" |
| touch "${BT_TEMP_DIR}/.home/.fuchsia/debug/googleapi_auth" |
| BT_EXPECT HOME="${BT_TEMP_DIR}/.home" ${fx} symbolize --experimental -r |
| source "${symbolizer}.mock_state" |
| local symbol_args="$(count_symbol_server_args)" |
| BT_EXPECT_EQ $((symbol_args>0)) "1" "symbolizer should get at least one --symbol-server argument: ${symbol_args}" |
| } |
| |
| count_symbol_server_args() { |
| local symbol_server_args=0 |
| for i in "${!BT_MOCK_ARGS[@]}"; do |
| if [[ "${BT_MOCK_ARGS[$i]}" == "--symbol-server" ]]; then |
| ((symbol_server_args++)) |
| fi |
| done |
| echo ${symbol_server_args} |
| } |
| |
| BT_RUN_TESTS "$@" |