[U-Boot] [PATCH 18/18] dm: video: test: Test that bitmap display works correctly

Simon Glass sjg at chromium.org
Tue Jan 5 17:31:14 CET 2016


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 at chromium.org>
---

 include/configs/sandbox.h |   2 ++
 test/dm/video.c           |  54 ++++++++++++++++++++++++++++++++++++++++++++++
 tools/logos/denx-comp.bmp | Bin 0 -> 4148 bytes
 3 files changed, 56 insertions(+)
 create mode 100644 tools/logos/denx-comp.bmp

diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 23ae44c..6498981 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 a5332fa..52aba2e 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 0000000000000000000000000000000000000000..89d0f471c85cf734b5f0e2bb2508d39f5b9e72b8
GIT binary patch
literal 4148
zcmeH}JBVCW7{|ZwzF%|i?CfTD_HOoU9!9h=1``B36Gbe<AYvs!EaD?*V<8b+Q&?(h
zNm>O{DjKjbg$6`yOp(GSK^vPDZ4|D*@7%dFJBwIaNQOOg&pqGkfBxTN_VhC+$KpTl
zM<VaCyTW>jrIN8kJ}yPxm at R)`htdsy{^j&j&%I?E`#k at -`>WrHoIihlzQ6JN0~jqn
zgj at QYdis={dEtzlefg}Md-I%Jc;|v#ymV16eQ-%Ge{@-{esWc=eRfT*e|=qUet%PL
z-M%Gvf4(cbzwOE+Uv%>LSDie2qmviE>E!kAI(hqtPTu>mlMioqa^<H^KE2b)m%nuK
z?XR8O+U?}dAD!&}*-6(e!CJy}@8uo?_ZawZ7&z)eQPqg=^fjjm&q%{i0w;3B1(LE}
zaayQoo;Wl`y+mtvNrLoMmObq}a*1eVHnGEx<c?`p*n8&B0#3AwMMIt;&%|Vf)0DaA
zzs(c7Ff~+o40zXk<gLx4`Dwh4#pwNxdVG;-?e~>BEe!{g)#(V#agEl14zzi`$D5%s
zxvl-43?GQ2u=fRGtroue`*EhW8*bbC<23pwk6<$|S%ii0Z3uJEc#jXcv7GY;|I2=J
zI80oxtto8I8H88-S>z!r#$nX^3R3cI at dkvwSE2+I!R#E}O7UP(dtagDZ5DxiRH0|p
zvZsmZ_<IzVFC;ZA<>psiY%J!PM>Cvgg|EaU=*9hM2-d+rSlF99rv<Ly^CZ5WpeB$M
zNBj5mNp$XGZ}PxJ at V>%HBrE8$qk<dWdk)6zsOwCT)jjgkv<;_tY*bKe9QCy|<~f0<
z*m@(i%)yBD#oQX-k*}h9u<s+8u36(9UdUdc#z at xR$=lm`WswFXR?R85AVy5Q5m-b^
z`0()te^w!!=ax&qE3vQXQ|`FmQ{OXSfM2VD0Tn#Z3n3 at Qggw{1R7<<Jv2B)<9(w{F
z!>SAG84r2S)au+;M<C#)Rx9R112BRfmJ-{AGII2DTJT+YO)c>ba<j0mCAUl+tE|~w
zU>+VaPEupqD(fNijN5a5?<=l0?(F at z`ACBj?_jnQtBYZ+63f`MIj6;gun?rwc6r?C
zmac1i%xSCZVmuZjv<{Jpk?eTP;B1pdx3`>bCXE>Wa6*1sdX;BzaITd#I^J+OI;A^+
zmnk>pS+{eIqR|#CTLn7wfKIvZ8ojnDn{%D2S#cHe%pJ5$gj+J5%SMeJgq7_P^3*xl
zAU-}e<{C8-N~hx*jl}K1D|brJ$roN4ZbS6#2A$Z|)Cd)tYhX9$b~Ps at IV?3{#^iHk
z+b}h$o7 at p&q8nDP71c_AM<uM3SeMq(S%2SxTcoU*JVdTQ3i7)2Q?-C;Dm~fqxJy at p
zh#9g1KWhp4q3Ks+`>u1ot($tDN3OtQ(PU_Wk!h*b1dWV!+<U8$Vh>K!$mIab=2R{Z
z&*a=5jl3!58s>+7%lNGt^;%T!Bty$`YI;nhI+G3f&d|)|g!eVZi?T|uk&`Kt;-wzs
zx`GGuvc1qbMx`F{_A4e~Ro*_M3iip`y)x$AvgPWMH2YWSlC6$Ya=2t2ne}0^PM<Ox
z!L`S`j;0<N@@OvKgH3}$o>8-V at 5Ha6+z%rsSY&a=hTS*tJRO5e`h+?=;2B=o!>DD?
z<QvqAWsz#%!uOP15L-8g{AocCA+=n`Of=J6WSC5of1Bnu$=EAhRj1%&&-_?a3tbR!
z7LDzH7 at H(@VKECIxyqSli`w%Q&3_W)I<?xj`RBj$!sZqou4^%MJ)7%vh(>e-eNtHm
zlnpbYM03$2v1{xXCe?V%IX#%tf%Xd=F+=)&sS!O|@|(M at o4Pvd#Z_&s*AHX$7=55E
z{XL<-C)VGoJ7n0BM{VA;bnbMR4jI#dD$h?Do|eh7HB1&Xvu(1)bV@*wPQj|}FqaIy
zO{R4^9mbM%n}}`Mta4jF9jlfcFd1`j1`~_k=1o5ri5D?5GRyrsQP>Aq=iDlT>0!=J
xZO)RVl5uUE)G_*-_8u``QZKPxq!rV&4Qw8@)aGW0-441JsjvUhv$Xq&{tYdt;;8 at t

literal 0
HcmV?d00001

-- 
2.6.0.rc2.230.g3dd15c0



More information about the U-Boot mailing list