[PATCH 14/23] video: Add a test for 16bpp BMP files

Simon Glass sjg at chromium.org
Fri Nov 19 21:23:58 CET 2021


Add a compressed 16bpp BMP file and a test to cover this.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 .gitattributes                     |   1 +
 configs/sandbox_defconfig          |   1 +
 configs/sandbox_flattree_defconfig |   1 +
 test/dm/video.c                    |  24 ++++++++++++++++++++++++
 tools/logos/denx-16bpp.bmp.gz      | Bin 0 -> 4516 bytes
 5 files changed, 27 insertions(+)
 create mode 100644 tools/logos/denx-16bpp.bmp.gz

diff --git a/.gitattributes b/.gitattributes
index 899473ab0fb..1879a2dfb3c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3,3 +3,4 @@
 # Denote all files that are truly binary and should not be modified
 *.bmp binary
 *.ttf binary
+*.gz binary
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index c390afe9de5..5dffc704bd6 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -285,6 +285,7 @@ CONFIG_OSD=y
 CONFIG_SANDBOX_OSD=y
 CONFIG_SPLASH_SCREEN_ALIGN=y
 CONFIG_VIDEO_BMP_RLE8=y
+CONFIG_BMP_16BPP=y
 CONFIG_W1=y
 CONFIG_W1_GPIO=y
 CONFIG_W1_EEPROM=y
diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig
index 7cc76bf2713..e879ca40041 100644
--- a/configs/sandbox_flattree_defconfig
+++ b/configs/sandbox_flattree_defconfig
@@ -198,6 +198,7 @@ CONFIG_VIDEO_SANDBOX_SDL=y
 CONFIG_OSD=y
 CONFIG_SANDBOX_OSD=y
 CONFIG_VIDEO_BMP_RLE8=y
+CONFIG_BMP_16BPP=y
 CONFIG_CMD_DHRYSTONE=y
 CONFIG_RSA_VERIFY_WITH_PKEY=y
 CONFIG_TPM=y
diff --git a/test/dm/video.c b/test/dm/video.c
index d5648f0c59b..c496b05df76 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <bzlib.h>
 #include <dm.h>
+#include <gzip.h>
 #include <log.h>
 #include <malloc.h>
 #include <mapmem.h>
@@ -339,6 +340,29 @@ static int dm_test_video_bmp8(struct unit_test_state *uts)
 }
 DM_TEST(dm_test_video_bmp8, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
 
+/* Test drawing a bitmap file on a 16bpp display */
+static int dm_test_video_bmp16(struct unit_test_state *uts)
+{
+	ulong src, src_len = ~0UL;
+	uint dst_len = ~0U;
+	struct udevice *dev;
+	ulong dst = 0x10000;
+
+	ut_assertok(uclass_find_first_device(UCLASS_VIDEO, &dev));
+	ut_assertnonnull(dev);
+	ut_assertok(sandbox_sdl_set_bpp(dev, VIDEO_BPP16));
+
+	ut_assertok(read_file(uts, "tools/logos/denx-16bpp.bmp.gz", &src));
+	ut_assertok(gunzip(map_sysmem(dst, 0), dst_len, map_sysmem(src, 0),
+			   &src_len));
+
+	ut_assertok(video_bmp_display(dev, dst, 0, 0, false));
+	ut_asserteq(3700, compress_frame_buffer(uts, dev));
+
+	return 0;
+}
+DM_TEST(dm_test_video_bmp16, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
+
 /* Test drawing a bitmap file on a 32bpp display */
 static int dm_test_video_bmp32(struct unit_test_state *uts)
 {
diff --git a/tools/logos/denx-16bpp.bmp.gz b/tools/logos/denx-16bpp.bmp.gz
new file mode 100644
index 0000000000000000000000000000000000000000..ed99c58192e9e1ecbd3b118823f197a484cdad34
GIT binary patch
literal 4516
zcmV;V5nJvbiwFqVVwGV412HaQZEyhPT|aE%Ocu}PRyqktuqbIxqRfVkmFq6urnmx3
zyq7X%N<xUV>Avm0R2xVlZMu)*3aTuS6iK(~HqvPmAjL-41nC-I!)HhXx{B{SjEC``
z at pue2HthVg(gy#V`T4y!@4flscfzNCEey*i<=;o;-#^uVuNJt4KY;_v at qaJDf1~oh
zg at yn8d12u%>Ywla{*Mm}4$Gq9?>_=jgvHgxi1LpO;7noB?>hTmAQMSu-mJLvyB*Um
z?2^U`_zwJTm-oeO-pp8<Qx at HqIl4Uh-Cp;KFjeL-gUQ9cnP)LMVec?GA~Vb3q&=&f
z at S6*#CE`0{M$C>y43gZ<8iz~1b7T*{IkGAX3w|@hil9WT+7bz@){@~jU)sX?&c-;n
z2ndI>CV2?SK=_7!voI-#esbqeWac*f(qpsU%Ilr%<$1T#EuWruvh@|V`U|O(ZG`>p
z<YqNNK2Kg>KD;b-E6q~oD7i_p8Px=QezTk}?5Bi~`HZEF%u%y+sno6*L%;c>$7b#h
z?%ogd*t)gnu(4~r>iytFIxQ6AI%eW)H~Mp~o|2oow-9QUM8jQbJNjpxp5vq4iuTB~
z_1Gjsn|$BQ!}|f>&!p)5Wj>Ow16K+oev0uI$$W;`KiS6Yncp73+m9NKHnm3%?u<2=
z9(zXFE5^AFsu$N;yIs3^Y~jDH^ij{>i*!~8;QovGk=Nll(JGdjw;wY{=<fXJ-fu^5
zVe3{o<0E2I9AGI$(#QALZnkctRdZdY!=CxM`2wna<|DE?C)>Qr>1Bz9zx)xFW%M at I
zZic#>KzfPvQ3#1DKc at xw3zE-#0qNsqNoDXB-4|JaPS(0MUURpwK(gCcPq1c99aG4%
zaUGg}Xyy-JspxPB|8 at 0b*2NbI{3WlW^K+wKp%@oci-IgEl1U`hWN@#&V~=}HdSWhy
zq)%TnA%r9l{a#II5Vz(J@$r5D&O*|SWD5e_yP8;CtnDD()t({V!e94Odj9PCG_Rs#
zvg`p?kgYKuK{bYbNF%Ga?MoY0{Oxa}bAUWGRZUzzB*{Fu%krTr|7GnN-7@^OvFnUK
zue8|eY4sJPr^X}5;=q0~f28LRS~D|$x!9S?%~>7%jrh~st+P7(74#3CEXmRuuVd%W
z3kI!i7%P89`GY+p;!nI?K3qQBI%<~rQD43fc~|u}bELgD>M?+AK>7>&8{^Y!j^)pN
z25C=X<&SRvj1c=sUrE-j7)Le(XgI3Di=>S?5W~oWamJsU4AQg8?EH~H=C51E at dxfn
zm;O4sO0@;3PevXgvUR|Jg1;zza%epM+=}Y#p5qRG2Y2~GzR)bcw4hvRds}45l!$D%
zo{(2EN5~^YGKzW-UXj}RN`0l1MOFazDV=P-faLMA1fH~S6BoI~pnZ<T9sW at Nfg`b#
zQS_RN;dn-ivnQml$;GW((iuwh69-4l(WTzkvBKoDyzHOhE`N&mk}|ijnn3-nhP`@K
zlViw*aFmDeB0<kn2$`8R$G>EF&7S-GEp4FI>(4ydiB?})e4p>XNYU!aj at ctfZZ=Dg
z${C_^#@bCMi+huNp<BUGVYkw)U`t8IB$*kuC%DbusBdVoJ)ad$`wxV1b(nQj$Q}Ng
zC3$^mV}JW{l%vx}6aMixZibrm?q2vWpeJ?SPCB+!{;CP**Lug^r2M at l@~3#ho3v++
zgZfHix3Mb_GyiTg$h~HNN-=&`=Q>=+oRQ2Ny+~Z=u|>-m$?IqJ#}>lX)4^S{RNEnq
zUHA)US((`!(e)PW>_vR9YcRpepWpQiD%jYYg*j;cfX$coyOu$QJM0w_soiiXb$#)0
z at sPR>m(sg?ahB`Gg%HZcaxs`S1po7|ceam3?CwxWw14~lY(}_Tnb6-ALiLqQs<E3n
zx;*ce*KUDdgLBcO+{$C?psqx-<<s-b5%BEl3GbPuvlp?s`pYjQ?hvvcoYf_{SWWDw
zmJgfd1I at VkWO$Jd?k-EqhnZA0F?|MU*QI0OGL1ce_UAN%1XL3zJE!LdcjP%A?t$xw
zclpBpcF|SqGOqN6OLpu*2CeT<Pjs@;Drqi@*LZAo%Z=S?!VUhcdtusD$5hSLX|ZX3
zgb><Kot~3($kWBuQ@$W<PHH8|>@{9lUr||MW$*j*#gD at 1Jp<;NWv}(rDfoW3LY^PU
z2J*NF?Fu&CMYul(QZ8&ZOSJyeZ*ZN<b2taWDaaaZoio^rJ7G`Z at 41sj^DBamv%2E>
zIFv*Zf3)+{JM7%GpKG!>ajT{au9Gh~>!ZyK(#~#wo?q?|`2J<d35QPjdsCTj?l6a2
zM|cLI6aLJ{wKgI9&5k`m;(c$uJ21~WXJOEIY=4{A<lX7~g{5e~{F6zsc2iAE!e2EG
zJvKBuho--|nb%qp`2LBl6k_&rh9h`BI2<{<x9C6apBp{DTk0JyOLV^md(p-tXCvQD
zoe{oG?lHJI(_14B?uyjjgv?(tjx`d_K}p95R<AWLJq8U|PgROfL*@_7e}aHM(f#qy
z$R5CB%epUt>_rT}>Q|(}SrmKmiyvCe{aM%pxO%eo2}yA;n#&1+W)G)#F at N1T?lnk=
zR>`>m7{wWX&FIz{;JGVbeueDSWWU=pedyPo=;hD&n_m93^LPM*VIQ)`{)6w6tssd%
zz5O%H{n`21bQgg<8<CWCCiTAvLTcRSL-75YEJ&+TxD{@#N@=MmcY99b7je+-<>a&!
z0e4aEm6IDir~R2Yh$=NnYid%H?V?c9EHZ(x>!{xU(_7Byja|)XtzK2?3mD at E;_w%4
z$Y!{8!W;wggPh!c9x~R4_u!TL7Ui(Q0BaO34jOVqWsFzv0oe>ov>ejuxtTxmT$d|j
z{GlQj6UU4=_(9sTh2o$lhg<fMAUu!ULilzB$^JcX{fHv5WO)T|CoEZ6DC2x~*aMUJ
z)5O2JC^|Ey_D1{RR&!J<e$edI<eDNw(Y`qPEiKVA5u)x4z*j>Ccj=CFcgU|z9<9;C
z*&-nS4YelRs3uW`Un>uTzH%5Ll4^ezq at 03e>;Bg-8g#yn%N~rBp#<qO5Q5qsQF-?{
zOV3Cg0L_R0 at AlG?J{nq;8Y;8h9*x09FQOjh2SvpW=%aZgmEc)q2H7%$)+4>+cz)s_
zEJ60Vy|%@DkzA!ED=jX{kUb!$<a<Qa_W<;mEXVu+aa)tgHMv(?2<l9-HQL=Mro~@Q
zhF3Lu);UBVK_YBni_~^Sg3)mc_Mim8HVYQgv#MIQqD-p^)B&Ky=9=hN&{`q2oBi5;
z2L1Z|kL*`1P8`o55C`pNaabQ(opHU3GO6vLzl99Y?*Zd-z%uC_tV;Ip5lacFw_}q(
zZ3Lp<qlUcJfQCjdr`E=<*598&&YM?TsecDhDx0<~M{i-3(DtI-7#_2-A=<Y9pJukk
ztZTmTUNon=Jsa at 81gt0yC5Io_xBUC_$*{g*lZ^8N$f>~a4%*N7sd}tR;Qe$N-T};y
zpr>kq*B{fM_42fPh76B5<PY|)_Sy>|NU)v8XLNh;NQ8mE??c(C$wiawKnq%<+CBuJ
z!J_F+n%4)BA?Wrw(&xU&t8A^28`^A+i9e_>VH1DRep+Rgoj<b`h401Q`dRbWr0xTR
zf%Y4K(62(1KRDwLS{;$W>R8npYf_Fub|RAcRFnR~{($XGMv0b~b*_;if2z4ElKS$)
z*;p^|b=leutu{Je4>(%DVg;bwMF>7L(rJ4shVQ^=1EM!<>?t~`%b)J!wSU7|L}sf>
zgQ)tf_7VssMj%F?MH%)jc5eadDAISM6hq6v_3s&^Pc*#)_SK+zF9q#C_ppveK%9;F
zHe_i1`My4KBgqZ$(MUZMuS%d2<58q1qQ0q!MV<nA^4*>_gJ?v%rq&ukzjqWJ`h9L-
z%$yD#f5XpkGVTkaNmwV|!UJim<0<?o(leu}Mr9!PM3!U}0~Rf#XdIPseX<rKzY#?2
zTIoBub23BlMCavI6X3UOR{I=hqnDULP;-zW!pwn)S41)<H7Sx^laXwS!~frFT3sAP
z{zW-W$zgGQ9M=M`2x~<98CVW at C16i0!7nY^yf$+N3$2G9KCuI(@8W at EX;=YzP;G7w
zWGwl<_72@%xMepo0CG3 at 9C#0yiA7IIOF5f*@k(4<lnpf*X#WN|Fdcgm-SUw#fG;B-
z0<MYv{hgJyVFk=w6^VIEkTFR!-3{bE)5IPIW<F{1i)#YTBxPYi9V3P;q#b)?p#6T(
z-eqXyauNnn{eZUB<Yuqi1G&qzqC<kC`ES6(0oQ=6XSWA3v49Vp0b~Kl{((^s;GGU@
zqWCIcB*d7Prp-N|L0*S-;W{w-cw at 2ds6EC=IzMO(+nkdDkI}vpJAmIrw+H+)c#o#z
z(IW`1-%$J_R1<U06}@4Zi%QPmLmv>0ooByVdkyADb3VY9>$AqvMtvl^$JF_!FtagF
zIIFW|THsfz?9WPF)A)l at I4`qM`M%X$4Kiq}wh&lW9|7ND);Sah%`$DipBZ2ds{L7d
z at 7WrWkvBYx=vJKjDt0SBAe^ioTvfcVS>sUbH_PMg7RAONiv`pod!0FQYdyKwc#-l2
zXF59$f20V+8V~DW{Y`Cm>o&-eDE6Z_w4J%^0cYSFS1*uZzjhx%y8=BIYwRA}1&_sp
zyH0lURsFd|`?YTf=@`w6#z<YKO<p_ru1WMJ2wo!B0Xt8+wI2e at +Chv$g6>BTE#Ft`
zonVAeax-60q|pZ+LBy9iTH0`TUo^xY>s|Na^p%)z%6kkEqYzr!SU#N2J`((J1Rsuk
zy2%^>UIUzVa^21+q7;65NHdPkW8`AVjYf9A)g3bfK$bLqm|e(8tCBub?KXdD%?dat
za-9yX?zDfy>p?Dlv_D6-S at wM)1IaYVC<(*tR=3yfak|{7HCJ38X0eLuykJZ1_~9;l
zN$UDl7VO0;D}@ynjirN}T~zz>XE>87+=@sD at bC7s-8h;a7cTQhU;jHzuttZIA^X)!
z{`_RnnQuNWz at 94JvFED<hCV$^&W{~_f9EZKe(pM%+MS#qI#So})|j*dk$?QHhO9<d
z+`+|<N%tl+!pxq(dlv7-SoTO6lf8$Bzqwss5`Qe2Xz!2?9si<TW9$~fWxSi2TWGu@
z@#p`}v3v2<PW$tlO7`2u!|}K5*VHw{mv3Ro2z=Ct?6+feU)JLf6{Zz0&S1U&U&Lqr
ztU&rkE8AKiZ(zlr{}M>X31Qwk?JJhv!kWFH?t72F=ZL}j{T=r~<1d&JD1=Bk!)n5h
zy3pARstqK49r at Aa@B6TT<y$^}b47xFPWwoQ>(i~p?CyV$zd@)6*O_bt%_&&;3nqh?
zB@%zb9DP4uuU@;I9~hrK))CF=qMEQ8zeDrs!{zaF;4DZp^A}7B>|{yoX;+q*ckXr*
z?Ce>6soP&9iMxMjSG0Y4 at b2kOzv>;tuh8Ici(=?klY93a5 at +mz;x}6)<YHR}2K8%l
z+|Kij&mQ~t8>b5)r0<FK^5;ztQnAQa*_B{M!(fLg{4EFVs?0YPFP=8Z7g&SJpb%<|
zcG$;zE4ZI$1{j|`Q2b_!26_GM$F-ZQ7GUtxw}>Z^$YksVHJ>moSY_&+6#Flr&o3rt
z4-~&!;SVP1H;g5y{fL)vk3CTQZq0PzrtJNU47$(WAAc+?_}!{$!D+65wK(~z_w0gu
z?G1aN%)bnJ$=>`k=#}Q`i{GvE243{JKNEw~V-J-1>Pe<4d-KTP^w|StJ~9h#<XFZp
zvo3{xatF)oN}-bxaW6|SN1E)w1%y3V(!TTI41V)vE<v2LKtgg#QN}nWh%=A$Ab-0&
zNX2i4tg#e$?ojcYDH8nV#AykRXBd2)wJH(cxtl$?GZugRYp^rlo0;bhmub%@^t-*@
zl;on-j-hTz-R#;r_TmML$-qRj(<_sE+u$waemdUFrSU4_h_^^!^z{Ez((u5F$N&Hz
Cv at 3l8

literal 0
HcmV?d00001

-- 
2.34.0.rc2.393.gf8c9666880-goog



More information about the U-Boot mailing list