mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-04-25 17:50:40 +02:00
tests: Add tests for scaled single pixel buffers
Now that we're validating that buffer size must be an integer multiple of scale, add some tests to make sure it's happening. Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
This commit is contained in:
parent
dc27dd7e95
commit
2abd161023
1 changed files with 70 additions and 0 deletions
|
|
@ -110,3 +110,73 @@ TEST(solid_buffer_argb_u32)
|
|||
|
||||
return RESULT_OK;
|
||||
}
|
||||
|
||||
TEST(solid_buffer_argb_u32_scaled)
|
||||
{
|
||||
struct client *client;
|
||||
struct wp_viewport *viewport;
|
||||
struct wl_buffer *buffer;
|
||||
|
||||
client = create_client();
|
||||
client->surface = create_test_surface(client);
|
||||
viewport = client_create_viewport(client);
|
||||
wp_viewport_set_destination(viewport, 128, 128);
|
||||
|
||||
buffer = wp_single_pixel_buffer_manager_v1_create_u32_rgba_buffer(client->single_pixel_manager,
|
||||
0xcfffffff, /* r */
|
||||
0x8fffffff, /* g */
|
||||
0x4fffffff, /* b */
|
||||
0xffffffff /* a */);
|
||||
test_assert_ptr_not_null(buffer);
|
||||
|
||||
weston_test_move_surface(client->test->weston_test,
|
||||
client->surface->wl_surface,
|
||||
64, 64);
|
||||
wl_surface_attach(client->surface->wl_surface, buffer, 0, 0);
|
||||
wl_surface_damage_buffer(client->surface->wl_surface, 0, 0, 1, 1);
|
||||
wl_surface_set_buffer_scale(client->surface->wl_surface, 2);
|
||||
wl_surface_commit(client->surface->wl_surface);
|
||||
expect_protocol_error(client, &wl_surface_interface, WL_SURFACE_ERROR_INVALID_SIZE);
|
||||
|
||||
wl_buffer_destroy(buffer);
|
||||
wp_viewport_destroy(viewport);
|
||||
client_destroy(client);
|
||||
|
||||
return RESULT_OK;
|
||||
}
|
||||
|
||||
TEST(solid_buffer_argb_u32_scaled_in_second_commit)
|
||||
{
|
||||
struct client *client;
|
||||
struct wp_viewport *viewport;
|
||||
struct wl_buffer *buffer;
|
||||
|
||||
client = create_client();
|
||||
client->surface = create_test_surface(client);
|
||||
viewport = client_create_viewport(client);
|
||||
wp_viewport_set_destination(viewport, 128, 128);
|
||||
|
||||
buffer = wp_single_pixel_buffer_manager_v1_create_u32_rgba_buffer(client->single_pixel_manager,
|
||||
0xcfffffff, /* r */
|
||||
0x8fffffff, /* g */
|
||||
0x4fffffff, /* b */
|
||||
0xffffffff /* a */);
|
||||
test_assert_ptr_not_null(buffer);
|
||||
|
||||
weston_test_move_surface(client->test->weston_test,
|
||||
client->surface->wl_surface,
|
||||
64, 64);
|
||||
wl_surface_attach(client->surface->wl_surface, buffer, 0, 0);
|
||||
wl_surface_damage_buffer(client->surface->wl_surface, 0, 0, 1, 1);
|
||||
wl_surface_commit(client->surface->wl_surface);
|
||||
client_roundtrip(client);
|
||||
wl_surface_set_buffer_scale(client->surface->wl_surface, 2);
|
||||
wl_surface_commit(client->surface->wl_surface);
|
||||
expect_protocol_error(client, &wl_surface_interface, WL_SURFACE_ERROR_INVALID_SIZE);
|
||||
|
||||
wl_buffer_destroy(buffer);
|
||||
wp_viewport_destroy(viewport);
|
||||
client_destroy(client);
|
||||
|
||||
return RESULT_OK;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue