| #!/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 klog | 
 |  | 
 |  | 
 | 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" | 
 |   "tools/devshell/klog" | 
 | ) | 
 |  | 
 | declare fx symbolizer loglistener 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)" | 
 |   loglistener="$(btf::make_installed_hosttools_mock loglistener)" | 
 |   symbol_index="$(btf::make_hosttools_mock symbol-index)" | 
 | } | 
 |  | 
 | TEST_klog_local() { | 
 |   BT_EXPECT ${fx} klog --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_klog_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} klog --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 "$@" |