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
|
OBJS13 = $(COMMONSRCS) xdg_activation_test.o
|
||||||
SRCS14 = $(COMMONSRCS) single_pixel_buffer_test.c
|
SRCS14 = $(COMMONSRCS) single_pixel_buffer_test.c
|
||||||
OBJS14 = $(COMMONSRCS) single_pixel_buffer_test.o
|
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. */
|
/* Make all objects depend on HEADER. */
|
||||||
$(OBJS1): $(HEADER)
|
$(OBJS1): $(HEADER)
|
||||||
|
@ -74,17 +76,18 @@ NormalProgramTarget(viewporter_test,$(OBJS5),NullParameter,$(LOCAL_LIBRARIES),Nu
|
||||||
NormalProgramTarget(subsurface_test,$(OBJS6),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
NormalProgramTarget(subsurface_test,$(OBJS6),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||||
NormalProgramTarget(scale_test,$(OBJS7),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
NormalProgramTarget(scale_test,$(OBJS7),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||||
NormalProgramTarget(seat_test,$(OBJS8),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
NormalProgramTarget(seat_test,$(OBJS8),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||||
NormalProgramTarget(dmabuf_test,$(OBJS9),NullParameter,$(LOCAL_LIBRARIES) $(GBM) $(DRM),NullParameter);
|
NormalProgramTarget(dmabuf_test,$(OBJS9),NullParameter,$(LOCAL_LIBRARIES) $(GBM) $(DRM),NullParameter)
|
||||||
NormalProgramTarget(select_test,$(OBJS10),NullParameter,$(LOCAL_LIBRARIES) ThreadsLibraries,NullParameter);
|
NormalProgramTarget(select_test,$(OBJS10),NullParameter,$(LOCAL_LIBRARIES) ThreadsLibraries,NullParameter)
|
||||||
NormalProgramTarget(select_helper,$(OBJS11),NullParameter,$(XLIB),NullParameter);
|
NormalProgramTarget(select_helper,$(OBJS11),NullParameter,$(XLIB),NullParameter)
|
||||||
NormalProgramTarget(select_helper_multiple,$(OBJS12),NullParameter,$(XLIB),NullParameter);
|
NormalProgramTarget(select_helper_multiple,$(OBJS12),NullParameter,$(XLIB),NullParameter)
|
||||||
NormalProgramTarget(xdg_activation_test,$(OBJS13),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
NormalProgramTarget(xdg_activation_test,$(OBJS13),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
|
||||||
NormalProgramTarget(single_pixel_buffer_test,$(OBJS14),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($(SRCS1),$(SRCS2),$(SRCS3))
|
||||||
DependTarget3($(SRCS4),$(SRCS5),$(SRCS6))
|
DependTarget3($(SRCS4),$(SRCS5),$(SRCS6))
|
||||||
DependTarget3($(SRCS7),$(SRCS8),$(SRCS9))
|
DependTarget3($(SRCS7),$(SRCS8),$(SRCS9))
|
||||||
DependTarget3($(SRCS10),$(SRCS11),$(SRCS12))
|
DependTarget3($(SRCS10),$(SRCS11),$(SRCS12))
|
||||||
DependTarget3($(SRCS13),$(SRCS14),NullParameter)
|
DependTarget3($(SRCS13),$(SRCS14),$(SRCS15))
|
||||||
|
|
||||||
all:: $(PROGRAMS)
|
all:: $(PROGRAMS)
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ pushd "$(dirname $0)"
|
||||||
declare -a standard_tests=(
|
declare -a standard_tests=(
|
||||||
simple_test damage_test transform_test viewporter_test
|
simple_test damage_test transform_test viewporter_test
|
||||||
subsurface_test scale_test seat_test dmabuf_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[@]}"
|
make -C . "${standard_tests[@]}"
|
||||||
|
|
|
@ -14,6 +14,7 @@ select_helper
|
||||||
select_helper_multiple
|
select_helper_multiple
|
||||||
xdg_activation_test
|
xdg_activation_test
|
||||||
single_pixel_buffer_test
|
single_pixel_buffer_test
|
||||||
|
buffer_test
|
||||||
imgview
|
imgview
|
||||||
reject.dump
|
reject.dump
|
||||||
Makefile
|
Makefile
|
||||||
|
|
|
@ -1032,3 +1032,52 @@ verify_window_size (struct test_display *display,
|
||||||
", actual: %d %d", width, height,
|
", actual: %d %d", width, height,
|
||||||
attrs.width, attrs.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;
|
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
|
struct image_data_header
|
||||||
{
|
{
|
||||||
/* Currently 1. High bit is byte order. */
|
/* 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 void test_init_seat (struct test_display *);
|
||||||
extern uint32_t test_get_serial (struct test_display *);
|
extern uint32_t test_get_serial (struct test_display *);
|
||||||
extern void verify_window_size (struct test_display *, Window, int, int);
|
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])
|
#define ARRAYELTS(arr) (sizeof (arr) / sizeof (arr)[0])
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue