#!/usr/bin/env bash set -u usage() { cat <&2 exit_code=2 continue fi for f in "${files[@]}"; do out=$(TEST_FILE_LABEL="$f" nvim --headless --clean \ -c "set rtp+=$ROOT" \ -c "lua package.path = package.path .. ';$ROOT/test/?.lua'" \ -c "luafile $f" \ -c "qa!" \ 2>&1) rc=$? # Split the per-file results from any output. results_line=$(printf '%s\n' "$out" | grep '^RESULTS ' | tail -1) printf '%s\n' "$out" | grep -v '^RESULTS ' if [[ -n "$results_line" ]]; then read -r _ p f_count <<<"$results_line" total_passed=$((total_passed + p)) total_failed=$((total_failed + f_count)) fi if [[ $rc -ne 0 ]]; then exit_code=$rc fi done done printf '\n' if [[ $total_failed -gt 0 ]]; then printf '%s%d passed%s, %s%d failed%s\n' \ "$green" "$total_passed" "$reset" \ "$red" "$total_failed" "$reset" else printf '%s%d passed%s\n' "$green" "$total_passed" "$reset" fi exit "$exit_code"