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