summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-01-18 19:52:28 -0700
committerSimon Glass <sjg@chromium.org>2016-01-20 19:10:16 -0700
commit747440d0fa95f2205a8fcef49b6c7845700b6246 (patch)
tree249271d5cb0b0fcf090a71db00b3c9737ae64b26
parent85e08db85bb9d446f3b48e42cec73f9f24073d52 (diff)
downloadtalos-obmc-uboot-747440d0fa95f2205a8fcef49b6c7845700b6246.tar.gz
talos-obmc-uboot-747440d0fa95f2205a8fcef49b6c7845700b6246.zip
dm: video: test: Test that bitmap display works correctly
Add a test for the 'bmp' command. Test both the uncompressed and compressed versions of the file, since they use different code paths. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Anatolij Gustschin <agust@denx.de>
-rw-r--r--include/configs/sandbox.h2
-rw-r--r--test/dm/video.c54
-rw-r--r--tools/logos/denx-comp.bmpbin0 -> 4148 bytes
3 files changed, 56 insertions, 0 deletions
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 23ae44c8a0..6498981cef 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -163,6 +163,8 @@
#define CONFIG_SYS_CONSOLE_IS_IN_ENV
#define LCD_BPP LCD_COLOR16
#define CONFIG_LCD_BMP_RLE8
+#define CONFIG_VIDEO_BMP_RLE8
+#define CONFIG_SPLASH_SCREEN_ALIGN
#define CONFIG_KEYBOARD
diff --git a/test/dm/video.c b/test/dm/video.c
index 65db216b31..9f5e7fce37 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
@@ -215,3 +215,57 @@ static int dm_test_video_rotation3(struct unit_test_state *uts)
return 0;
}
DM_TEST(dm_test_video_rotation3, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
+
+/* Read a file into memory and return a pointer to it */
+static int read_file(struct unit_test_state *uts, const char *fname,
+ ulong *addrp)
+{
+ int buf_size = 100000;
+ ulong addr = 0;
+ int size, fd;
+ char *buf;
+
+ buf = map_sysmem(addr, 0);
+ ut_assert(buf != NULL);
+ fd = os_open(fname, OS_O_RDONLY);
+ ut_assert(fd >= 0);
+ size = os_read(fd, buf, buf_size);
+ ut_assert(size >= 0);
+ ut_assert(size < buf_size);
+ os_close(fd);
+ *addrp = addr;
+
+ return 0;
+}
+
+/* Test drawing a bitmap file */
+static int dm_test_video_bmp(struct unit_test_state *uts)
+{
+ struct udevice *dev;
+ ulong addr;
+
+ ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
+ ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr));
+
+ ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
+ ut_asserteq(1368, compress_frame_buffer(dev));
+
+ return 0;
+}
+DM_TEST(dm_test_video_bmp, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
+
+/* Test drawing a compressed bitmap file */
+static int dm_test_video_bmp_comp(struct unit_test_state *uts)
+{
+ struct udevice *dev;
+ ulong addr;
+
+ ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
+ ut_assertok(read_file(uts, "tools/logos/denx-comp.bmp", &addr));
+
+ ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
+ ut_asserteq(1368, compress_frame_buffer(dev));
+
+ return 0;
+}
+DM_TEST(dm_test_video_bmp_comp, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
diff --git a/tools/logos/denx-comp.bmp b/tools/logos/denx-comp.bmp
new file mode 100644
index 0000000000..89d0f471c8
--- /dev/null
+++ b/tools/logos/denx-comp.bmp
Binary files differ
OpenPOWER on IntegriCloud