#ifndef _PIXBUF_TEST_H #define _PIXBUF_TEST_H FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include #include #include #include /** A pixel buffer test */ struct pixel_buffer_test { /** Image type */ struct image_type *type; /** Source image */ struct image *image; /** Pixel data */ const uint32_t *data; /** Length of pixel data */ size_t len; /** Width */ unsigned int width; /** Height */ unsigned int height; }; /** * Define a pixel buffer test * * @v _name Test name * @v _type Test image file type * @v _file Test image file data * @v _width Expected pixel buffer width * @v _height Expected pixel buffer height * @v _data Expected pixel buffer data * @ret test Pixel buffer test */ #define PIX( _name, _type, _file, _width, _height, _data ) \ static const char _name ## __file[] = _file; \ static const uint32_t _name ## __data[] = _data; \ static struct image _name ## __image = { \ .refcnt = REF_INIT ( ref_no_free ), \ .name = #_name, \ .data = ( userptr_t ) ( _name ## __file ), \ .len = sizeof ( _name ## __file ), \ }; \ static struct pixel_buffer_test _name = { \ .type = _type, \ .image = & _name ## __image, \ .data = _name ## __data, \ .len = sizeof ( _name ## __data ), \ .width = _width, \ .height = _height, \ }; extern void pixbuf_okx ( struct pixel_buffer_test *test, const char *file, unsigned int line ); /** * Report pixel buffer test result * * @v test Pixel buffer test */ #define pixbuf_ok( test ) pixbuf_okx ( test, __FILE__, __LINE__ ) #endif /* _PIXBUF_TEST_H */