1# Copyright 2021 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15# Compares two strings and prints out an error message if they are not equal
16StrEq() {
17  if [ "$1" != "$2" ]; then
18    echo "${BASH_SOURCE[1]}:${BASH_LINENO[0]} Mismatched strings" >&2
19    echo "  Expected: $2" >&2
20    echo "  Got:      $1" >&2
21    exit 1
22  fi
23}
24
25TESTS=()
26
27# Runs tests and emits output specified by the Test Anything Protocol
28# https://testanything.org/
29TestAnythingMain() {
30  set -o nounset
31  set -o errexit
32  set -o pipefail
33
34  echo "TAP version 13"
35  echo "1..${#TESTS[@]}"
36
37  local i
38  for ((i=0; i <${#TESTS[@]}; ++i)); do
39    local t="${TESTS[i]}"
40    local tap_i=$((i + 1))
41    if ! "$t"; then
42      printf "not "
43    fi
44    printf "ok %d - %s\n" "$tap_i" "$t"
45  done
46}
47