#!/usr/bin/env bash cd "${0%/*}" || exit 1 # shellcheck disable=SC1091 . ./mo PASS=0 FAIL=0 for TEST in tests/*.expected; do export BASE="${TEST%.expected}" export MO_FALSE_IS_EMPTY= echo -n "$BASE ... " ( if [[ -f "${BASE}.sh" ]]; then # Run a shell script if one exists "${BASE}.sh" else # Fall back to using .env and .template # shellcheck disable=SC1090 . "${BASE}.env" echo "Do not read this input" | mo "${BASE}.template" fi ) | diff -U5 - "${TEST}" > "${BASE}.diff" statusCode=$? if [[ $statusCode -ne 0 ]]; then echo "FAIL (status code $statusCode)" FAIL=$(( FAIL + 1 )) else echo "ok" PASS=$(( PASS + 1 )) rm "${BASE}.diff" fi done echo "" echo "Pass: $PASS" echo "Fail: $FAIL" if [[ $FAIL -gt 0 ]]; then exit 1 fi