1
0
Fork 0
mutter-performance-source/src/tests
Bilal Elmoussaoui a80360ad38 clutter/stage: Remove unused title property
It was used for the titlebar title, which is no longer relavant
in current Clutter

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3989>
2024-09-01 00:13:28 +02:00
..
clutter clutter/stage: Remove unused title property 2024-09-01 00:13:28 +02:00
cogl cogl: Rename Shader/Program constructors 2024-08-01 11:06:33 +00:00
dbusmock-templates dbusmock/mocks-manager: Don't create a pipe for started templates 2024-05-19 21:43:10 +00:00
drm-mock cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
icc-profiles tests/color: Add test for night light 2022-09-01 17:52:01 +02:00
kvm tests/kvm: Use the anonymous git remote to check out the kernel 2024-08-08 02:40:58 +02:00
meta-test tests: Make the test backend derive from the native backend 2024-06-21 17:22:20 +00:00
migration tests/monitor-unit: Use the correct XML syntax 2024-08-23 12:01:09 +08:00
monitor-configs monitor-config-store: Store and load layout mode for each configuration 2024-08-14 13:07:47 +00:00
mtk mtk: Add Rectangle.contains_point 2024-06-11 00:49:28 +02:00
protocol tests/wayland/utils: Add method to synchronize with windows being shown 2024-04-19 13:33:42 +00:00
ref-tests wayland/single-pixel-buffer: Fix reusing buffer 2024-04-15 17:37:52 +02:00
share/icc tests: Add duplicate color profile test case 2022-09-15 11:22:54 +00:00
stacking tests/stacking: Replace a couple of sleep;assert_focused with wait_focused 2024-08-28 14:57:51 +00:00
wayland-test-clients Compile with -Wfloat-conversion 2024-06-25 20:48:24 +02:00
anonymous-file.c tests/anonymous-file: Skip the rlimit part of the test when running CI 2020-12-03 21:39:13 +00:00
boxes-tests.c boxes: Define cleanup function for MetaStrut and use auto-pointers 2024-05-17 15:33:52 +00:00
boxes-tests.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
button-transform-tests.c backends: Add helpers to convert from clutter tool button to evcode 2024-07-16 09:33:29 +00:00
button-transform-tests.h backend: Introduce helpers for turning from/to clutter/evdev buttons 2023-10-13 16:24:43 +00:00
clutter-test-utils.c tests/clutter: Add a helper for getting the default seat 2024-08-29 15:26:39 +02:00
clutter-test-utils.h tests/clutter: Add a helper for getting the default seat 2024-08-29 15:26:39 +02:00
cogl-test-utils.c cogl: Move PrimitiveTexture functions to Texture 2024-07-15 21:42:38 +02:00
cogl-test-utils.h cogl/context: Add test util function to get the GL/GLES driver vendor 2024-06-13 21:21:49 +00:00
color-management-profile-conflict-test.c Remove unused variables 2024-06-22 23:53:49 +00:00
color-management-tests.c color-device: Rename signal "updated" to "calibration-changed" 2024-08-07 16:40:56 +02:00
edid-tests.c edid: Ensure strings owned by MetaEdidInfo are freed 2024-07-16 03:37:02 +02:00
generic.test.in tests: Install most tests 2024-08-28 14:57:51 +00:00
hdr-metadata-unit-tests.c backends: Move MetaOutputHdrMetadata from KmsConnector to Output 2024-08-07 16:40:56 +02:00
hdr-metadata-unit-tests.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
input-capture-test-client.c input-capture: Add more barrier tests, mostly for invalid barriers 2023-10-23 06:57:45 +00:00
input-capture-tests.c tests: Include 'src/tests' in G_TEST_BUILDDIR 2024-08-28 14:57:51 +00:00
keybindings.c tests: Add test case for keybinding remove race 2024-05-07 09:18:01 +00:00
kms-utils-unit-tests.c Compile with -Wfloat-conversion 2024-06-25 20:48:24 +02:00
logind_helpers.py tests/dbus-runner: Forward logind methods when not in KVM 2023-11-01 10:55:04 +00:00
meson.build monitor-manager: Add new backlight D-Bus API 2024-08-31 01:19:16 +02:00
meta-backend-test.c Remove unused variables 2024-06-22 23:53:49 +00:00
meta-backend-test.h tests/backend: Make test device removal function name consistent 2024-06-21 17:22:20 +00:00
meta-context-test.c x11: Introduce a meta-x11-types header 2024-06-27 16:31:56 +02:00
meta-crtc-test.c renderer-view/native: Update deadline evasion each frame 2024-08-13 10:09:05 +00:00
meta-crtc-test.h tests/monitor-manager: Hook back up the 'handles_transforms' state 2024-06-21 17:22:20 +00:00
meta-dbus-runner.py tests: Extract D-Bus runner as reusable python module 2022-09-02 17:18:43 +00:00
meta-gpu-test.c backend: Move GPU ownership from the monitor manager to the backend 2019-06-20 13:31:55 +00:00
meta-gpu-test.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-kms-test-utils.c tests/kms: Use test helper for finding planes 2023-12-18 13:35:09 +00:00
meta-kms-test-utils.h tests/kms: Use test helper for finding planes 2023-12-18 13:35:09 +00:00
meta-monitor-manager-test.c tests/monitor-manager: Hook back up the 'handles_transforms' state 2024-06-21 17:22:20 +00:00
meta-monitor-manager-test.h tests: Make the test backend derive from the native backend 2024-06-21 17:22:20 +00:00
meta-monitor-test-utils.c tests: Add backlight sanity test 2024-08-31 01:06:33 +02:00
meta-monitor-test-utils.h tests: Add backlight sanity test 2024-08-31 01:06:33 +02:00
meta-output-test.c tests: Add backlight sanity test 2024-08-31 01:06:33 +02:00
meta-output-test.h tests: Make the test backend derive from the native backend 2024-06-21 17:22:20 +00:00
meta-ref-test.c tests/ref-test: Get Backend from actor's associated context 2024-08-29 15:26:39 +02:00
meta-ref-test.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-sensors-proxy-mock.c tests: Add MetaOrientationManager tests via SensorsProxy mock 2021-09-04 10:04:00 +02:00
meta-sensors-proxy-mock.h orientation-manager: Expose MetaOrientationManager to introspection 2024-07-23 17:49:11 +00:00
meta-test-monitor.c tests: Add public test monitor API 2023-02-03 15:29:28 +00:00
meta-test-shell.c cleanup: Port from ClutterColor to CoglColor 2024-06-13 14:45:53 +02:00
meta-test-shell.h tests: Introduce and use a custom test shell 2023-08-16 15:34:46 +00:00
meta-test-utils-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-test-utils.c tests/utils: Actually block while waiting for input thread flushing 2024-06-19 13:54:15 +00:00
meta-test-utils.h x11: Introduce a meta-x11-types header 2024-06-27 16:31:56 +02:00
meta-thread-impl-test.c Update license access method 2023-08-30 08:48:23 +02:00
meta-thread-impl-test.h Update license access method 2023-08-30 08:48:23 +02:00
meta-thread-test.c Update license access method 2023-08-30 08:48:23 +02:00
meta-thread-test.h Update license access method 2023-08-30 08:48:23 +02:00
meta-wayland-test-driver.c tests/wayland/utils: Add method to synchronize with windows being shown 2024-04-19 13:33:42 +00:00
meta-wayland-test-driver.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-wayland-test-utils.c tests: Include 'src/tests' in G_TEST_BUILDDIR 2024-08-28 14:57:51 +00:00
meta-wayland-test-utils.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
monitor-backlight-client.c monitor-manager: Add new backlight D-Bus API 2024-08-31 01:19:16 +02:00
monitor-backlight-tests.c monitor-manager: Add new backlight D-Bus API 2024-08-31 01:19:16 +02:00
monitor-store-unit-tests.c monitor-config-store: Store and load layout mode for each configuration 2024-08-14 13:07:47 +00:00
monitor-store-unit-tests.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
monitor-transform-tests.c mtk: Move MetaMonitorTransform to Mtk 2024-08-09 15:51:36 +00:00
monitor-transform-tests.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
monitor-unit-tests.c display-config: Add HasExternalMonitor property 2024-08-31 01:19:16 +02:00
monitor-util-tests.c Update license access method 2023-08-30 08:48:23 +02:00
mutter-installed-dbus-session.py.in tests/installed-dbus-session: Add --compile-schemas 2024-08-28 14:57:51 +00:00
mutter_dbusrunner.py tests/dbus-runner: Remove support for service launching via env vars 2024-08-28 14:57:51 +00:00
native-bezier-tests.c tests: Split up 'native-unit' test 2024-08-28 14:57:51 +00:00
native-kms-cursor-hotplug.c tests: Split up 'native-unit' test 2024-08-28 14:57:51 +00:00
native-kms-device.c kms/crtc: Track if the VRR_ENABLED property is supported 2024-03-16 10:28:30 +00:00
native-kms-force-atomic-sanity.c Update license access method 2023-08-30 08:48:23 +02:00
native-kms-force-kernel-thread-sanity.c Update license access method 2023-08-30 08:48:23 +02:00
native-kms-force-simple-sanity.c Update license access method 2023-08-30 08:48:23 +02:00
native-kms-force-user-thread-sanity.c Update license access method 2023-08-30 08:48:23 +02:00
native-kms-headless-start.c Compile with -Wfloat-conversion 2024-06-25 20:48:24 +02:00
native-kms-hotplug.c backend/native: Find render node directly via udev 2024-06-12 11:06:54 +00:00
native-kms-render.c cogl: Turn CoglScanout into an object 2024-02-10 17:41:12 +00:00
native-kms-updates.c kms: Allow setting the "VRR_ENABLED" property on a CRTC 2024-03-02 12:08:21 +00:00
native-kms.c Update license access method 2023-08-30 08:48:23 +02:00
native-persistent-virtual-monitor.c mutter: Completely replace MetaRectangle with MtkRectangle 2023-08-30 16:46:14 +02:00
native-pointer-constraints.c tests: Split up 'native-unit' test 2024-08-28 14:57:51 +00:00
native-screen-cast.c tests: Split up 'native-unit' test 2024-08-28 14:57:51 +00:00
native-thread.c Remove unused variables 2024-06-22 23:53:49 +00:00
native-virtual-monitor.c tests: Split up 'native-unit' test 2024-08-28 14:57:51 +00:00
org.gnome.mutter.test.gschema.xml tests: Add test case for keybinding remove race 2024-05-07 09:18:01 +00:00
orientation-manager-unit-tests.c tests: Move monitor test utils into libmutter-test.so 2022-02-09 09:04:09 +00:00
orientation-manager-unit-tests.h orientation-manager: Expose MetaOrientationManager to introspection 2024-07-23 17:49:11 +00:00
README tests: Update README 2023-03-04 09:07:44 +00:00
ref-test-sanity.c cleanup: Port from ClutterColor to CoglColor 2024-06-13 14:45:53 +02:00
screen-cast-client.c Compile with -Wfloat-conversion 2024-06-25 20:48:24 +02:00
service-channel-tests.c Remove unused variables 2024-06-22 23:53:49 +00:00
socket-launch.sh tests/dbus-runner: Launch pipewire via socket activation 2024-08-28 14:57:51 +00:00
stacking.test.in tests/installed: Don't duplicate environment sanity 2024-08-28 14:57:51 +00:00
stage-view-tests.c Compile with -Wfloat-conversion 2024-06-25 20:48:24 +02:00
test-client.c test-client: Add 'assert_primary_monitor' 2024-08-30 20:32:01 +00:00
test-runner.c tests/test-runner: Add 'wait_focused' command 2024-08-28 14:57:51 +00:00
unit-tests.c Remove monitor migration support from v1 monitors.xml format 2024-08-14 13:07:47 +00:00
unit-tests.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
wayland-client-tests.c Remove unused variables 2024-06-22 23:53:49 +00:00
wayland-fractional-scale-test.c wayland/surface: Make MetaWaylandSurface public 2023-11-04 01:12:11 +00:00
wayland-fullscreen-test.c tests: Mark some tests as skippable 2024-06-17 11:24:20 +00:00
wayland-unit-tests.c tests/wayland-test-clients: Reuse surface for XDG toplevels 2024-06-17 15:27:20 +00:00
wayland-x11-interop-tests.c Remove unused variables 2024-06-22 23:53:49 +00:00
x11-compositor-checker.c tests: Add check for compositor state on XWayland startup 2023-05-15 19:05:00 +02:00
x11-test.sh tests/x11: Get the right mutter pid and be more verbose 2024-08-09 08:29:21 +00:00
xwayland-tests.c tests: Include 'src/tests' in G_TEST_BUILDDIR 2024-08-28 14:57:51 +00:00

This directory implements a framework for automated tests of Mutter. The basic
idea is that mutter-test-runner acts as the window manager and compositor, and
forks off instances of mutter-test-client to act as clients.

There's a simple scripting language for tests. A very small test would look like:

---
# Start up a new X11 client with the client id 1 (doesn't have to be an integer)
# Windows for this client will be referred to as 1/<window-id>
new_client 1 x11

# Create and show two windows - again the IDs don't have to be integers
create 1/1
show 1/1
create 1/2
show 1/2

# Wait for the commands we've executed in the clients to reach Mutter
wait

# Check that the windows are in the order we expect
assert_stacking 1/1 1/2
---

Running
=======

The tests are installed according to:

https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests

if -Dtests=true is passed to `meson configure`. You can run them uninstalled with:

 ninja test

Command reference
=================

The following commands are supported. Quoting and comments follow shell rules.

new_client <client-id> [wayland|x11]
 Starts a client, connecting by either Wayland or X11. The client
 will subsequently be known with the given client-id (an arbitrary
 string)

quit_client <client-id>
 Destroys all windows for the client, waits for that to be processed,
 then instructs the client to exit.

create <client-id>/<window-id> [override|csd]
 Creates a new window. For the X11 backend, the keyword 'override'
 can be given to create an override-redirect and the keyword 'csd'
 can be given to create a client-side decorated window.

show <client-id>/<window-id>
hide <client-id>/<window-id>
 Ask the client to show (map) or hide (unmap) the given window

activate <client-id>/<window-id>
 Ask the client to raise and focus the given window.

local_activate <client-id>-<window-id>
  The same as 'activate', but the operation is done directly inside Mutter
  and works for both backends

raise <client-id>/<window-id>
lower <client-id>/<window-id>
  Ask the client to raise or lower the given window ID. This is a no-op
  for Wayland clients. (It's also considered discouraged, but supported, for
  non-override-redirect X11 clients.)

minimize <client-id>/<window-id>
unminimize <client-id>/<window-id>
  Ask the client to minimize or unminimize the given window ID. This older
  term for this operation is "iconify".

destroy <client-id>/<window-id>
  Destroy the given window

wait
  Wait until all requests sent by Mutter to clients have been received by Mutter,
  and then wait until all requests by Mutter have been processed by the X server.

assert_stacking <client-id>/<window-id> <client-id>/<window-id> ...
  Assert that the list of client windows known to Mutter is as given and in
  the given order, bottom to top. The character '|' can be present in the
  list of windows to indicate the guard window that separates hidden and
  visible windows. If '|' isn't present, the guard window is asserted to
  be below all client windows.

  This function also queries the X server stack and verifies that Mutter's
  expectation of the X server stack matches reality.