On Fri, 09 Dec 2022 at 13:45:17 +0000, Simon McVittie wrote:
> On Thu, 08 Dec 2022 at 21:55:07 +0100, Paul Gevers wrote:
> > With a recent upload of libsdl2 the autopkgtest of cataclysm-dda fails in
> > testing when that autopkgtest is run with the binary packages of libsdl2
> > from unstable. It passes when run with only packages from testing. In
> > tabular form:
> > 
> >                        pass            fail
> > libsdl2                from testing    2.26.0+dfsg-1
> > cataclysm-dda          from testing    0.F-3-8
> > all others             from testing    from testing
> 
> The test is to:
> 
> * run cataclysm-tiles in the background
> * wait 15 seconds
> * focus the cataclysm-tiles window
> * take a screenshot
> * use tesseract to do OCR on the window contents
> * look for some specific strings in the window contents
...
> I can reproduce this with a lxc container inside a bookworm VM:
> 
>     $ sudo autopkgtest-build-lxc debian bookworm amd64
>     $ apt download libsdl2-2.0-0=2.26.0+dfsg-1
>     $ rm -fr ~/artifacts; \
>       autopkgtest \
>           --no-built-binaries \
>           --shell-fail \
>           -o ~/artifacts \
>           ~/libsdl2-2.0-0_2.26.0+dfsg-1_amd64.deb \
>           . \
>           -- lxc --sudo autopkgtest-bookworm-amd64

I can also reproduce this by poking a specific libSDL2-2.0.so.0 into the
container like this:

    $ rm -fr ~/artifacts;
      autopkgtest \
      --no-built-binaries \
      --test-name=command1 \
      --copy 
~/libsdl2-2.0-0_2.26.0+dfsg-1_amd64/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.2600.0:/test/libSDL2-2.0.so.0
 \
      --env=LD_LIBRARY_PATH=/test \
      -o ~/artifacts \
      . \
      -- lxc --sudo autopkgtest-bookworm-amd64

which lets me bisect SDL (in progress) with commands like:

    $ rm -fr ~/artifacts;
      ./autogen.sh && \
      ./configure && \
      make -j5 && \
      autopkgtest \
      --no-built-binaries \
      --test-name=command1 \
      --copy $(readlink -f build/.libs/libSDL2-2.0.so.0):/test/libSDL2-2.0.so.0 
\
      --env=LD_LIBRARY_PATH=/test \
      -o ~/artifacts \
      /path/to/cataclysm-dda \
      -- lxc --sudo autopkgtest-bookworm-amd64

Meanwhile, I also have what I think is a workaround: if d/tests/control
and d/tests/cataclysm-tiles install and run a window manager in the Xvfb
environment (I used openbox), then it seems cataclysm-tiles becomes
correctly full-screen. This seems like a more realistic test-case anyway,
because in reality Debian users are going to run cataclysm-tiles in an
X11 or Wayland session with a working X11 window manager.

    smcv
>From a1dadc03c10fd4ad1b81da96e32df19ed777a283 Mon Sep 17 00:00:00 2001
From: Simon McVittie <s...@debian.org>
Date: Fri, 9 Dec 2022 14:03:03 +0000
Subject: [PATCH] d/tests/test-tiles: Run a window manager inside Xvfb

With SDL 2.26, it seems that under some circumstances (lxc but not qemu
or podman, for some reason), the window won't become fullscreen without
a window manager being present.

Games are generally designed to run under a window manager, so it
isn't a huge problem if they misbehave without one. Add a simple window
manager (openbox) to make this test more realistic.

Closes: #1025775
Signed-off-by: Simon McVittie <s...@debian.org>
---
 debian/tests/control    | 2 +-
 debian/tests/test-tiles | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/debian/tests/control b/debian/tests/control
index 86c92df4..4048a43a 100644
--- a/debian/tests/control
+++ b/debian/tests/control
@@ -4,4 +4,4 @@ Depends: cataclysm-dda-curses, expect, locales-all
 
 Test-Command: timeout -v 5m xvfb-run -s "-wr" debian/tests/test-tiles
 Restrictions: allow-stderr, superficial
-Depends: cataclysm-dda-sdl, xvfb, xauth, xdotool, scrot, tesseract-ocr, locales-all, pulseaudio
+Depends: cataclysm-dda-sdl, openbox, xvfb, xauth, xdotool, scrot, tesseract-ocr, locales-all, pulseaudio
diff --git a/debian/tests/test-tiles b/debian/tests/test-tiles
index 3aaa133a..3d9f04a5 100755
--- a/debian/tests/test-tiles
+++ b/debian/tests/test-tiles
@@ -21,7 +21,8 @@ export LANG=en_US.UTF-8
 # cdda needs audio or it won't start (#59464)
 export SDL_AUDIODRIVER=dummy
 
-# start cdda and wait a bit
+# start cdda and a window manager, and wait a bit
+openbox &
 cataclysm-tiles &
 PID=$!
 sleep 15
-- 
2.38.1

Reply via email to