diff --git a/assert.sh b/assert.sh index ffd2b95..8cc6873 100644 --- a/assert.sh +++ b/assert.sh @@ -103,7 +103,7 @@ assert() { (( tests_ran++ )) || : [[ -z "$DISCOVERONLY" ]] || return expected=$(echo -ne "${2:-}") - result="$(eval 2>/dev/null $1 <<< ${3:-})" || true + result="$(eval 2>/dev/null "$1" <<< ${3:-})" || true if [[ "$result" == "$expected" ]]; then [[ -z "$DEBUG" ]] || echo -n . return @@ -119,7 +119,7 @@ assert_raises() { (( tests_ran++ )) || : [[ -z "$DISCOVERONLY" ]] || return status=0 - (eval $1 <<< ${3:-}) > /dev/null 2>&1 || status=$? + (eval "$1" <<< ${3:-}) > /dev/null 2>&1 || status=$? expected=${2:-0} if [[ "$status" -eq "$expected" ]]; then [[ -z "$DEBUG" ]] || echo -n . diff --git a/tests.sh b/tests.sh index e8c1425..ea1411a 100755 --- a/tests.sh +++ b/tests.sh @@ -14,6 +14,16 @@ assert "seq 2" "1\n2" # multi-line output expected assert_raises 'read a; exit $a' 42 "42" # variables still work assert "echo 1; echo 2 # ^" "1\n2" # semicolon required! + +# support for multiline command +MULTILINE=$(cat <