grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3] tests: Add pathological iso9660 filesystem tests


From: Glenn Washburn
Subject: Re: [PATCH v3] tests: Add pathological iso9660 filesystem tests
Date: Thu, 16 Feb 2023 11:59:20 -0600

On Thu, 16 Feb 2023 13:20:30 +0100
"Thomas Schmitt" <scdbackup@gmx.net> wrote:

> Hi,
> 
> On Thu, 16 Feb 2023 01:04:37 -0600, Glenn Washburn
> <development@efficientek.com> wrote:
> > These are not added to grub-fs-tester because they are not
> > generated and none of the filesystem tests are run on these isos.
> > The test is to run the command "ls /" on the iso, and a failure is
> > determined if the command times out, has non-zero return value or
> > has any output.
> >
> > Signed-off-by: Glenn Washburn <development@efficientek.com>
> > ---
> > Interdiff against v2:
> >   diff --git a/tests/iso9660_test.in b/tests/iso9660_test.in
> >   index 0ec28bd066..44bc08c6df 100644
> >   --- a/tests/iso9660_test.in
> >   +++ b/tests/iso9660_test.in
> >   @@ -14,12 +14,17 @@ fi
> >    "@builddir@/grub-fs-tester" rockridge_1999
> >    "@builddir@/grub-fs-tester" rockridge_joliet_1999
> >
> >   +echo "Testing for proper recognition of CE loops ... "
> >    for fs in iso9660_ce_loop iso9660_ce_loop2; do
> >      tempdir=`mktemp -d "${TMPDIR:-/tmp}/${0##*/}.$(date
> > '+%Y%m%d%H%M%S%N').${fs}.XXX"` || { echo "Failed to make temporary
> > directory"; exit 99; }
> >   -  gunzip <"$srcdir"/tests/${fs}.iso.gz >"${tempdir}/${fs}.iso"
> >   +  gunzip <"$srcdir"/tests/${fs}.iso.gz >"${tempdir}/${fs}.iso"
> > || exit 99 output=$(LC_ALL=C timeout -s KILL "60" \
> >        "@builddir@/grub-fstest" "${tempdir}/${fs}.iso" ls / ) ||
> > ret=$? rm -rf "$tempdir"
> >   -  test "${ret:-0}" -eq 0 -a -z "$output"
> >   +  if [ "${ret:-0}" -ne 0 -o -n "$output" ]; then
> >   +    echo "FAIL ($fs)"
> >   +    exit 1
> >   +  fi
> >    done
> >   +echo "PASS"
> >
> >  tests/iso9660_ce_loop.iso.gz  | Bin 0 -> 897 bytes
> >  tests/iso9660_ce_loop2.iso.gz | Bin 0 -> 904 bytes
> >  tests/iso9660_test.in         |  17 ++++++++++++++++-
> >  3 files changed, 16 insertions(+), 1 deletion(-)
> >  create mode 100644 tests/iso9660_ce_loop.iso.gz
> >  create mode 100644 tests/iso9660_ce_loop2.iso.gz
> >
> > diff --git a/tests/iso9660_ce_loop.iso.gz
> > b/tests/iso9660_ce_loop.iso.gz new file mode 100644
> > index
> > 0000000000000000000000000000000000000000..9c53c569b8e5c2441273d49f4c8e13e4b3303c24
> > GIT binary patch literal 897
> > zcmb2|=3ofBusfN7`Rxt={M#uq3<<mEx`p{35L_s?rt`5_&ho@gi=FE>N2(O2EDtVk
> > zV!mF;l$o*IlVjfrJNEhM(>tw&wEQkz$h$g?`Kr;{^NWwz@Be?_yzkL<P9_HYK;caP
> > zBMZ*vjOI-%PkDY@P!aue*Zzaq4`m;3TYuF0MM=}%&};V&Ru<M5?hszGIz*~OY@x6X
> > zcYbM}Jd5?~Z?n_>ZnR$cYS&()@00TO-|oL;;k(=OmM{C=iVM<ee|KNpVUu&3zyI~i
> > zRp+eIuf%xF7tgP@mEZA=`Q1@Zn;v%0TmFwNc1#i6|FFnSBBxq3=X&U$oWoNsY<K@>
> > z#_wqSvIkrf>qL%wO1MZ*@eTFc#D4Vlsq24hKSos?-|;s4BcIjWg#4*n%M0S}#LK*6
> > zd8sv(ZLaGJmh*?A=iX*Ncy8C<Ws&u7{8sJCTYqNnlH2dUEjIDHoHwcLvZJ}&mp0G;
> > zc_w=Nw?7?zT(xV}=5vy!;+LKuy&ZR+ecj)N>Ovv@$BvV}UAExUOFfdmV~!x(?Ksxk
> > zrK0w?3sn8izx&T{;OocR$I{=Vee?YBJpSODC#ye%Zd);Fuhnh6m|Lc2+~eEk&)ZsW
> > z`{Zcdjp)!<YqS4v=CjY4<^1D6+ke{~`&Sj!r;C=0vCjRwIq#6P`rZ7=PnqIv;-A>o
> > zZ<Krd^qtb1eKE)XAIp%|KYaaQWR}%VNj87+(=qE)cfC=W^KSj6-?P`VGVIZJ{i}6n
> > z_J6@^rIx?#B>5)i{M*p+O6$Mgs?&?vT|@kyyUw*gv+V89HS3;*#`TJ;_n%t4sB_li
> > zn`>4*zqn%6;>fF0)Gw}(5fA*lW2X4z6`E={OX8lL&523z6?}TNWZu)yFIMDy$|$R`
> > z(3{=vx;N*}nXWxDQ!CB%S7%-cIbIr9vUpqjBd4QfC${Yl+-Wg)+hh&($iEg<A-(<T
> > zu2=lj^TiF<hsmxxuC+WjYtx%;vwQ9H^H1$Iulr@W<KjClzs(;rcOTrj^Y>$Y|9O9;
> > z{>Z9lzF+YF?B9bQs^+9VK7Z(e&Ca*$l^EU!?x^|p?Y})kjQVNo`YdodlHa_%`u03V
> > Tj6@S-|DS2eE8$QE1||jom5H3-
> >
> > literal 0
> > HcmV?d00001
> >
> > diff --git a/tests/iso9660_ce_loop2.iso.gz
> > b/tests/iso9660_ce_loop2.iso.gz new file mode 100644
> > index
> > 0000000000000000000000000000000000000000..f59e676475cfc8376256ba65047451b5ca969e5a
> > GIT binary patch literal 904
> > zcmb2|=3rP?urHZ``Rxt={M#uq3<<mEx`p{35L_s`CiA%N4Zp)eg+;;Xn>`+#@LT?l
> > zg?-)QBTE*}RZ}c{9Q>yELuJ{_9m)%n)Op{A<yr=u*kac&^#9Ml`ui4L@#-85_(4NK
> > ziNtYF2^VRR(nz1p>_2y(y8f5<9>;sh?Uh^KFSyM4EiAJ7cly!4-wLcf!dIHS*s@UA
> > zhCja~?;X4K>u<Bu{%*9^TfJ(h(f3Jt`)~JOvhdyQdCQmmZp8&@wZFSBF0sfs#oxE;
> > z=Bjg6=`r)Y=Zof7+sf~F#{BN6r%eyL=Pm!o7CR;g?thx(CXrJunsYt%PtM_`7M6Se
> > zGvjwOe%S++4__GcO*ZH-(|EOMMjHR8@~P{8|9;f_VP4_v@ZWq^a})BXZrxrVb|;^I
> > zdvnQDuVz1KtAn3ExIKSXw_$VM{>*FgyB}{_HA}l#|K+#ce>Hk9Z<)R1ZpnpS_PvRh
> > z_DlPAH81<~V8yJpuhtYF`?~W><i~B-KR0IEJ&2og<Z#7=C4Wu&nz<!EM(d@u9NZRu
> > zuq^i2d9#?V$(MiIGZd8m+4NCz_q=+cfB)PK?Dq-pJ9kU#=IhIE54FY~PWqGj<7MV=
> > z^TQhZMZbkjt$KZ{e(mA!v!4n4+kLQ}``!9gckV|Xox5#8@#`(KKin$(K09USf$93U
> > z_K53WPu_DY_wc*brGL_UmVGp;5uLLv?egoy4{v@Hs^?t4q*uOo+09Lx3(C@`?%Vuv
> > z62pOdz4dYJ)!p%jS7|-FuX;FflCIpdz|g*Zy{jI5aFi3>>>AfAm$vy?P2AM(q7c7Z
> > zliiOd#<_pJSQ8i4oe>juanG9W#~Cp`pH|ex=zq!#d44%(n}*xhnn~%Ua=oW+DoN`u
> > zI=o2E_4DFp&p`V#t5Y9W&Fk+fG(08dYT5nj(+a7lcUQbrv=84Xx#?wI%$DVw(}a$i
> > ztd?`{KXvk=N&l>uJ+oYOPKCC=-q;m6d6wSpw`r5l&z}A9-B$T}u63rnyC&xpUCJp~
> > z_x|69FDEC@Z?=D|^7ifb{rl`C;(9mde2SEqqq_ZXD9eL-5xx0)|NiG^2tWDh-27Xh
> > c^m5?%o16ExrDG<Y@bmX~KG-skfq{tu09s$LV*mgE
> >
> > literal 0
> > HcmV?d00001
> >
> > diff --git a/tests/iso9660_test.in b/tests/iso9660_test.in
> > index ed0a5bf8d4..44bc08c6df 100644
> > --- a/tests/iso9660_test.in
> > +++ b/tests/iso9660_test.in
> > @@ -12,4 +12,19 @@ fi
> >  "@builddir@/grub-fs-tester" rockridge_joliet
> >  "@builddir@/grub-fs-tester" joliet_1999
> >  "@builddir@/grub-fs-tester" rockridge_1999
> > -"@builddir@/grub-fs-tester" rockridge_joliet_1999
> > \ No newline at end of file
> > +"@builddir@/grub-fs-tester" rockridge_joliet_1999
> > +
> > +echo "Testing for proper recognition of CE loops ... "

Ugh, this should be "echo -n".

> > +for fs in iso9660_ce_loop iso9660_ce_loop2; do
> > +  tempdir=`mktemp -d "${TMPDIR:-/tmp}/${0##*/}.$(date
> > '+%Y%m%d%H%M%S%N').${fs}.XXX"` ||
> > +    { echo "Failed to make temporary directory"; exit 99; }
> > +  gunzip <"$srcdir"/tests/${fs}.iso.gz >"${tempdir}/${fs}.iso" ||
> > exit 99
> > +  output=$(LC_ALL=C timeout -s KILL "60" \
> > +    "@builddir@/grub-fstest" "${tempdir}/${fs}.iso" ls / ) ||
> > ret=$?
> > +  rm -rf "$tempdir"
> > +  if [ "${ret:-0}" -ne 0 -o -n "$output" ]; then
> > +    echo "FAIL ($fs)"
> > +    exit 1
> > +  fi
> > +done
> > +echo "PASS"
> 
> Tested-by: Thomas Schmitt <scdbackup@gmx.net>
> 
> 
> The test passes with unchanged grub-core/fs/iso9660.c.
> 
> It fails with disabled loop breaker and with disabled processing of
> CE at the start of a continuation area.
> The message in test-suite.log is then:
> 
>   Testing for proper recognition of CE loops ...
>   FAIL (iso9660_ce_loop)

Thanks for testing this. I now see that I forgot to not have a
newline after "...". I'll make a v4.

Glenn



reply via email to

[Prev in Thread] Current Thread [Next in Thread]