otpcli/t/lib.sh
Lucas 2fe090286d Rework tests
Split along multiple files, produce TAP output, rely on Perl's prove for
running them. Improves clarity and hopefully makes it easier to add new
tests in the future.
2021-02-12 22:58:09 +00:00

53 lines
1.1 KiB
Bash

#!/bin/sh
# otpcli - command-line interface for HOTP and TOTP
#
# Written in 2021 by Lucas
#
# To the extent possible under law, the author(s) have dedicated all
# copyright and related and neighboring rights to this software to the
# public domain worldwide. This software is distributed without any
# warranty.
#
# You should have received a copy of the CC0 Public Domain Dedication
# along with this software. If not, see
# <http://creativecommons.org/publicdomain/zero/1.0/>.
# Produces TAP (Test Anything Protocol) output
# plan number_of_tests [directive]
plan()
{
_n=$1
shift
if [ -n "$*" ]; then
printf "1..%u # %s\n" "$_n" "$*"
else
printf "1..%u\n" "$_n"
fi
_counter=1
}
# check description expected command [args...]
check()
{
_description=$1 _expected=$2
shift 2
_got=$("${@:-:}")
_rc=0
if [ "$_got" != "$_expected" ]; then
printf "not ok %u - %s\n" "$_counter" "$_description"
printf " # Failed test at %s.\n" "$0"
printf " # got: '%s'\n" "$_got"
printf " # expected: '%s'\n" "$_expected"
_rc=1
else
printf "ok %u - %s\n" "$_counter" "$_description"
fi
_counter=$(($_counter + 1))
return $_rc
}