mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-17 00:38:08 +02:00
Testing the ivi_layout API requires two things: - the tests must be written as a controller module to access the API - the tests need a helper client to create some objects that can then be managed via the API This patch adds all the infrastructure and two different kinds of example tests. Internal ivi-shell (ivi_layout) API tests are listed as ivi-*.la files in TESTS in Makefile.am. Weston-tests-env detects these, and runs Weston with ivi-shell, and loads the given module as a controller module, not as a normal plugin. The test controller module ivi-*.la will launch a helper client. For ivi-layout-test.la the helper client is ivi-layout.ivi. The helper client uses the weston-test-runner framework to fork and exec each TEST with a fresh connection to the compositor. The actual test is triggered by the weston_test_runner protocol interface, a new addition to weston-test.xml. The helper client uses weston_test_runner to trigger a test, and the server side of the interface is implemented by the test controller module (ivi-layout-test.la). The server side of weston_test_runner uses the same trick as weston-test-runner.h to gather a list of defined tests. A test is defined with the RUNNER_TEST macro. If a test defined by RUNNER_TEST succeeds, an event is sent to the helper client that it can continue (or exit). If a test fails, a fatal protocol error is sent to the helper client. Once the helper client has iterated over all of its tests, it signals the batch success/failure via process exit code. That is cought in the test controller module, and forwarded as Weston's exit code. In summary: each ivi_layout test is a combination of a client side helper/setup and server side actual tests. v2: Load weston-test.so, because create_client() needs it. v3: add a comment about IVI_TEST_SURFACE_ID_BASE. v4: Rebased to upstream weston-tests-env changes. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Derek Foreman <derekf@osg.samsung.com> (v2) |
||
|---|---|---|
| .. | ||
| .gitignore | ||
| bad-buffer-test.c | ||
| buffer-count-test.c | ||
| button-test.c | ||
| config-parser-test.c | ||
| devices-test.c | ||
| event-test.c | ||
| ivi-shell-app-test.c | ||
| ivi-test.h | ||
| ivi_layout-test-plugin.c | ||
| ivi_layout-test.c | ||
| keyboard-test.c | ||
| matrix-test.c | ||
| presentation-test.c | ||
| roles-test.c | ||
| setbacklight.c | ||
| subsurface-test.c | ||
| surface-global-test.c | ||
| surface-screenshot.c | ||
| surface-test.c | ||
| text-test.c | ||
| vertex-clip-test.c | ||
| weston-test-client-helper.c | ||
| weston-test-client-helper.h | ||
| weston-test-runner.c | ||
| weston-test-runner.h | ||
| weston-test.c | ||
| weston-tests-env | ||
| xwayland-test.c | ||