Mercurial > projects > pwm
diff tests/run-tests.sh @ 36:f9501248b6bd
Add tests
author | Guido Berhoerster <guido+pwm@berhoerster.name> |
---|---|
date | Wed, 07 Aug 2019 11:28:07 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/run-tests.sh Wed Aug 07 11:28:07 2019 +0200 @@ -0,0 +1,72 @@ +#!/bin/sh +# +# Copyright (C) 2019 Guido Berhoerster <guido+pwm@berhoerster.name> +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +export PWM="${PWM:-pwm}" + +export LC_ALL=C + +l="$(locale -a | sort | grep -E '^(C|en_US)\.([uU][tT][fF]-?8)$' | head -1)" +if [ -z "$l" ]; then + printf 'no suitable UTF-8 locale found\n' >&2 + exit 1 +fi + +export LC_ALL="$l" +export TESTS_PATH="$(dirname "$0")" +export TESTS_OUTPUT_PATH="${TESTS_OUTPUT_PATH:-${TESTS_PATH}/output}" + +tests_passed=0 +tests_failed=0 + +mkdir -p "${TESTS_OUTPUT_PATH}" || exit 1 + +for t in "${TESTS_PATH}"/test-*.sh; do + [ -r "${t}" ] || break + + export LOGFILE="${TESTS_OUTPUT_PATH}/$(basename "${t}" .sh).log" + export TEST_NAME="$(basename "${t}" .sh)" + + [ -t 1 ] && printf "Running %s" "${t}" + if ${SHELL:-/bin/sh} "$t" >/dev/null 2>"${LOGFILE}"; then + tests_passed=$(( tests_passed + 1 )) + if [ -t 1 ]; then + printf "\rOK " + else + printf "OK %s" "${t}" + fi + else + tests_failed=$(( tests_failed + 1 )) + if [ -t 1 ]; then + printf "\rFAILED " + else + printf "FAILED %s" "${t}" + fi + fi + printf "%s\n" "${t}" +done + +printf -- "-----------\npassed: %3d\nfailed: %3d\ntotal: %3d\n" $tests_passed \ + $tests_failed $(( tests_failed + tests_passed )) + +[ $tests_failed -eq 0 ]