summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2025-04-15 10:40:30 -0400
committerTavian Barnes <tavianator@tavianator.com>2025-04-16 10:04:47 -0400
commit7102fec257835302cb4978160bba4cbebd0b63e1 (patch)
treee3834b7a8054f17426decfb4518e3f53e0d73c35
parent52e1a31d6513fe9179f756b61881b5f440d2972e (diff)
downloadbfs-7102fec257835302cb4978160bba4cbebd0b63e1.tar.xz
tests: Switch from unbuffer to ptyx
unbuffer is part of expect, which is not actively maintained. This recently led to a CI failure on NetBSD which looked like can't find package Expect while executing "package require Expect" (file "/usr/pkg/bin/unbuffer" line 6) Rather than debug this, I just reimplemented unbuffer myself. This also reduces our test dependencies, which is nice. Link: https://sourceforge.net/p/expect/bugs/107/ Link: https://github.com/tavianator/bfs/actions/runs/14421150823/job/40444068385
-rw-r--r--.github/workflows/ci.yml15
-rw-r--r--.github/workflows/codecov.yml1
-rw-r--r--tests/run.sh10
-rw-r--r--tests/util.sh1
4 files changed, 5 insertions, 22 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8e34313..e9c3f8e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,7 +16,6 @@ jobs:
sudo dpkg --add-architecture i386
sudo apt-get update -y
sudo apt-get install -y \
- expect \
mandoc \
gcc-multilib \
libgcc-s1:i386 \
@@ -57,7 +56,6 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y \
- expect \
mandoc \
acl \
libacl1-dev \
@@ -110,10 +108,8 @@ jobs:
run: |
sudo pkg install -y \
bash \
- expect \
oniguruma \
- pkgconf \
- tcl-wrapper
+ pkgconf
sudo mount -t fdescfs none /dev/fd
.github/diag.sh make -j$(nproc) distcheck
@@ -139,7 +135,6 @@ jobs:
run: |
sudo pkg_add \
bash \
- expect \
gmake \
oniguruma
jobs=$(sysctl -n hw.ncpu)
@@ -170,8 +165,7 @@ jobs:
sudo pkgin -y install \
bash \
oniguruma \
- pkgconf \
- tcl-expect
+ pkgconf
jobs=$(sysctl -n hw.ncpu)
./configure
.github/diag.sh make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
@@ -198,11 +192,9 @@ jobs:
prepare: |
pkg install -y \
bash \
- expect \
oniguruma \
pkgconf \
- sudo \
- tcl-wrapper
+ sudo
pw useradd -n action -m -G wheel -s /usr/local/bin/bash
echo "%wheel ALL=(ALL) NOPASSWD: ALL" >>/usr/local/etc/sudoers
@@ -235,7 +227,6 @@ jobs:
pkg install \
bash \
build-essential \
- expect \
gnu-make \
onig \
sudo
diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml
index 4cce8ed..e4e8f71 100644
--- a/.github/workflows/codecov.yml
+++ b/.github/workflows/codecov.yml
@@ -13,7 +13,6 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y \
- expect \
gcc \
acl \
libacl1-dev \
diff --git a/tests/run.sh b/tests/run.sh
index e3a4e3f..8d3a5d2 100644
--- a/tests/run.sh
+++ b/tests/run.sh
@@ -362,20 +362,12 @@ invoke_bfs() {
fi
}
-if command -v unbuffer &>/dev/null; then
- UNBUFFER=unbuffer
-elif command -v expect_unbuffer &>/dev/null; then
- UNBUFFER=expect_unbuffer
-fi
-
# Run bfs with a pseudo-terminal attached
bfs_pty() {
- test -n "${UNBUFFER:-}" || skip
-
bfs_verbose "$@"
local ret=0
- "$UNBUFFER" bash -c 'stty cols 80 rows 24 && "$@" </dev/null' bash "${BFS[@]}" "$@" || ret=$?
+ "$PTYX" -w80 -h24 -- "${BFS[@]}" "$@" || ret=$?
if ((ret > 125)); then
exit $ret
diff --git a/tests/util.sh b/tests/util.sh
index d8b7036..b846d45 100644
--- a/tests/util.sh
+++ b/tests/util.sh
@@ -16,6 +16,7 @@ ROOT=$(_realpath "$(dirname -- "$TESTS")")
TESTS="$ROOT/tests"
BIN="$ROOT/bin"
MKSOCK="$BIN/tests/mksock"
+PTYX="$BIN/tests/ptyx"
XTOUCH="$BIN/tests/xtouch"
UNAME=$(uname)