1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/bin/bash
- # tfkit - Shellfu's movable test framework
- # See LICENSE file for copyright and license details.
-
- TF_VERSION="0.0.15"
-
- die() {
- echo "$@" && exit 9
- }
-
- usage() {
- echo "usage: $(basename "$0") [-c|-C] [-t tests_re] [-s subtest_re] [-p binpath] [-v] [-d]" >&2
- exit 2
- }
-
- version() {
- echo "TFKit (A trivial test kit) $TF_VERSION"
- exit 0
- }
-
- LC_ALL=C
-
- #
- # Artifact directory path
- #
- TF_ARTIFACTS="${TF_ARTIFACTS:-artifacts}"
-
- #
- # Artifact collection mode
- #
- # 'always' to always collect, 'never` to never collect and 'auto'
- # to collect only on failed tests.
- #
- TF_COLLECT="${TF_COLLECT:-auto}"
-
- #
- # Enable color?
- #
- TF_COLOR=${TF_COLOR:-true}
-
- #
- # Turn on debug mode?
- #
- TF_DEBUG="${TF_DEBUG:-false}"
-
- #
- # Location of own directory
- #
- TF_DIR=${TF_DIR:-$(dirname "$0")}
-
- #
- # Regex (BRE) to filter subtests based on name
- #
- TF_FILTER_SUBTEST=${TF_FILTER_SUBTEST:-}
-
- #
- # Regex (BRE) to filter tests based on name
- #
- TF_FILTER_TEST=${TF_FILTER_TEST:-}
-
- #
- # Location of test suite
- #
- TF_SUITE="${TF_SUITE:-tests}"
-
- #
- # Turn on verbosity?
- #
- TF_VERBOSE=${TF_VERBOSE:-true}
-
- while true; do case "$1" in
- -c|--collect) TF_COLLECT=always; shift ;;
- -C|--no-collect) TF_COLLECT=never; shift ;;
- -d|--debug) TF_DEBUG=true; shift ;;
- -p|--prefix) export PATH="$(readlink -f "$2")/bin:$PATH"
- shift 2 || usage ;;
- -s|--filter-subtest) TF_FILTER_SUBTEST="$2"; shift 2 || usage ;;
- -t|--filter-test) TF_FILTER_TEST="$2"; shift 2 || usage ;;
- -v|--verbose) TF_VERBOSE=true; shift ;;
- --version-semver) echo "$TF_VERSION"; exit 0 ;;
- --version) version ;;
- "") break ;;
- *) usage ;;
- esac done
-
- export LC_ALL
- export TF_DIR TF_SUITE TF_ARTIFACTS
- export TF_COLLECT TF_FILTER_SUBTEST TF_FILTER_TEST
- export TF_DEBUG TF_VERBOSE
- export TF_VERSION
-
- . "$TF_DIR/include/harness.sh" \
- || die "cannot import harness; is TF_DIR set properly?: $TF_DIR"
-
- time tf_run_tests
|