1
0
mirror of https://github.com/sstephenson/bats.git synced 2025-12-07 08:53:30 +01:00
This commit is contained in:
Konstantin Gredeskoul 2019-07-11 03:15:04 +00:00 committed by GitHub
commit 270815ec5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 44 additions and 10 deletions

View File

@ -28,10 +28,17 @@ if [ -z "$1" ]; then
fi fi
BATS_ROOT="$(abs_dirname "$0")" BATS_ROOT="$(abs_dirname "$0")"
mkdir -p "$PREFIX"/{bin,libexec,share/man/man{1,7}} echo "Installing binaries..."
cp -R "$BATS_ROOT"/bin/* "$PREFIX"/bin
cp -R "$BATS_ROOT"/libexec/* "$PREFIX"/libexec
cp "$BATS_ROOT"/man/bats.1 "$PREFIX"/share/man/man1
cp "$BATS_ROOT"/man/bats.7 "$PREFIX"/share/man/man7
echo "Installed Bats to $PREFIX/bin/bats" [[ -d "$PREFIX"/share/bats ]] || mkdir -p "$PREFIX"/share/bats
[[ -d "$PREFIX"/bin ]] || mkdir -p "$PREFIX"/bin
cp -Rv "$BATS_ROOT"/libexec/* "$PREFIX"/share/bats
for binary in $(ls -1 libexec); do
ln -svf "$PREFIX"/share/bats/${binary} "$PREFIX"/bin/${binary}
done
echo "Installed bats into ${PREFIX}/bin:"
ls -al ${PREFIX}/bin/bats*

View File

@ -48,17 +48,25 @@ load() {
} }
run() { run() {
local e E T oldIFS local e E T oldIFS
[[ ! "$-" =~ e ]] || e=1 [[ ! "$-" =~ e ]] || e=1
[[ ! "$-" =~ E ]] || E=1 [[ ! "$-" =~ E ]] || E=1
[[ ! "$-" =~ T ]] || T=1 [[ ! "$-" =~ T ]] || T=1
set +e set +e
set +E set +E
set +T set +T
output="$("$@" 2>&1)"
status="$?" eval "$({ t_sdterr=$({ t_stdout=$("$@"); t_ret=$?; } 2>&1; declare -p t_stdout >&2; declare -pi t_ret >&2); declare -p t_sdterr; } 2>&1)"
status=$t_ret
output="${t_stdout}${t_sdterr}"
stdout=$t_stdout
stderr=$t_sdterr
oldIFS=$IFS oldIFS=$IFS
IFS=$'\n' lines=($output) IFS=$'\n' lines=($output)
IFS=$'\n' stdlines=($t_stdout)
IFS=$'\n' errlines=($t_sdterr)
[ -z "$e" ] || set -e [ -z "$e" ] || set -e
[ -z "$E" ] || set -E [ -z "$E" ] || set -E
[ -z "$T" ] || set -T [ -z "$T" ] || set -T

View File

@ -39,7 +39,7 @@ begin() {
pass() { pass() {
go_to_column 0 go_to_column 0
printf " ✓ %s" "$name" printf " $(set_color 2)$(clear_color) %s" "$name"
advance advance
} }

View File

@ -262,3 +262,8 @@ fixtures bats
[ $status -eq 0 ] [ $status -eq 0 ]
[ "${lines[1]}" = "ok 1 loop_func" ] [ "${lines[1]}" = "ok 1 loop_func" ]
} }
@test "testing stdout and stderr are separated" {
run bats "$FIXTURE_ROOT/stdout_stderr_separate.bats"
[ $status -eq 0 ]
}

View File

@ -0,0 +1,14 @@
# see issue #89
echo_std_err() {
echo "std output"
(>&2 echo "err output")
return 0
}
@test "std err" {
run echo_std_err
[ $status -eq 0 ]
[ "${stdout}" = "std output" ]
[ "${stderr}" = "err output" ]
[ "${output}" = "std outputerr output" ]
}