mirror of
https://github.com/sstephenson/bats.git
synced 2025-12-07 08:53:30 +01:00
Merge b1c66391cd into 03608115df
This commit is contained in:
commit
270815ec5f
19
install.sh
19
install.sh
|
|
@ -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*
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 ]
|
||||||
|
}
|
||||||
14
test/fixtures/bats/stdout_stderr_separate.bats
vendored
Normal file
14
test/fixtures/bats/stdout_stderr_separate.bats
vendored
Normal 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" ]
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user