diff --git a/universal_sanity_test/main.fmf b/universal_sanity_test/main.fmf index 9380605..06bb107 100644 --- a/universal_sanity_test/main.fmf +++ b/universal_sanity_test/main.fmf @@ -1,121 +1,62 @@ -/plan-graphics-sanity-test: - summary: Graphics stack smoke test plan - discover: - how: fmf - provision: - how: local - prepare: - how: shell - script: | - set -x # Enable verbose logging - echo "========================================" - echo "Installing desktop environment and graphics dependencies" - echo "Architecture: $(uname -m)" - echo "OS: $(cat /etc/redhat-release)" - echo "========================================" +summary: Graphics stack smoke tests - # Install full GNOME desktop environment (minimal) - echo "Step 1: Installing GNOME desktop environment..." - dnf groupinstall -y "Server with GUI" || \ - dnf groupinstall -y "GNOME Desktop" || \ - dnf install -y @gnome-desktop +/infrastructure-test: + summary: Graphics infrastructure test (Phases 1-3) + description: | + Validates graphics stack infrastructure: + - Phase 1: System info and prerequisites + - Phase 2: Library initialization (Mesa, GTK) + - Phase 3: Headless compositor and GL context - # Install Wayland session specifically - echo "Step 2: Installing Wayland session components..." - dnf install -y \ - gnome-session-wayland-session \ - gnome-shell \ - mutter \ - xorg-x11-server-Xwayland + This test verifies that the graphics stack is properly set up + before running actual rendering tests. + test: | + ./setup-graphics.sh + SKIP_INSTALL=1 ./graphics-smoke-test-tmt.sh --phase=1-3 + tty: true + order: 10 + tag+: + - CI-Tier-1 + - graphics + - infrastructure + - multiarch + duration: 30m + contact: + - Testing Team + component: + - mesa + - gtk3 + - mutter + - xwayland - # Install graphics stack dependencies - echo "Step 3: Installing graphics stack dependencies..." - dnf install -y \ - mesa-dri-drivers \ - mesa-libGL \ - mesa-libEGL \ - mesa-libGLES \ - mesa-vulkan-drivers \ - gtk3 \ - gtk4 \ - xwayland-run \ - weston \ - mesa-demos \ - python3-gobject \ - glx-utils \ - ptyxis +/rendering-test: + summary: Graphics rendering verification (Phase 4) + description: | + Validates actual graphics rendering with visual verification: + - GTK3/GTK4 application startup + - GTK4 rendering test with default renderer + - GTK4 rendering test with NGL renderer + - Visual verification via PNG color analysis + - glxgears FPS test - # Install optional packages - echo "Step 4: Installing optional packages..." - dnf install -y gtk3-devel gtk4-devel xterm glxgears || true - - # Verify key components - echo "Step 5: Verifying installation..." - echo " mutter: $(which mutter || echo 'NOT FOUND')" - echo " xwfb-run: $(which xwfb-run || echo 'NOT FOUND')" - echo " glxinfo: $(which glxinfo || echo 'NOT FOUND')" - echo " Software renderer: $(ls /usr/lib64/dri/swrast_dri.so 2>/dev/null || echo 'NOT FOUND')" - - echo "========================================" - echo "Installation complete" - echo "========================================" - execute: - how: tmt - -/tests: - /infrastructure-test: - summary: Graphics infrastructure test (Phases 1-3) - description: | - Validates graphics stack infrastructure: - - Phase 1: System info and prerequisites - - Phase 2: Library initialization (Mesa, GTK) - - Phase 3: Headless compositor and GL context - - This test verifies that the graphics stack is properly set up - before running actual rendering tests. - test: SKIP_INSTALL=1 ./graphics-smoke-test-tmt.sh --phase=1-3 - tty: true - order: 10 - tag+: - - CI-Tier-1 - - graphics - - infrastructure - - multiarch - duration: 4m - contact: - - Testing Team - component: - - mesa - - gtk3 - - mutter - - xwayland - - /rendering-test: - summary: Graphics rendering verification (Phase 4) - description: | - Validates actual graphics rendering with visual verification: - - GTK3/GTK4 application startup - - GTK4 rendering test with default renderer - - GTK4 rendering test with NGL renderer - - Visual verification via PNG color analysis - - glxgears FPS test - - Detects the s390x Mesa 25.2.7-3 black screen bug where - GTK4 apps show black windows with default renderer but - work correctly with GSK_RENDERER=ngl. - test: SKIP_INSTALL=1 ./graphics-smoke-test-tmt.sh --phase=4 - tty: true - order: 20 - tag+: - - CI-Tier-1 - - graphics - - rendering - - visual-verification - - multiarch - duration: 8m - contact: - - Testing Team - component: - - mesa - - gtk4 - - mutter + Detects the s390x Mesa 25.2.7-3 black screen bug where + GTK4 apps show black windows with default renderer but + work correctly with GSK_RENDERER=ngl. + test: | + ./setup-graphics.sh + SKIP_INSTALL=1 ./graphics-smoke-test-tmt.sh --phase=4 + tty: true + order: 20 + tag+: + - CI-Tier-1 + - graphics + - rendering + - visual-verification + - multiarch + duration: 30m + contact: + - Testing Team + component: + - mesa + - gtk4 + - mutter diff --git a/universal_sanity_test/setup-graphics.sh b/universal_sanity_test/setup-graphics.sh new file mode 100755 index 0000000..55d44ab --- /dev/null +++ b/universal_sanity_test/setup-graphics.sh @@ -0,0 +1,50 @@ +#!/bin/bash +set -x + +echo "========================================" +echo "Installing desktop environment and graphics dependencies" +echo "Architecture: $(uname -m)" +echo "OS: $(cat /etc/redhat-release)" +echo "========================================" + +# 1. Install full GNOME desktop environment (minimal) +dnf groupinstall -y "Server with GUI" || \ +dnf groupinstall -y "GNOME Desktop" || \ +dnf install -y @gnome-desktop + +# 2. Install Wayland session specifically +dnf install -y \ + gnome-session-wayland-session \ + gnome-shell \ + mutter \ + xorg-x11-server-Xwayland + +# 3. Install graphics stack dependencies +dnf install -y \ + mesa-dri-drivers \ + mesa-libGL \ + mesa-libEGL \ + mesa-libGLES \ + mesa-vulkan-drivers \ + gtk3 \ + gtk4 \ + xwayland-run \ + weston \ + mesa-demos \ + python3-gobject \ + glx-utils \ + ptyxis + +# 4. Install optional packages +dnf install -y gtk3-devel gtk4-devel xterm glxgears || true + +# 5. Verify key components +echo "========================================" +echo "Verifying installation..." +echo " mutter: $(which mutter || echo 'NOT FOUND')" +echo " xwfb-run: $(which xwfb-run || echo 'NOT FOUND')" +echo " glxinfo: $(which glxinfo || echo 'NOT FOUND')" +echo " Software renderer: $(ls /usr/lib64/dri/swrast_dri.so 2>/dev/null || echo 'NOT FOUND')" +echo "========================================" +echo "Installation complete." +echo "========================================"