tests
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
emulate_bats_env() {
|
||||
export BATS_CWD="$PWD"
|
||||
export BATS_TEST_FILTER=
|
||||
export BATS_ROOT_PID=$$
|
||||
export BATS_RUN_TMPDIR
|
||||
BATS_RUN_TMPDIR=$(mktemp -d "${BATS_RUN_TMPDIR}/emulated-tmpdir-${BATS_ROOT_PID}-XXXXXX")
|
||||
REENTRANT_RUN_PRESERVE+=(BATS_CWD BATS_TEST_FILTER BATS_ROOT_PID BATS_RUN_TMPDIR)
|
||||
export BATS_LINE_REFERENCE_FORMAT=comma_line
|
||||
export BATS_BEGIN_CODE_QUOTE='`'
|
||||
export BATS_END_CODE_QUOTE="'"
|
||||
export BATS_CODE_QUOTE_STYLE="\`'"
|
||||
}
|
||||
|
||||
fixtures() {
|
||||
FIXTURE_ROOT="$BATS_TEST_DIRNAME/fixtures/$1"
|
||||
# shellcheck disable=SC2034
|
||||
RELATIVE_FIXTURE_ROOT="${FIXTURE_ROOT#"$BATS_CWD"/}"
|
||||
}
|
||||
|
||||
filter_control_sequences() {
|
||||
local status=0
|
||||
"$@" | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' || status=$?
|
||||
return "$status"
|
||||
}
|
||||
|
||||
if ! command -v tput >/dev/null; then
|
||||
tput() {
|
||||
printf '1000\n'
|
||||
}
|
||||
export -f tput
|
||||
fi
|
||||
|
||||
emit_debug_output() {
|
||||
# shellcheck disable=SC2154
|
||||
printf '%s\n' 'output:' "$output" >&2
|
||||
}
|
||||
|
||||
execute_with_unset_bats_vars() { # <command to execute...>
|
||||
for var_to_delete in "${!BATS_@}"; do
|
||||
for var_to_exclude in "${REENTRANT_RUN_PRESERVE[@]-}"; do
|
||||
# is this var excluded -> skip unset
|
||||
if [[ $var_to_delete == "$var_to_exclude" ]]; then
|
||||
continue 2
|
||||
fi
|
||||
done
|
||||
unset "$var_to_delete"
|
||||
done
|
||||
"$@"
|
||||
}
|
||||
|
||||
REENTRANT_RUN_PRESERVE+=(BATS_SAVED_PATH BATS_ROOT BATS_TEST_TAGS BATS_PARALLEL_BINARY_NAME BATS_LIBDIR)
|
||||
|
||||
# call run with all BATS_* variables purged from the environment
|
||||
reentrant_run() { # <same args as run>
|
||||
# take up all args to run except the command,
|
||||
# to avoid having to deal with empty arrays in Bash 3
|
||||
local -a pre_command_args=()
|
||||
|
||||
# remove all flags to run to leave the command in $@
|
||||
while [[ $1 == -* || $1 == ! ]]; do
|
||||
pre_command_args+=("$1")
|
||||
if [[ "$1" == -- ]]; then
|
||||
shift
|
||||
break
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
# put that here to ensure Bash 3 won't have to deal with empty pre_command_args
|
||||
pre_command_args+=(execute_with_unset_bats_vars)
|
||||
|
||||
run "${pre_command_args[@]}" "$@"
|
||||
}
|
||||
Reference in New Issue
Block a user