diff --git a/.gitignore b/.gitignore index 1b6fc94..c093afd 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -test/assert.sh \ No newline at end of file +test/assert.sh +test-runner.sh \ No newline at end of file diff --git a/Makefile b/Makefile index f7edfb9..c707467 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,38 @@ -test: prepare - ./test.sh +test: bootstrap + ./test-runner.sh -prepare: - test -f "test/assert.sh" || ( \ +bootstrap: test-runner.sh test/assert.sh + +clean: remove-test-runner.sh remove-assert.sh + +test/assert.sh: + test -f "test/assert.sh" || \ echo "fetching assert.sh..." && \ curl -s -L -o test/assert.sh \ - https://raw.github.com/lehmannro/assert.sh/v1.0.2/assert.sh \ - ) + https://raw.github.com/lehmannro/assert.sh/v1.0.2/assert.sh + +update-assert.sh: remove-assert.sh test/assert.sh + +remove-assert.sh: + ( \ + test -f "test/assert.sh" && rm "test/assert.sh" && \ + echo "removed test/assert.sh"\ + ) || exit 0 + +test-runner.sh: + test -f "test-runner.sh" || \ + echo "fetching test-runner.sh..." && \ + curl -s -L -o test-runner.sh \ + https://github.com/jimeh/test-runner.sh/raw/v0.1.0/test-runner.sh && \ + chmod +x test-runner.sh + +remove-test-runner.sh: + ( \ + test -f "test-runner.sh" && rm "test-runner.sh" && \ + echo "removed test-runner.sh"\ + ) || exit 0 + +update-test-runner.sh: remove-test-runner.sh test-runner.sh .SILENT: -.PHONY: test prepare +.PHONY: test bootstrap diff --git a/test.sh b/test.sh deleted file mode 100755 index 656e3ac..0000000 --- a/test.sh +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env bash - -resolve_link() { - $(type -p greadlink readlink | head -1) $1 -} - -abs_dirname() { - local cwd="$(pwd)" - local path="$1" - - while [ -n "$path" ]; do - cd "${path%/*}" - local name="${path##*/}" - path="$(resolve_link "$name" || true)" - done - - pwd - cd "$cwd" -} - - -testdir="$(abs_dirname "$0")/test" -testfiles="$(find "$testdir" -name "*-test.sh")" - -RET=0 -for testfile in $testfiles; do - echo "" - echo "running: ${testfile/#$(dirname "$testdir")\//}" - cd "$(dirname "$testfile")" - "$testfile" - if [ "$?" != "0" ]; then RET=1; fi -done -echo "" -exit $RET diff --git a/test/__stub_call-test.sh b/test/__stub_call.test.sh similarity index 100% rename from test/__stub_call-test.sh rename to test/__stub_call.test.sh diff --git a/test/__stub_clean-test.sh b/test/__stub_clean.test.sh similarity index 100% rename from test/__stub_clean-test.sh rename to test/__stub_clean.test.sh diff --git a/test/__stub_index-test.sh b/test/__stub_index.test.sh similarity index 100% rename from test/__stub_index-test.sh rename to test/__stub_index.test.sh diff --git a/test/__stub_register-test.sh b/test/__stub_register.test.sh similarity index 100% rename from test/__stub_register-test.sh rename to test/__stub_register.test.sh diff --git a/test/restore-test.sh b/test/restore.test.sh similarity index 100% rename from test/restore-test.sh rename to test/restore.test.sh diff --git a/test/stub-test.sh b/test/stub.test.sh similarity index 100% rename from test/stub-test.sh rename to test/stub.test.sh diff --git a/test/stub_and_echo-test.sh b/test/stub_and_echo.test.sh similarity index 100% rename from test/stub_and_echo-test.sh rename to test/stub_and_echo.test.sh diff --git a/test/stub_and_eval-test.sh b/test/stub_and_eval.test.sh similarity index 100% rename from test/stub_and_eval-test.sh rename to test/stub_and_eval.test.sh diff --git a/test/stub_called-test.sh b/test/stub_called.test.sh similarity index 100% rename from test/stub_called-test.sh rename to test/stub_called.test.sh diff --git a/test/stub_called_at_least_times-test.sh b/test/stub_called_at_least_times.test.sh similarity index 100% rename from test/stub_called_at_least_times-test.sh rename to test/stub_called_at_least_times.test.sh diff --git a/test/stub_called_at_most_times-test.sh b/test/stub_called_at_most_times.test.sh similarity index 100% rename from test/stub_called_at_most_times-test.sh rename to test/stub_called_at_most_times.test.sh diff --git a/test/stub_called_exactly_times-test.sh b/test/stub_called_exactly_times.test.sh similarity index 100% rename from test/stub_called_exactly_times-test.sh rename to test/stub_called_exactly_times.test.sh diff --git a/test/stub_called_times-test.sh b/test/stub_called_times.test.sh similarity index 100% rename from test/stub_called_times-test.sh rename to test/stub_called_times.test.sh diff --git a/test/stub_called_with-test.sh b/test/stub_called_with.test.sh similarity index 100% rename from test/stub_called_with-test.sh rename to test/stub_called_with.test.sh diff --git a/test/stub_called_with_at_least_times-test.sh b/test/stub_called_with_at_least_times.test.sh similarity index 100% rename from test/stub_called_with_at_least_times-test.sh rename to test/stub_called_with_at_least_times.test.sh diff --git a/test/stub_called_with_at_most_times-test.sh b/test/stub_called_with_at_most_times.test.sh similarity index 100% rename from test/stub_called_with_at_most_times-test.sh rename to test/stub_called_with_at_most_times.test.sh diff --git a/test/stub_called_with_exactly_times-test.sh b/test/stub_called_with_exactly_times.test.sh similarity index 100% rename from test/stub_called_with_exactly_times-test.sh rename to test/stub_called_with_exactly_times.test.sh diff --git a/test/stub_called_with_times-test.sh b/test/stub_called_with_times.test.sh similarity index 100% rename from test/stub_called_with_times-test.sh rename to test/stub_called_with_times.test.sh