[mutter.wiki] Added notes about how to debug failing CI jobs locally



commit 230909a1dbdffdcc86aa11fefb1a4064f0a2e57e
Author: Jonas Ådahl <jadahl gmail com>
Date:   Wed Jan 26 10:56:26 2022 +0000

    Added notes about how to debug failing CI jobs locally

 Debugging.md | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
---
diff --git a/Debugging.md b/Debugging.md
new file mode 100644
index 0000000..c3513a2
--- /dev/null
+++ b/Debugging.md
@@ -0,0 +1,45 @@
+## Reproducing CI test failures locally
+
+1. Create a podman that can run gdb locally using the same image used in CI. The example below uses the tag 
`x86_64-2022-01-20` but this will depend on the image used by the failed CI job. The Fedora version may also 
differ.
+
+```sh
+podman pull registry.gitlab.gnome.org/gnome/mutter/fedora/35:x86_64-2022-01-20
+podman run -t -i --cap-add=SYS_PTRACE registry.gitlab.gnome.org/gnome/mutter/fedora/35:x86_64-2022-01-20 
bash -l
+```
+
+2. Clone, build and install mutter inside the container
+
+```sh
+git clone https://gitlab.gnome.org/[your-user]/mutter.git -b [merge-request-branch]
+cd mutter
+meson build
+ninja -C build install
+```
+
+3. Install debug utilities
+
+```sh
+dnf install -y gdb
+```
+
+4. Replicate a environment. What you need here depends on the test that needs investigation. In the simplest 
case, the following is enough:
+
+```sh
+export XDG_RUNTIME_DIR=$PWD/runtime-dir
+mkdir -p $XDG_RUNTIME_DIR
+./src/tests/meta-dbus-runner.py xvfb-run meson test -C build --setup plain --gdb failing-test-case
+```
+
+The need for `xvfb-run` depends on whether the test case uses the nested backend or the headless backend.
+
+If it involves screen casting, it becomes a bit more complicated:
+
+```sh
+dnf install -y dbus-daemon
+export XDG_RUNTIME_DIR=$PWD/runtime-dir
+mkdir -p $XDG_RUNTIME_DIR
+./src/tests/meta-dbus-runner.py bash -l
+pipewire&
+wireplumber&
+meson test -C build --setup plain --gdb failing-test-case
+```
\ No newline at end of file


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]