| #!/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. |
| |
| # Unit tests for //tools/devshell/lib/metrics.sh |
| # |
| # Usage: metrics-tests |
| |
| set -o errexit |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")"/../../tools/devshell/lib >/dev/null 2>&1 && pwd)"/vars.sh || exit $? |
| |
| set -o nounset |
| # Read in the test framework and the library to test |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")"/lib >/dev/null 2>&1 && pwd)"/common.sh || exit $? |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")"/../../tools/devshell/lib >/dev/null 2>&1 && pwd)"/metrics.sh || exit $? |
| |
| function test::run_command_with_metrics_disabled { |
| _config_file="$(mktemp)" |
| _debug_file="$(mktemp)" |
| _enable_testing "${_debug_file}" 0 "${_config_file}" |
| metrics-write-config 0 "TEST" |
| metrics-read-config |
| track-command-execution "shell" "ls /" |
| |
| # debug file is expected to be empty because debug is disabled |
| if [[ ! -s "$_debug_file" ]]; then |
| return 0 |
| else |
| return 1 |
| fi |
| } |
| |
| function test::run_command_with_metrics_enabled { |
| _config_file="$(mktemp)" |
| _debug_file="$(mktemp)" |
| _enable_testing "${_debug_file}" 0 "${_config_file}" |
| metrics-write-config 1 "TEST" |
| metrics-read-config |
| track-command-execution "shell" "ls /" |
| |
| # debug file is expected to be non-empty because debug is enabled |
| if [[ -s "$_debug_file" ]]; then |
| return 0 |
| else |
| return 1 |
| fi |
| } |
| |
| function test::enable_metrics { |
| _config_file="$(mktemp)" |
| _debug_file="$(mktemp)" |
| _enable_testing "${_debug_file}" 0 "${_config_file}" |
| local enable=1 |
| local test_uuid="__TEST__" |
| metrics-write-config $enable "$test_uuid" |
| metrics-read-config |
| |
| track-command-execution "shell" "ls /" |
| |
| # debug file is expected to contain the test UUID |
| if [[ -s "$_debug_file" && $(grep "$test_uuid" "$_debug_file") ]]; then |
| return 0 |
| else |
| return 1 |
| fi |
| } |
| |
| |
| test_main "$@" |
| |