Mir

Differences between revisions 62 and 89 (spanning 27 versions)
Revision 62 as of 2017-10-30 12:15:47
Size: 7425
Comment:
Revision 89 as of 2024-05-09 10:02:49
Size: 4745
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
 * '''Component Checklist''': https://wiki.ubuntu.com/Process/Merges/Checklists/Mir
 * '''Trunk URL''': [[https://launchpad.net/mir/ubuntu|lp:mir/ubuntu]] (note: mir has release branches, for example [[https://launchpad.net/mir/0.26|lp:mir/0.26]])
 * '''Trunk URL''': [[https://github.com/MirServer/mir/|github:MirServer/mir]]
Line 5: Line 4:


== Dependents/Clients ==

Clients of this component

 * '''qtubuntu''' https://launchpad.net/qtubuntu
 * '''Xmir''' https://code.launchpad.net/~xmir-team/xorg-server/+git/xmir
 * '''SDL'''
 * '''GTK-3'''
Line 18: Line 7:
'''This test plan is not supposed to be complete; use it to guide your manual testing so they don't miss big functional areas that are part in the component; also this should be used as guideline to inspire the exploratory testing which should be adapted smartly based on the real content of a MP''' '''This test plan is not supposed to be complete; use it to guide your manual testing so they don't miss big functional areas that are part in the component; also this should be used as guideline to inspire the exploratory testing which should be adapted smartly based on the real content of a release'''
Line 21: Line 10:
 * Mir Test Plan (from ppa:mir-team/rc)
 * Mir Snaps Test Plan

=== Mir Test Plan ===

==== Test Matrix ====
||'''Platform'''||24.04LTS||22.04LTS||24.10||
||gbm-kms|| || || ||
||gbm-x11|| || || ||
||gbm-wayland|| || || ||
||eglstream-kms|| || || ||
||virtual|| || || ||

||'''Console'''||24.04LTS||22.04LTS||24.10||
||minimal|| || || ||
||linux-VT|| || || ||
||logind|| || || ||

||'''WM'''||24.04LTS||22.04LTS||24.10||
||floating|| || || ||
||tiling|| || || ||
||kiosk|| || || ||
Line 23: Line 34:
  * Install packages from build silo:
   * $ sudo apt install mir-demos mir-graphics-drivers-desktop
  * Install packages from the [[https://launchpad.net/~mir-team/+archive/ubuntu/rc|release candidate PPA]]:
   * $ '''sudo add-apt-repository --update ppa:mir-team/rc'''
   * $ '''sudo apt install mir-demos mir-platform-graphics-virtual mir-graphics-drivers-desktop mir-test-tools'''
  * Install applications to test with:
   * Qt Wayland support, qterminal and kate to test with:
    * $ '''sudo apt install qtwayland5 kate qterminal'''
   * Install weston-terminal:
    * $ '''sudo apt install weston'''
   * Install glmark2:
    * $ '''sudo apt install glmark2-wayland'''
Line 26: Line 45:
 * Mir-on-X
  * Use an X11 based desktop (Unity, Gnome, etc.). These tests run for a default 10 seconds,
  * Start a terminal sessions to launch the tests.
  * Test that S/W rendering clients run and can be moved(resized) with Alt+Left(Middle)-Button:
   * $ '''mir_demo_server --test-timeout 10 --test-client mir_demo_client_multiwin'''
  * Test that EGL rendering clients run and can be moved(resized) with Alt+Left(Middle)-Button:
   * $ '''mir_demo_server --test-timeout 10 --test-client mir_demo_client_egltriangle'''
 * Commands for testing specific features:
  * Console provider
   * `--console-provider=vt --vt=4`
    * This requires running with root privileges
    * Need to ensure that `XDG_RUNTIME_DIR` is set in the environment. If using `sudo`, it might strip this out; running something like `sudo env XDG_RUNTIME_DIR=/run/user/1000 miral-shell …` will ensure this is set.
   * `--console-provider=logind`
     * Switch to VT4, sign in and `miral-app ...`
   * `--console-provider=minimal`
    * Used when all others fail.
    * Does not provide VT switching capabilities (Ctrl-Alt-F1, etc)
    * Used for the gbm-x11, gbm-wayland & virtual platforms
  * Window Manager
   * `--window-manager=tiling`
   * `--window-manager=floating`
   * `-kiosk`
  * Testing specific platforms
   * `--platform-display-libs=mir:$NAME --platform-rendering-libs=mir:$NAME`
    * Platform
      * X11: Use an X11 supporting desktop
      * virtual: `--platform-display-lib=mir:virtual --virtual-output=1280x1024`
       * Also add wayvnc support: `--add-wayland-extension=zwp_virtual_keyboard_manager_v1:zwlr_virtual_pointer_manager_v1:zwlr_screencopy_manager_v1`
       * In a separate terminal run: `WAYLAND_DISPLAY=wayland-1 ubuntu-frame-vnc`
       * In a separate terminal run: `gvncviewer localhost`
      * wayland: `--platform-display-lib=mir:wayland --wayland-host=$WAYLAND_DISPLAY`
  * Some tests
    * Run the "smoke tests" to ensure the example clients work
      * Start a terminal sessions to launch the tests.
      * $ '''mir-smoke-test-runner'''
      * Check the result is "I: Smoke testing complete with returncode 0"
    * try some apps
     * $ '''miral-app'''
     * [in the nested session] Try running, resizing, moving and switching between the following:
       * $ '''kate'''
       * $ '''gnome-terminal'''
       * $ '''weston-terminal'''
       * $ '''glmark2-es2-wayland'''
Line 34: Line 82:
 * Mir-on-Mir
  * Use an X11 based desktop (Unity, Gnome, etc.). These tests run for a default 10 seconds.
  * Start two terminal sessions, one for a "host" server, one to launch the tests.
   * Start a "host" server: $ '''mir_demo_server --window-manager system-compositor'''
  * Test that S/W rendering clients run and can be moved(resized) with Alt+Left(Middle)-Button:
   * $ '''mir_demo_server --no-file --host $XDG_RUNTIME_DIR/mir_socket --test-timeout 10 --test-client mir_demo_client_multiwin'''
  * Test that EGL rendering clients run and can be moved(resized) with Alt+Left(Middle)-Button:
   * $ '''mir_demo_server --no-file --host $XDG_RUNTIME_DIR/mir_socket --test-timeout 10 --test-client mir_demo_client_egltriangle'''
  * Close the "host" server
   * Run a test "tiling desktop" session
     * $ '''miral-app --window-manager tiling'''
     * Try running, and switching between the following:
     * $ '''kate'''
     * $ '''gnome-terminal'''
     * $ '''weston-terminal'''
     * $ '''glmark2-es2-wayland'''
Line 44: Line 90:
 * Mir-on-KMS
  * go to a VT. These tests run for a default 10 seconds.
  * Test that S/W rendering clients run and can be moved(resized) with Alt+Left(Middle)-Button:
   * $ '''sudo mir_demo_server --no-file --test-timeout 10 --test-client mir_demo_client_multiwin'''
  * Test that EGL rendering clients run and can be moved(resized) with Alt+Left(Middle)-Button:
   * $ '''sudo mir_demo_server --no-file --test-timeout 10 --test-client mir_demo_client_egltriangle'''
=== Mir Snaps Test Plan ===
Line 51: Line 92:
 * Basic GDK support ''On zesty and Xenial''
  * Use an X11 based desktop (Unity, Gnome, etc.). Note that support by the demo server is limited: e.g. menus and popups need not appear in the correct place.
  * Start two terminal sessions, one for a Mir server, one to launch the tests.
   * Start a server: $ '''mir_demo_server'''
  * Test that gnome-terminal runs and can be moved(resized) with Alt+Left(Middle)-Button:
   * $ '''GDK_BACKEND=mir gnome-terminal --app-id com.canonical.mir.Terminal'''
  * Test that GDK applications can be run from the terminal:
   * $ '''gedit'''
  * Close the server
There are several snaps to consider
* mir-test-tools
* ubuntu-frame
* confined-shell
* miriway
Line 61: Line 98:
 * Basic Qt support
  * Use an X11 based desktop (Unity, Gnome, etc.). Note that support by the demo server is limited: e.g. menus and popups need not appear in the correct place.
  * Start two terminal sessions, one for a Mir server, one to launch the tests.
   * Install Qt support and kate: $ '''sudo apt install qtubuntu-desktop kate'''
   * Start a server: $ '''mir_demo_server'''
  * Test that qterminal runs:
   * $ '''unset QT_QPA_PLATFORMTHEME'''
   * $ '''QT_QPA_PLATFORM=ubuntumirclient qterminal'''
  * Test that Qt applications can be run from the terminal:
   * $ '''kate'''
  * Close the server
We give detailed instructions only for mir-test-tools as the pattern is obvious.
Line 73: Line 100:
 * Basic SDL support
  * Use an X11 based desktop (Unity, Gnome, etc.).
  * Start two terminal sessions, one for a Mir server, one to launch the test.
   * Install a sample SDL application: $ '''sudo apt install 7kaa'''
   * Start a server: $ '''mir_demo_server'''
  * Test that 7kaa runs and can be used:
   * $ '''SDL_VIDEODRIVER=mir 7kaa'''
   * ''Note that 7kaa crashes on exit: That is not a problem for this test.''
  * Close the server
 * Verify that the snaps works
These tests should work on all supported series of Classic and on Ubuntu Core. First check that the `beta` channel has been updated with the release candidate:
Line 83: Line 103:
 * Basic X11 support
  * Use an X11 based desktop (Unity, Gnome, etc.).
  * Start three terminal sessions, one for a Mir server, one for Xmir, one to launch the test.
   * Install Xmir: $ '''sudo apt install xmir'''
   * Start a server: $ '''mir_demo_server'''
   * Start Xmir: $ '''Xmir -rootless :2'''
  * Test that gedit runs on Xmir and can be used:
   * $ '''DISPLAY=:2 gedit'''
   * Interact with gedit, write a text document, save it, load another.
   * $ '''snap info mir-test-tools'''
Line 93: Line 105:
 * MirAL support ''On zesty and later''
  * install kate, neverball, qtubuntu-desktop, mir-graphics-drivers-desktop, mir-demos, qterminal
  * Run the example: ''$ miral-desktop''
   * This should switch you to a miral "desktop" on VT4 with a gnome terminal window
   * Ensure that gtk applications (e.g. gedit) can be launched from the terminal and used
    * ''At present, on Artful, gtk-mir doesn't always render to the correct size. MirAL/Mir is not thought to be the cause.''
   * Ensure that Qt applications (e.g. kate) can be launched from the terminal and used
    * ''At present kate has problems on qemu-kvm - it presents a blank, unresponsive, "untitled" window. This is Mir bug lp:1639745 (see second note below).''
   * Ensure that SDL applications (e.g. neverball) can be launched from the terminal and used
    * ''At present SDL applications sometimes exhibit problems on exit (7kaa often segfaults, neverball often hangs). MirAL/Mir is not thought to be the cause.''
   * Exit the MirAL desktop by closing the terminal session
  * Run the example: ''$ sudo mir_demo_server --vt 4 --arw-file --window-manager system-compositor''
   * This should switch you to VT4 with blank screen
   * switch back to your desktop and start another terminal session (used for the next two tests)
  * Run the example: ''$ miral-app --host /tmp/mir_socket --window-manager tiling''
   * switch back to VT4
   * This should switch you to a tiling MirAL "desktop" on VT4 with a fullscreen gnome terminal
   * ''repeat the application sanity tests as above'' the active application will be on the left of the display
   * after exiting the terminal session switch back to your desktop
  * Run the example: ''$ miral-app -kiosk -launcher qterminal --host /tmp/mir_socket''
   * switch back to VT4
   * This should switch you to a tiling MirAL "desktop" on VT4 with a fullscreen qterminal
   * ''repeat the application sanity tests as above'' the active application will be fullscreen
   * after exiting the terminal session exit mir_demo_server by Ctrl-Alt-BkSp
This should show something like:
Line 118: Line 107:
 '''Note''': To "kill" an unresponsive app use Alt-Shift-F4    * '''24/beta: 2.17.0~rc5-snap165 2024-05-08 (15097) 105MB -'''
Line 120: Line 109:
 * Unity8 support ''On zesty only''
  * Install unity8-desktop-session: $ '''sudo apt install unity8-desktop-session'''
  * login to unity8 desktop and utilize applications such as browser, play with dash
  * allow screen to blank, wake up
Where the version (2.17.0~rc5-snap165) matches the release being tested.

   * $ '''snap install --channel=24/beta mir-test-tools'''

There's a "handy script" to test the snap on the Wiki:

   * https://github.com/MirServer/mir-test-tools/wiki/Notes

Copy this and run it.

Test Plan

This test plan is not supposed to be complete; use it to guide your manual testing so they don't miss big functional areas that are part in the component; also this should be used as guideline to inspire the exploratory testing which should be adapted smartly based on the real content of a release

  • Successful run of automated CI testing
  • Mir Test Plan (from ppa:mir-team/rc)
  • Mir Snaps Test Plan

Mir Test Plan

Test Matrix

Platform

24.04LTS

22.04LTS

24.10

gbm-kms

gbm-x11

gbm-wayland

eglstream-kms

virtual

Console

24.04LTS

22.04LTS

24.10

minimal

linux-VT

logind

WM

24.04LTS

22.04LTS

24.10

floating

tiling

kiosk

  • In addition update desktop from archive
    • Install packages from the release candidate PPA:

      • $ sudo add-apt-repository --update ppa:mir-team/rc

      • $ sudo apt install mir-demos mir-platform-graphics-virtual mir-graphics-drivers-desktop mir-test-tools

    • Install applications to test with:
      • Qt Wayland support, qterminal and kate to test with:
        • $ sudo apt install qtwayland5 kate qterminal

      • Install weston-terminal:
        • $ sudo apt install weston

      • Install glmark2:
        • $ sudo apt install glmark2-wayland

  • Commands for testing specific features:
    • Console provider
      • --console-provider=vt --vt=4

        • This requires running with root privileges
        • Need to ensure that XDG_RUNTIME_DIR is set in the environment. If using sudo, it might strip this out; running something like sudo env XDG_RUNTIME_DIR=/run/user/1000 miral-shell … will ensure this is set.

      • --console-provider=logind

        • Switch to VT4, sign in and miral-app ...

      • --console-provider=minimal

        • Used when all others fail.
        • Does not provide VT switching capabilities (Ctrl-Alt-F1, etc)
        • Used for the gbm-x11, gbm-wayland & virtual platforms

    • Window Manager
      • --window-manager=tiling

      • --window-manager=floating

      • -kiosk

    • Testing specific platforms
      • --platform-display-libs=mir:$NAME --platform-rendering-libs=mir:$NAME

        • Platform
          • X11: Use an X11 supporting desktop
          • virtual: --platform-display-lib=mir:virtual --virtual-output=1280x1024

            • Also add wayvnc support: --add-wayland-extension=zwp_virtual_keyboard_manager_v1:zwlr_virtual_pointer_manager_v1:zwlr_screencopy_manager_v1

            • In a separate terminal run: WAYLAND_DISPLAY=wayland-1 ubuntu-frame-vnc

            • In a separate terminal run: gvncviewer localhost

          • wayland: --platform-display-lib=mir:wayland --wayland-host=$WAYLAND_DISPLAY

    • Some tests
      • Run the "smoke tests" to ensure the example clients work
        • Start a terminal sessions to launch the tests.
        • $ mir-smoke-test-runner

        • Check the result is "I: Smoke testing complete with returncode 0"
      • try some apps
        • $ miral-app

        • [in the nested session] Try running, resizing, moving and switching between the following:
          • $ kate

          • $ gnome-terminal

          • $ weston-terminal

          • $ glmark2-es2-wayland

      • Run a test "tiling desktop" session
        • $ miral-app --window-manager tiling

        • Try running, and switching between the following:
        • $ kate

        • $ gnome-terminal

        • $ weston-terminal

        • $ glmark2-es2-wayland

Mir Snaps Test Plan

There are several snaps to consider * mir-test-tools * ubuntu-frame * confined-shell * miriway

We give detailed instructions only for mir-test-tools as the pattern is obvious.

  • Verify that the snaps works

These tests should work on all supported series of Classic and on Ubuntu Core. First check that the beta channel has been updated with the release candidate:

  • $ snap info mir-test-tools

This should show something like:

  • 24/beta: 2.17.0~rc5-snap165 2024-05-08 (15097) 105MB -

Where the version (2.17.0~rc5-snap165) matches the release being tested.

  • $ snap install --channel=24/beta mir-test-tools

There's a "handy script" to test the snap on the Wiki:

Copy this and run it.

Process/Merges/TestPlans/Mir (last edited 2024-05-09 13:09:10 by alan-griffiths)