From 6e3fff00801c4313b4f16916a363d3689fa1ce49 Mon Sep 17 00:00:00 2001 From: Marrub Date: Mon, 4 Mar 2019 21:55:49 -0500 Subject: [PATCH] add random data tests --- source/marathon/trm.rs | 9 +++++---- tests/data/rand.rs | 11 ++++++++++ tests/data/random1.bin | Bin 0 -> 4096 bytes tests/data/random2.bin | Bin 0 -> 1024 bytes tests/data/random3.bin | Bin 0 -> 10240 bytes tests/data/random4.bin | 2 ++ tests/data/random5.bin | 1 + tests/data/random6.bin | Bin 0 -> 20480 bytes tests/data/random7.bin | Bin 0 -> 3072 bytes tests/map.rs | 45 +++++++++++++++++++++++++++++++++++++++++ tests/misc.rs | 26 +++++++++++++++++++++--- 11 files changed, 87 insertions(+), 7 deletions(-) create mode 100644 tests/data/rand.rs create mode 100644 tests/data/random1.bin create mode 100644 tests/data/random2.bin create mode 100644 tests/data/random3.bin create mode 100644 tests/data/random4.bin create mode 100644 tests/data/random5.bin create mode 100644 tests/data/random6.bin create mode 100644 tests/data/random7.bin diff --git a/source/marathon/trm.rs b/source/marathon/trm.rs index d02c49b..e7672da 100644 --- a/source/marathon/trm.rs +++ b/source/marathon/trm.rs @@ -16,7 +16,8 @@ pub fn read_group(b: &[u8], text: &[u8]) -> ResultS lines = u16[10]; } - let text = mac_roman_cstr(&text[start..start + size])?; + let text = ok!(text.get(start..start + size), "not enough data")?; + let text = mac_roman_cstr(text)?; let flags = flag_ok!(GroupFlags, flags)?; let ttype = match ttype { 0 => GroupType::Logon(pdata), @@ -78,7 +79,7 @@ pub fn read_term(b: &[u8]) -> ResultS<(Terminal, usize)> let mut p = 10; let text_st = p + SIZE_GROUP * group_n + SIZE_FACE * face_n; - let text = &b[text_st..end]; + let text = ok!(b.get(text_st..end), "bad offset")?; let text = if encoded { fuck_string(text) } else { @@ -86,12 +87,12 @@ pub fn read_term(b: &[u8]) -> ResultS<(Terminal, usize)> }; for _ in 0..group_n { - groups.push(read_group(&b[p..], &text)?); + groups.push(read_group(ok!(b.get(p..), "not enough data")?, &text)?); p += SIZE_GROUP; } for _ in 0..face_n { - faces.push(read_face(&b[p..])?); + faces.push(read_face(ok!(b.get(p..), "not enough data")?)?); p += SIZE_FACE; } diff --git a/tests/data/rand.rs b/tests/data/rand.rs new file mode 100644 index 0000000..cb2008b --- /dev/null +++ b/tests/data/rand.rs @@ -0,0 +1,11 @@ +const RANDOM: [&[u8]; 7] = [ + include_bytes!("random1.bin"), + include_bytes!("random2.bin"), + include_bytes!("random3.bin"), + include_bytes!("random4.bin"), + include_bytes!("random5.bin"), + include_bytes!("random6.bin"), + include_bytes!("random7.bin") +]; + +// EOF diff --git a/tests/data/random1.bin b/tests/data/random1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7bd354dc616733b3103ba7d32bd803fe36498a70 GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/tests/data/random2.bin b/tests/data/random2.bin new file mode 100644 index 0000000000000000000000000000000000000000..b6f6c2bc69c7d89f75c191964103274fed494631 GIT binary patch literal 1024 zcmV+b1poVg`IslMbKEO$sHew*g@xGFskj*lxSE4!h7cv-xqbXx&9-g3bwMnt7wwzt zhm$fj!=ZdfMh#)7>S+>C_HoWqZX0Wn6-%Q>HrNyLse_gHab@{&tCk)RjSLW>Q}BI-^cQbBf7gNGP9O-^#tuool3nQ8&2X8->>@ktXF&J?{vxW z=GbsBOyp>LJg}SqOGko{74ZsJ<*^x|HaVe&%y7tN`;m|`oSthY$cl6U9ufE$mNIa=%Rxof8hX%l{_8O|ZB1tUZ+S4PxR|zw1E-`K0tC z@y7!WxK}4ZQHc0DRbhO8NjrOF%o47gVL?R5CHPRKTbAePljV{)OGF#25~IsT{2af zdmLDi<%khpZ|$2$>=A?}bF-s_hjXgcx48bg{2w4Z^4#D=Y3kQ8QT#%W{%uYn6C*~{ z;t#}1Fd%Q&bc1Rr`6nAY8GMhhm14jM#o2XEU%g4;bd8t8;QOCkK<>!@55N00L2j~0 z0=PO4^j;F(4+4 zd+?*7pC+)Zq;dZmX+nrOMoD=U5Zbj(vJL{K1Ns>iif62T@iB>Pb@N6r-_QUy4uGx` z`<8p<)Rjhpc!*Z3f0$T2IwsPjrP@!0yA2MG58A`~6~=*4Dj+X|D!qbc)CV5q55^g{Y)aI>}urtyIQ literal 0 HcmV?d00001 diff --git a/tests/data/random3.bin b/tests/data/random3.bin new file mode 100644 index 0000000000000000000000000000000000000000..5bd34c3e1ddb9718da0241f3d7c57e59b469c7e3 GIT binary patch literal 10240 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 GOq$@JcKnh6 literal 0 HcmV?d00001 diff --git a/tests/data/random4.bin b/tests/data/random4.bin new file mode 100644 index 0000000..2b025a2 --- /dev/null +++ b/tests/data/random4.bin @@ -0,0 +1,2 @@ +7rE/jP" 񅁻sxt͑P4=>z +tHȶlk4@~ٱ)/fYiω3Z ҥ7 \ No newline at end of file diff --git a/tests/data/random5.bin b/tests/data/random5.bin new file mode 100644 index 0000000..5c32138 --- /dev/null +++ b/tests/data/random5.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/data/random6.bin b/tests/data/random6.bin new file mode 100644 index 0000000000000000000000000000000000000000..d4f33b6339dfa6512ca4700c18f7800208c421ee GIT binary patch literal 20480 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 HYH{_eC90;5 literal 0 HcmV?d00001 diff --git a/tests/data/random7.bin b/tests/data/random7.bin new file mode 100644 index 0000000000000000000000000000000000000000..c08fa8e4dcd157fa7b504c09a2bdc82772d687f1 GIT binary patch literal 3072 zcmV+b4FB`I_TjojTR;|sk>qgA9DA*wYOYIt$&?=-^+qTpaqQ|Se4-rCW-+}bEMO@k zS^P6OlBOBp4uu0UXn@s#1js9wY|+GVdOnUJKT;{_c%V`C)@nvM8=|GInk*7nosd!o zusYuoGB?LGfGf~EKAL3@9@wI<# zZ%Y&gB;rGsXS{gb#ynQ`@C{xpz(55BWS?1|Y47Thw5$M6r+U+SOUzBvvqs%h- zUaM&;z;;dHY*2gZJ+?gtW_6<^qtr1@yE*W_$zVJ{oEQ3XpHk4Bqf1tr)~iESCi35@ zZWpb7TAIE0VGYp2ZGZ-g-~Rr5*d_eyN?H$NiJF;#^7%-jj3=&zDdNU2;Bv7Or<%q% zipAaeUOm(uGrZ1dtHAgx-E5ikUdi+UJ^CAzJ$fUF-$rp0qgJs&d$Kn&7mq8Rb|!@8 zYR<@t9#{1)Y6T?_vugh_qduD$c4Xz_zx%KTUcp7Qx*2d!-YHQfvHpfgozwxoPyEh#|JvqFHTK7TEhn z`@1Z-ZhBCd0U3`ECDw7*S`f>^`!SE#8`*AJOEJ= zBt1#oE@O&y>_TxR%8j2f#jPF<#oa5%RfsUVnAfisV*iiCEB>=jC*i=|mf~l8%uYA- zd(8o7^kRbmYD_F=#cyc{pFFE zc(D^m+;zBl&ZG>aT*noEJrW{`U3U+G=YnyI>H?+Nf23o{YhA}gnn8mg3_35|vvU9S zW<sKk*Bxc5lBqGOA12Mb4V#HBd;4`gz4rr9E( z%)IosLd};WcN7k!8f;Xf(aPV~l}j}0Cf#|T#`EMm%6PeRO#fo3H3NKy)J4Y%2Zikn zG08D4b}OTiNS+&fp?zEWbECl31zRGt{bHWovQI)F)TA!fWzrTB^oRShFGB(#6Co-B zY=-gO*b`FAsFNq`C5@~J>@ggG$DZ~k=rhD~O5l>`u1EvmuN4j~RY9-}{Lwd+p^J;6 zJdT}MB8|a>7ks>2Ny4t^Q>X?P?TsEsRB=Go|GrK(6FFWKUms4V91)&a>-`StI^en5GTEmo8cUW)Oe`8C>}}pi_u+OX=<~5We}j!b`8We zccHA`N(yex7Y7o4!;g20p91TG=nlq#IAVg4iCi)0LqdwLsZVpl9XtcQya@(MZ`n9Z z@Y_DP7$3m5$XNEyFShG3gdpkzg4Krf%*EE5%D`*~Vxvp0rZ6BFFqNWxlpHP1t_{Q~>Ytr2HMEYO6^*I|7vc zYabcyo6z*HQUW|D3(=2qWyuwZ=0jcIM<|10Ay|Jb62#7Hjq+&QGRLM@K3stIvdTwA zW!t;$Bf3XQjK{&EF55zej3b_JCwdFpEIjuovA|Mbc~lB6nv6@!;+i)>Fi?M-`S1sI0P?l81F(K>;Z-%i6!rBc zWp`~e7TKepowj|f{lTwcOY-n678XU1YX`<+j|PAZ;usB?^j_2q~VTV8fD4dnI9xS zjTE^}%o(Bi5|@p`qqOCQ`93>eW+c$&_jyFI?uAL~Wv{5Z@ArS+dZ^`{)2S%hJAZ-| zodKRz15uh`cc)Awo&QL*xyS8bt{!I!`+aJ@j*WsOwH>BHe2(@{qXv?X*4k)Y&N+6f zT2LY!9TUqQxMxAWQX#6yv`FV0??A{^n1bW?yb+#OOEF8OtazV-6~cRuG~!9#UQ)9m z@c9wS-;7Hi<8a#N%w@w?cRvV!AB^_CPtM-aW18vWoGaNhbvkl%*=gD@C~$w_|1fVB z_p@dg9n~&djCkyNUs$6HHI?PeicLrI3clbZA24xo<<=_Iq?fRPzhq!_KE>Cxf&G25 zukB`VIZosRi@X}V1HrZ+Pk0j|-Pl(abh~t*iTN*-+g?j*13G|Ie-B-g@@h357{zS) ztY1@Jtv(yoAC*;ctsJgpfRI`bJPFg&hM@g?<~T3ZEX|wg}(go@H=Z5csVb7xkMc)aLeJ@%mus z#7uUcC+_Sn0@|Pd!gt9V7r?*G*4dDh72|Nlx5?_JLf;`^A02azM+bN*}q literal 0 HcmV?d00001 diff --git a/tests/map.rs b/tests/map.rs index 9f7cd39..4337f55 100644 --- a/tests/map.rs +++ b/tests/map.rs @@ -1,5 +1,7 @@ use maraiah::{durandal::{bin, fixed::*}, marathon::{map, trm}}; +include!("data/rand.rs"); + #[test] fn read_term_must_process() { @@ -24,6 +26,14 @@ fn read_term_must_process() } } +#[test] +fn trm_must_not_process() +{ + for inp in &RANDOM { + assert!(bin::rd_array(inp, trm::read_term).is_err()); + } +} + #[test] fn read_minf_must_process() { @@ -49,4 +59,39 @@ fn read_epnt_must_process() assert_eq!(bin::rd_array(INPUT, map::read_epnt).unwrap(), OUTPUT.to_vec()); } +#[test] +fn map_must_not_process() +{ + // these functions must not succeed + for inp in &RANDOM { + assert!(map::read_minf(inp).is_err()); + assert!(map::read_old_minf(inp).is_err()); + assert!(bin::rd_array(inp, map::read_lins).is_err()); + assert!(bin::rd_array(inp, map::read_lite).is_err()); + assert!(bin::rd_array(inp, map::read_medi).is_err()); + assert!(bin::rd_array(inp, map::read_note).is_err()); + assert!(bin::rd_array(inp, map::read_objs).is_err()); + assert!(bin::rd_array(inp, map::read_plat).is_err()); + assert!(bin::rd_array(inp, map::read_poly).is_err()); + assert!(bin::rd_array(inp, map::read_sids).is_err()); + assert!(bin::rd_array(inp, map::read_old_lite).is_err()); + assert!(bin::rd_array(inp, map::read_old_poly).is_err()); + assert!(bin::rd_array(inp, map::read_old_sids).is_err()); + } +} + +#[test] +#[allow(unused_must_use)] +fn map_wont_panic() +{ + // these functions can succeed but must never panic + for inp in &RANDOM { + bin::rd_array(inp, map::read_ambi); + bin::rd_array(inp, map::read_bonk); + bin::rd_array(inp, map::read_epnt); + bin::rd_array(inp, map::read_iidx); + bin::rd_array(inp, map::read_plac); + } +} + // EOF diff --git a/tests/misc.rs b/tests/misc.rs index 62944d4..14be221 100644 --- a/tests/misc.rs +++ b/tests/misc.rs @@ -1,7 +1,9 @@ use maraiah::{durandal::image::Color8, marathon::{machdr, pict}}; +include!("data/rand.rs"); + #[test] -fn get_clut_must_process_this() +fn get_clut_must_process() { const INPUT: &[u8] = include_bytes!("data/clut.in"); const OUTPUT: [Color8; 256] = include!("data/clut.out"); @@ -10,14 +12,32 @@ fn get_clut_must_process_this() } #[test] -fn macbin_must_process_this() +fn get_clut_must_not_process() +{ + for inp in &RANDOM { + assert!(pict::get_clut(inp).is_err()); + } +} + +#[test] +fn machdr_must_process() { const INPUT: &[u8] = include_bytes!("data/macbin.in"); assert_eq!(machdr::check_macbin(INPUT), Some(128)); assert_eq!(machdr::try_mac_header(INPUT), 128); + + // TODO: missing test data for applesingle } -// TODO: missing test data for applesingle +#[test] +fn machdr_must_not_process() +{ + for inp in &RANDOM { + assert_eq!(machdr::check_macbin(inp), None); + assert_eq!(machdr::check_apple_single(inp), None); + assert_eq!(machdr::try_mac_header(inp), 0); + } +} // EOF