diff options
author | Benjamin Otte <otte@redhat.com> | 2010-07-05 22:03:42 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2010-07-05 22:03:42 +0200 |
commit | 986ddf565215dc01065eade46921abe8a4b7912e (patch) | |
tree | 15ea3180ab75fe6f35a630397a22ad0afde842f2 /test/api-special-cases.c | |
parent | 72878d70ea75be03f47fa9d53f8305e76162054e (diff) | |
download | cairo-986ddf565215dc01065eade46921abe8a4b7912e.tar.gz |
test: add image surface functions to api-special-cases test
Diffstat (limited to 'test/api-special-cases.c')
-rw-r--r-- | test/api-special-cases.c | 90 |
1 files changed, 66 insertions, 24 deletions
diff --git a/test/api-special-cases.c b/test/api-special-cases.c index d1eaff8b5..6fdaddbcd 100644 --- a/test/api-special-cases.c +++ b/test/api-special-cases.c @@ -52,6 +52,7 @@ #endif #define ARRAY_LENGTH(array) (sizeof (array) / sizeof ((array)[0])) +#define surface_has_type(surface,type) (cairo_surface_get_type (surface) == (type)) typedef cairo_test_status_t (* surface_test_func_t) (cairo_surface_t *surface); @@ -268,38 +269,79 @@ test_cairo_surface_has_show_text_glyphs (cairo_surface_t *surface) return CAIRO_TEST_SUCCESS; } +static cairo_test_status_t +test_cairo_image_surface_get_data (cairo_surface_t *surface) +{ + unsigned char *data = cairo_image_surface_get_data (surface); + return data == NULL || surface_has_type (surface, CAIRO_SURFACE_TYPE_IMAGE) ? CAIRO_TEST_SUCCESS : CAIRO_TEST_ERROR; +} + +static cairo_test_status_t +test_cairo_image_surface_get_format (cairo_surface_t *surface) +{ + cairo_format_t format = cairo_image_surface_get_format (surface); + return format == CAIRO_FORMAT_INVALID || surface_has_type (surface, CAIRO_SURFACE_TYPE_IMAGE) ? CAIRO_TEST_SUCCESS : CAIRO_TEST_ERROR; +} + +static cairo_test_status_t +test_cairo_image_surface_get_width (cairo_surface_t *surface) +{ + unsigned int width = cairo_image_surface_get_width (surface); + return width == 0 || surface_has_type (surface, CAIRO_SURFACE_TYPE_IMAGE) ? CAIRO_TEST_SUCCESS : CAIRO_TEST_ERROR; +} + +static cairo_test_status_t +test_cairo_image_surface_get_height (cairo_surface_t *surface) +{ + unsigned int height = cairo_image_surface_get_height (surface); + return height == 0 || surface_has_type (surface, CAIRO_SURFACE_TYPE_IMAGE) ? CAIRO_TEST_SUCCESS : CAIRO_TEST_ERROR; +} + +static cairo_test_status_t +test_cairo_image_surface_get_stride (cairo_surface_t *surface) +{ + unsigned int stride = cairo_image_surface_get_stride (surface); + return stride == 0 || surface_has_type (surface, CAIRO_SURFACE_TYPE_IMAGE) ? CAIRO_TEST_SUCCESS : CAIRO_TEST_ERROR; +} + -#define TEST(name, sets_status) { #name, test_ ## name, sets_status } +#define TEST(name, surface_type, sets_status) { #name, test_ ## name, surface_type, sets_status } struct { const char *name; surface_test_func_t func; + int surface_type; /* cairo_surface_type_t or -1 */ cairo_bool_t modifies_surface; } tests[] = { - TEST (cairo_surface_create_similar, FALSE), - TEST (cairo_surface_create_for_rectangle, FALSE), - TEST (cairo_surface_reference, FALSE), - TEST (cairo_surface_finish, TRUE), - TEST (cairo_surface_get_device, FALSE), - TEST (cairo_surface_get_reference_count, FALSE), - TEST (cairo_surface_status, FALSE), - TEST (cairo_surface_get_type, FALSE), - TEST (cairo_surface_get_content, FALSE), - TEST (cairo_surface_set_user_data, FALSE), - TEST (cairo_surface_set_mime_data, TRUE), - TEST (cairo_surface_get_mime_data, FALSE), - TEST (cairo_surface_get_font_options, FALSE), - TEST (cairo_surface_flush, TRUE), - TEST (cairo_surface_mark_dirty, TRUE), - TEST (cairo_surface_mark_dirty_rectangle, TRUE), - TEST (cairo_surface_set_device_offset, TRUE), - TEST (cairo_surface_get_device_offset, FALSE), - TEST (cairo_surface_set_fallback_resolution, TRUE), - TEST (cairo_surface_get_fallback_resolution, FALSE), - TEST (cairo_surface_copy_page, TRUE), - TEST (cairo_surface_show_page, TRUE), - TEST (cairo_surface_has_show_text_glyphs, FALSE) + TEST (cairo_surface_create_similar, -1, FALSE), + TEST (cairo_surface_create_for_rectangle, -1, FALSE), + TEST (cairo_surface_reference, -1, FALSE), + TEST (cairo_surface_finish, -1, TRUE), + TEST (cairo_surface_get_device, -1, FALSE), + TEST (cairo_surface_get_reference_count, -1, FALSE), + TEST (cairo_surface_status, -1, FALSE), + TEST (cairo_surface_get_type, -1, FALSE), + TEST (cairo_surface_get_content, -1, FALSE), + TEST (cairo_surface_set_user_data, -1, FALSE), + TEST (cairo_surface_set_mime_data, -1, TRUE), + TEST (cairo_surface_get_mime_data, -1, FALSE), + TEST (cairo_surface_get_font_options, -1, FALSE), + TEST (cairo_surface_flush, -1, TRUE), + TEST (cairo_surface_mark_dirty, -1, TRUE), + TEST (cairo_surface_mark_dirty_rectangle, -1, TRUE), + TEST (cairo_surface_set_device_offset, -1, TRUE), + TEST (cairo_surface_get_device_offset, -1, FALSE), + TEST (cairo_surface_set_fallback_resolution, -1, TRUE), + TEST (cairo_surface_get_fallback_resolution, -1, FALSE), + TEST (cairo_surface_copy_page, -1, TRUE), + TEST (cairo_surface_show_page, -1, TRUE), + TEST (cairo_surface_has_show_text_glyphs, -1, FALSE), + TEST (cairo_image_surface_get_data, CAIRO_SURFACE_TYPE_IMAGE, FALSE), + TEST (cairo_image_surface_get_format, CAIRO_SURFACE_TYPE_IMAGE, FALSE), + TEST (cairo_image_surface_get_width, CAIRO_SURFACE_TYPE_IMAGE, FALSE), + TEST (cairo_image_surface_get_height, CAIRO_SURFACE_TYPE_IMAGE, FALSE), + TEST (cairo_image_surface_get_stride, CAIRO_SURFACE_TYPE_IMAGE, FALSE), }; static cairo_test_status_t |