fix(tests): replace libexpect with forkpty() for functional tests

Remove dependency on libexpect which had a segfault bug on Arch Linux.

- Replace exp_spawnl() with forkpty() for PTY creation
- Replace exp_expectl() with custom POSIX regex matching
- Update configure.ac to check for forkpty() instead of libexpect
- Update Makefile.am to link with libutil instead of libexpect/libtcl
- Remove expect/tcl packages from all Dockerfiles
- Add Valgrind suppressions for stabber/pthread false positives
This commit is contained in:
2025-12-29 21:19:30 +03:00
parent a179b02f5d
commit caac08a7d7
21 changed files with 514 additions and 68 deletions

View File

@@ -36,8 +36,7 @@ RUN pacman -S --needed --noconfirm \
sqlite \
valgrind \
gdk-pixbuf2 \
qrencode \
expect
qrencode
RUN mkdir -p /usr/src/{stabber,profanity}
@@ -59,10 +58,6 @@ USER root
RUN pacman -U --noconfirm libstrophe-git/libstrophe-git-*.pkg.tar.zst
# Create symlink for libexpect - Arch puts it in versioned subdirectory
# which causes configure to fail with "libexpect not found"
RUN ln -sf /usr/lib/expect5.45.4/libexpect5.45.4.so /usr/lib/libexpect.so
WORKDIR /usr/src
RUN git clone -c http.sslverify=false https://git.jabber.space/devs/stabber