summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bfs/color_auto.sh4
-rw-r--r--tests/bfs/nocolor_env.sh2
-rw-r--r--tests/bfs/status.sh4
-rwxr-xr-xtests/tests.sh14
4 files changed, 17 insertions, 7 deletions
diff --git a/tests/bfs/color_auto.sh b/tests/bfs/color_auto.sh
index aa2eb02..7e875cc 100644
--- a/tests/bfs/color_auto.sh
+++ b/tests/bfs/color_auto.sh
@@ -1,6 +1,4 @@
-command -v unbuffer &>/dev/null || skip
-
unset NO_COLOR
-unbuffer "${BFS[@]}" rainbow >"$OUT"
+bfs_pty rainbow >"$OUT"
sort_output
diff_output
diff --git a/tests/bfs/nocolor_env.sh b/tests/bfs/nocolor_env.sh
index 399bdb0..0a17fb2 100644
--- a/tests/bfs/nocolor_env.sh
+++ b/tests/bfs/nocolor_env.sh
@@ -1,5 +1,5 @@
command -v unbuffer &>/dev/null || skip
-NO_COLOR=1 unbuffer "${BFS[@]}" rainbow >"$OUT"
+NO_COLOR=1 bfs_pty rainbow >"$OUT"
sort_output
diff_output
diff --git a/tests/bfs/status.sh b/tests/bfs/status.sh
index 30bdfa7..d3859e2 100644
--- a/tests/bfs/status.sh
+++ b/tests/bfs/status.sh
@@ -1,3 +1 @@
-command -v unbuffer &>/dev/null || skip
-
-unbuffer "${BFS[@]}" basic -status >"$OUT"
+bfs_pty basic -status >"$OUT"
diff --git a/tests/tests.sh b/tests/tests.sh
index 61f17b4..5297446 100755
--- a/tests/tests.sh
+++ b/tests/tests.sh
@@ -488,6 +488,20 @@ function invoke_bfs() {
fi
}
+function bfs_pty() {
+ command -v unbuffer &>/dev/null || skip
+
+ bfs_verbose "$@"
+ unbuffer bash -c 'stty cols 80 rows 24 && "$@"' bash "${BFS[@]}" "$@"
+ local status="$?"
+
+ if ((status > 125)); then
+ exit "$status"
+ else
+ return "$status"
+ fi
+}
+
function check_exit() {
local expected="$1"
local actual="0"