#!/bin/bash set -e DIRECTORY="$(dirname "$0")" BINARY="$1" SPECIFIC_TEST="$2" TEMP_DIR_BASE=$(pwd)/$DIRECTORY/.tmp TEMP_BINARY_PATH=$TEMP_DIR_BASE/bin TEMP_FNM_DIR=$TEMP_DIR_BASE/.fnm if [ "$BINARY" == "" ]; then echo "No binary supplied!" exit 1 fi echo "using fnm=$BINARY" rm -rf "$TEMP_DIR_BASE" mkdir "$TEMP_DIR_BASE" "$TEMP_BINARY_PATH" cp "$BINARY" "$TEMP_BINARY_PATH/fnm" run_test() { test_file="$1" rm -rf "$TEMP_FNM_DIR" TEST_BASENAME="$(basename "$test_file")" TEST_DIRNAME="$(dirname "$test_file")" echo "Running test in $test_file" echo "Running test in $test_file" | sed "s/./-/g" (cd "$TEST_DIRNAME" && FNM_DIR="$TEMP_FNM_DIR" PATH="$TEMP_BINARY_PATH:$PATH" bash "$TEST_BASENAME") echo "" echo " -> Finished!" rm -rf "$TEMP_FNM_DIR" } if [ "$SPECIFIC_TEST" == "" ]; then for test_file in "$DIRECTORY"/*/run.sh; do run_test "$test_file" done else run_test "$SPECIFIC_TEST" fi