|  | #!/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 symbolize loglistener symbol_index | 
|  |  | 
|  | BT_SET_UP() { | 
|  | source "${BT_TEMP_DIR}/tools/devshell/tests/lib/fuchsia-mock.sh" | 
|  | fx="$(btf::setup_fx)" | 
|  | symbolize="$(btf::make_hosttools_mock symbolize)" | 
|  | loglistener="$(btf::make_installed_hosttools_mock loglistener)" | 
|  | symbol_index="$(btf::make_hosttools_mock symbol-index)" | 
|  | } | 
|  |  | 
|  | TEST_klog_local() { | 
|  | BT_EXPECT ${fx} klog --legacy | 
|  | source "${symbolize}.mock_state" | 
|  | local symbol_args="$(count_symbol_server_args)" | 
|  | BT_EXPECT_EQ "${symbol_args}" "0" "symbolize should not get any -symbol-server arguments: ${symbol_args}" | 
|  | } | 
|  |  | 
|  | TEST_klog_remote() { | 
|  | BT_EXPECT ${fx} klog --legacy -r | 
|  | source "${symbolize}.mock_state" | 
|  | local symbol_args="$(count_symbol_server_args)" | 
|  | BT_EXPECT_EQ $((symbol_args>0)) "1" "symbolize should get at least one -symbol-server argument: ${symbol_args}" | 
|  | } | 
|  |  | 
|  | TEST_klog_remote_long() { | 
|  | BT_EXPECT ${fx} klog --legacy --remote-symbols | 
|  | source "${symbolize}.mock_state" | 
|  | local symbol_args="$(count_symbol_server_args)" | 
|  | BT_EXPECT_EQ $((symbol_args>0)) "1" "symbolize 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 "$@" |