summaryrefslogtreecommitdiffstats
path: root/src/tests/pixbuf_test.h
diff options
context:
space:
mode:
authorMichael Brown2014-01-06 20:10:18 +0100
committerMichael Brown2014-01-12 22:53:16 +0100
commitf4d2342e5a924ade6dc7f5f41b82932707835104 (patch)
treea4de1d622b1525d8b19692644cd3e075e8f15792 /src/tests/pixbuf_test.h
parent[test] Rewrite pnm_ok() using okx() (diff)
downloadipxe-f4d2342e5a924ade6dc7f5f41b82932707835104.tar.gz
ipxe-f4d2342e5a924ade6dc7f5f41b82932707835104.tar.xz
ipxe-f4d2342e5a924ade6dc7f5f41b82932707835104.zip
[test] Generalise pnm_ok() to pixbuf_ok()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/tests/pixbuf_test.h')
-rw-r--r--src/tests/pixbuf_test.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/tests/pixbuf_test.h b/src/tests/pixbuf_test.h
new file mode 100644
index 00000000..394f7f5f
--- /dev/null
+++ b/src/tests/pixbuf_test.h
@@ -0,0 +1,66 @@
+#ifndef _PIXBUF_TEST_H
+#define _PIXBUF_TEST_H
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
+#include <stdint.h>
+#include <ipxe/refcnt.h>
+#include <ipxe/image.h>
+#include <ipxe/test.h>
+
+/** 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 */