diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2021-04-21 16:38:07 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2021-04-21 16:43:06 +0300 |
commit | 786a9da44caf73a4702e941a07a3a57e1b303127 (patch) | |
tree | da90c296aa5ebf436f5f46775ffc99f80d4b01fe /protocol/weston-test.xml | |
parent | 1eeb38c6f9353b7aa5596a561a3e5d70b465060b (diff) |
Initial import of the Weston testing framework.
This adds the necessary part to add tests: a compositor fixture part,
some client helpers to create a SHM buffer, take a screenshot of the
output, the protocol with the client side implementation and thread
runner part that actually spawns a thread to execute the test.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I066af6f6063952da085110c2e08191e496a3532d
Diffstat (limited to 'protocol/weston-test.xml')
-rw-r--r-- | protocol/weston-test.xml | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/protocol/weston-test.xml b/protocol/weston-test.xml new file mode 100644 index 0000000..00b7185 --- /dev/null +++ b/protocol/weston-test.xml @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="weston_test"> + + <copyright> + Copyright © 2012 Intel Corporation + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + + <interface name="weston_test" version="1"> + <description summary="weston internal testing"> + Internal testing facilities for the weston compositor. + + It can't be stressed enough that these should never ever be used + outside of running weston's tests. The weston-test.so module should + never be installed. + + These requests may allow clients to do very bad things. + </description> + <request name="move_surface"> + <arg name="surface" type="object" interface="wl_surface"/> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + </request> + <request name="move_pointer"> + <arg name="tv_sec_hi" type="uint"/> + <arg name="tv_sec_lo" type="uint"/> + <arg name="tv_nsec" type="uint"/> + <arg name="x" type="int"/> + <arg name="y" type="int"/> + </request> + <request name="send_button"> + <arg name="tv_sec_hi" type="uint"/> + <arg name="tv_sec_lo" type="uint"/> + <arg name="tv_nsec" type="uint"/> + <arg name="button" type="int"/> + <arg name="state" type="uint"/> + </request> + <request name="send_axis"> + <arg name="tv_sec_hi" type="uint"/> + <arg name="tv_sec_lo" type="uint"/> + <arg name="tv_nsec" type="uint"/> + <arg name="axis" type="uint"/> + <arg name="value" type="fixed"/> + </request> + <request name="activate_surface"> + <arg name="surface" type="object" interface="wl_surface" allow-null="true"/> + </request> + <request name="send_key"> + <arg name="tv_sec_hi" type="uint"/> + <arg name="tv_sec_lo" type="uint"/> + <arg name="tv_nsec" type="uint"/> + <arg name="key" type="uint"/> + <arg name="state" type="uint"/> + </request> + <request name="device_release"> + <arg name="device" type="string"/> + </request> + <request name="device_add"> + <arg name="device" type="string"/> + </request> + <event name="pointer_position"> + <arg name="x" type="fixed"/> + <arg name="y" type="fixed"/> + </event> + <request name="capture_screenshot"> + <description summary="records current screen image"> + Records an image of what is currently displayed on a given + display output, returning the image as an event. + </description> + <arg name="output" type="object" interface="wl_output" + summary="output to capture from"/> + <arg name="buffer" type="object" interface="wl_buffer" + summary="buffer for returning screenshots to the test client"/> + </request> + <event name="capture_screenshot_done"> + <description summary="screenshot capture is done"> + The capture_screenshot_done signal is sent when a screenshot has been copied into the + provided buffer. + </description> + </event> + <request name="send_touch"> + <arg name="tv_sec_hi" type="uint"/> + <arg name="tv_sec_lo" type="uint"/> + <arg name="tv_nsec" type="uint"/> + <arg name="touch_id" type="int"/> + <arg name="x" type="fixed"/> + <arg name="y" type="fixed"/> + <arg name="touch_type" type="uint"/> + </request> + </interface> + + <interface name="weston_test_runner" version="1"> + <description summary="weston internal testing"> + This is a global singleton interface for Weston internal tests. + + This interface allows a test client to trigger compositor-side + test procedures. This is useful for cases, where the actual tests + are in compositor plugins, but they also require the presence of + a particular client. + + This interface is implemented by the compositor plugins containing + the testing code. + + A test client starts a test with the "run" request. It must not send + another "run" request until receiving the "finished" event. If the + compositor-side test succeeds, the "finished" event is sent. If the + compositor-side test fails, the compositor should send the protocol + error "test_failed", but it may also exit with an error (e.g. SEGV). + + Unknown test name will raise "unknown_test" protocol error. + </description> + + <enum name="error"> + <entry name="test_failed" value="0" summary="compositor test failed"/> + <entry name="unknown_test" value="1" summary="unrecognized test name"/> + </enum> + + <request name="destroy" type="destructor"/> + + <request name="run"> + <arg name="test_name" type="string"/> + </request> + + <event name="finished"/> + </interface> +</protocol> |