#!/usr/bin/env bash exit_codes=() TESTS=() for scenario in $(find . -maxdepth 1 -mindepth 1 -type d ! -name script_context); do ./run $scenario & TESTS+=("$!") done for p in ${TESTS[@]}; do wait $p exit_codes+=("$?") done for interaction in $(find script_context/validators -type f); do title=$(basename $interaction) title="${title%.*}" cd script_context && ./test.sh $title exit_codes+=("$?") cd - done for code in ${exit_codes[@]}; do if [ $code -ne 0 ]; then echo "Some test returned non-zero code: $code" exit $code fi done