forked from 12to11/12to11
Add buffer release test
* tests/Imakefile (OBJS15, SRCS15): New files. (PROGRAMS): Add buffer_test. (buffer_test): New program target. * tests/run_tests.sh (standard_tests): Add buffer_test. * tests/svnignore.txt: Add buffer_test * tests/test_harness.c (handle_wl_buffer_release, get_test_buffer) (test_buffer_committed, verify_buffer_released): New functions. * tests/test_harness.h (struct test_buffer): New struct.
This commit is contained in:
parent
b35873d200
commit
bc22380754
5 changed files with 73 additions and 7 deletions
|
@ -58,7 +58,9 @@ ScannerTarget(single-pixel-buffer-v1)
|
|||
OBJS13 = $(COMMONSRCS) xdg_activation_test.o
|
||||
SRCS14 = $(COMMONSRCS) single_pixel_buffer_test.c
|
||||
OBJS14 = $(COMMONSRCS) single_pixel_buffer_test.o
|
||||
PROGRAMS = imgview simple_test damage_test transform_test viewporter_test subsurface_test scale_test seat_test dmabuf_test select_test select_helper select_helper_multiple xdg_activation_test single_pixel_buffer_test
|
||||
SRCS15 = $(COMMONSRCS) buffer_test.c
|
||||
OBJS15 = $(COMMONSRCS) buffer_test.o
|
||||
PROGRAMS = imgview simple_test damage_test transform_test viewporter_test subsurface_test scale_test seat_test dmabuf_test select_test select_helper select_helper_multiple xdg_activation_test single_pixel_buffer_test buffer_test
|
||||
|
||||
/* Make all objects depend on HEADER. */
|
||||
$(OBJS1): $(HEADER)
|
||||
|
@ -74,17 +76,18 @@ NormalProgramTarget(viewporter_test,$(OBJS5),NullParameter,$(LOCAL_LIBRARIES),Nu
|
|||
NormalProgramTarget(subsurface_test,$(OBJS6),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||
NormalProgramTarget(scale_test,$(OBJS7),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||
NormalProgramTarget(seat_test,$(OBJS8),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||
NormalProgramTarget(dmabuf_test,$(OBJS9),NullParameter,$(LOCAL_LIBRARIES) $(GBM) $(DRM),NullParameter);
|
||||
NormalProgramTarget(select_test,$(OBJS10),NullParameter,$(LOCAL_LIBRARIES) ThreadsLibraries,NullParameter);
|
||||
NormalProgramTarget(select_helper,$(OBJS11),NullParameter,$(XLIB),NullParameter);
|
||||
NormalProgramTarget(select_helper_multiple,$(OBJS12),NullParameter,$(XLIB),NullParameter);
|
||||
NormalProgramTarget(dmabuf_test,$(OBJS9),NullParameter,$(LOCAL_LIBRARIES) $(GBM) $(DRM),NullParameter)
|
||||
NormalProgramTarget(select_test,$(OBJS10),NullParameter,$(LOCAL_LIBRARIES) ThreadsLibraries,NullParameter)
|
||||
NormalProgramTarget(select_helper,$(OBJS11),NullParameter,$(XLIB),NullParameter)
|
||||
NormalProgramTarget(select_helper_multiple,$(OBJS12),NullParameter,$(XLIB),NullParameter)
|
||||
NormalProgramTarget(xdg_activation_test,$(OBJS13),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||
NormalProgramTarget(single_pixel_buffer_test,$(OBJS14),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||
NormalProgramTarget(buffer_test,$(OBJS15),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||
DependTarget3($(SRCS1),$(SRCS2),$(SRCS3))
|
||||
DependTarget3($(SRCS4),$(SRCS5),$(SRCS6))
|
||||
DependTarget3($(SRCS7),$(SRCS8),$(SRCS9))
|
||||
DependTarget3($(SRCS10),$(SRCS11),$(SRCS12))
|
||||
DependTarget3($(SRCS13),$(SRCS14),NullParameter)
|
||||
DependTarget3($(SRCS13),$(SRCS14),$(SRCS15))
|
||||
|
||||
all:: $(PROGRAMS)
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ pushd "$(dirname $0)"
|
|||
declare -a standard_tests=(
|
||||
simple_test damage_test transform_test viewporter_test
|
||||
subsurface_test scale_test seat_test dmabuf_test
|
||||
xdg_activation_test single_pixel_buffer_test
|
||||
xdg_activation_test single_pixel_buffer_test buffer_test
|
||||
)
|
||||
|
||||
make -C . "${standard_tests[@]}"
|
||||
|
|
|
@ -14,6 +14,7 @@ select_helper
|
|||
select_helper_multiple
|
||||
xdg_activation_test
|
||||
single_pixel_buffer_test
|
||||
buffer_test
|
||||
imgview
|
||||
reject.dump
|
||||
Makefile
|
||||
|
|
|
@ -1032,3 +1032,52 @@ verify_window_size (struct test_display *display,
|
|||
", actual: %d %d", width, height,
|
||||
attrs.width, attrs.height);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
handle_wl_buffer_release (void *data, struct wl_buffer *buffer)
|
||||
{
|
||||
struct test_buffer *test_buffer;
|
||||
|
||||
test_buffer = data;
|
||||
test_buffer->is_busy = false;
|
||||
}
|
||||
|
||||
static const struct wl_buffer_listener test_buffer_listener =
|
||||
{
|
||||
handle_wl_buffer_release,
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct test_buffer *
|
||||
get_test_buffer (struct test_display *display, struct wl_buffer *buffer)
|
||||
{
|
||||
struct test_buffer *test_buffer;
|
||||
|
||||
test_buffer = malloc (sizeof *test_buffer);
|
||||
|
||||
if (!test_buffer)
|
||||
return NULL;
|
||||
|
||||
test_buffer->buffer = buffer;
|
||||
test_buffer->is_busy = false;
|
||||
|
||||
wl_buffer_add_listener (buffer, &test_buffer_listener, test_buffer);
|
||||
return test_buffer;
|
||||
}
|
||||
|
||||
void
|
||||
test_buffer_committed (struct test_buffer *test_buffer)
|
||||
{
|
||||
test_buffer->is_busy = true;
|
||||
}
|
||||
|
||||
void
|
||||
verify_buffer_released (struct test_buffer *test_buffer)
|
||||
{
|
||||
if (test_buffer->is_busy)
|
||||
report_test_failure ("buffer %p should not be busy right now",
|
||||
test_buffer->buffer);
|
||||
}
|
||||
|
|
|
@ -110,6 +110,15 @@ struct test_interface
|
|||
uint32_t version;
|
||||
};
|
||||
|
||||
struct test_buffer
|
||||
{
|
||||
/* The associated struct wl_buffer. */
|
||||
struct wl_buffer *buffer;
|
||||
|
||||
/* Whether or not the buffer is busy. */
|
||||
int is_busy;
|
||||
};
|
||||
|
||||
struct image_data_header
|
||||
{
|
||||
/* Currently 1. High bit is byte order. */
|
||||
|
@ -160,6 +169,10 @@ extern void test_set_scale (struct test_display *, int);
|
|||
extern void test_init_seat (struct test_display *);
|
||||
extern uint32_t test_get_serial (struct test_display *);
|
||||
extern void verify_window_size (struct test_display *, Window, int, int);
|
||||
extern struct test_buffer *get_test_buffer (struct test_display *,
|
||||
struct wl_buffer *);
|
||||
extern void test_buffer_committed (struct test_buffer *);
|
||||
extern void verify_buffer_released (struct test_buffer *);
|
||||
|
||||
#define ARRAYELTS(arr) (sizeof (arr) / sizeof (arr)[0])
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue