From 5791fb908a5f4e3ae39f8c4644dc7f0291f0e80f Mon Sep 17 00:00:00 2001
From: Nikias Bassen <nikias@gmx.li>
Date: Wed, 1 Feb 2017 19:07:02 +0100
Subject: [PATCH] test: Add test cases for different bplist offset and
 reference sizes

---
 test/Makefile.am               |   2 ++
 test/data/dictref1byte.bplist  | Bin 0 -> 50 bytes
 test/data/dictref2bytes.bplist | Bin 0 -> 52 bytes
 test/data/dictref3bytes.bplist | Bin 0 -> 54 bytes
 test/data/dictref4bytes.bplist | Bin 0 -> 56 bytes
 test/data/dictref5bytes.bplist | Bin 0 -> 58 bytes
 test/data/dictref6bytes.bplist | Bin 0 -> 60 bytes
 test/data/dictref7bytes.bplist | Bin 0 -> 62 bytes
 test/data/dictref8bytes.bplist | Bin 0 -> 64 bytes
 test/data/off1byte.bplist      | Bin 0 -> 50 bytes
 test/data/off2bytes.bplist     | Bin 0 -> 53 bytes
 test/data/off3bytes.bplist     | Bin 0 -> 56 bytes
 test/data/off4bytes.bplist     | Bin 0 -> 59 bytes
 test/data/off5bytes.bplist     | Bin 0 -> 62 bytes
 test/data/off6bytes.bplist     | Bin 0 -> 65 bytes
 test/data/off7bytes.bplist     | Bin 0 -> 68 bytes
 test/data/off8bytes.bplist     | Bin 0 -> 71 bytes
 test/data/offxml.plist         |   8 ++++++++
 test/offsetsize.test           |  12 ++++++++++++
 test/refsize.test              |  12 ++++++++++++
 20 files changed, 34 insertions(+)
 create mode 100644 test/data/dictref1byte.bplist
 create mode 100644 test/data/dictref2bytes.bplist
 create mode 100644 test/data/dictref3bytes.bplist
 create mode 100644 test/data/dictref4bytes.bplist
 create mode 100644 test/data/dictref5bytes.bplist
 create mode 100644 test/data/dictref6bytes.bplist
 create mode 100644 test/data/dictref7bytes.bplist
 create mode 100644 test/data/dictref8bytes.bplist
 create mode 100644 test/data/off1byte.bplist
 create mode 100644 test/data/off2bytes.bplist
 create mode 100644 test/data/off3bytes.bplist
 create mode 100644 test/data/off4bytes.bplist
 create mode 100644 test/data/off5bytes.bplist
 create mode 100644 test/data/off6bytes.bplist
 create mode 100644 test/data/off7bytes.bplist
 create mode 100644 test/data/off8bytes.bplist
 create mode 100644 test/data/offxml.plist
 create mode 100755 test/offsetsize.test
 create mode 100755 test/refsize.test

diff --git a/test/Makefile.am b/test/Makefile.am
index aed3a58..29938f2 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -36,6 +36,8 @@ TESTS = \
 	amp.test \
 	invalid_tag.test \
 	cdata.test \
+	offsetsize.test \
+	refsize.test \
 	malformed_dict.test
 
 EXTRA_DIST = $(TESTS) data/1.plist data/2.plist data/3.plist data/4.plist data/5.plist data/6.plist data/7.plist data/signed.plist data/signed.bplist data/unsigned.plist data/unsigned.bplist data/hex.plist data/order.bplist data/recursion.bplist data/entities.plist data/empty_keys.plist data/amp.plist data/invalid_tag.plist data/cdata.test data/malformed_dict.bplist
diff --git a/test/data/dictref1byte.bplist b/test/data/dictref1byte.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..c33d70b630f7aed8ec91b4770a36cbc54763536b
GIT binary patch
literal 50
lcmYc)$jK}&F)+Bu$Q0-p=)}Rz%K!$9j1ZcE8A`(_egNDU1snhX

literal 0
HcmV?d00001

diff --git a/test/data/dictref2bytes.bplist b/test/data/dictref2bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..2a5225f9d9aebc03fbea19fc7a8d9fccb1c45b23
GIT binary patch
literal 52
ncmYc)$jK}&F)+Buz{tQ9=osk4!OPD828>J)nt>Tg!ze)j<T?c-

literal 0
HcmV?d00001

diff --git a/test/data/dictref3bytes.bplist b/test/data/dictref3bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..fb34258a7836dac8daec7729223fe2198b82c399
GIT binary patch
literal 54
pcmYc)$jK}&F)+Buz`)4Bz!c~h=)}P<$N&b6%n+IZMnky_!T{`C1u6gl

literal 0
HcmV?d00001

diff --git a/test/data/dictref4bytes.bplist b/test/data/dictref4bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..5845107e094f7bffcc024005df5a3ec761523ce3
GIT binary patch
literal 56
qcmYc)$jK}&F)+Buz`(!=#7u#XfleHP!aybvFtR{s24*M?qeKDpeg!cA

literal 0
HcmV?d00001

diff --git a/test/data/dictref5bytes.bplist b/test/data/dictref5bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..6ced9de7834535d9ffdabe9f2388302533a80360
GIT binary patch
literal 58
pcmYc)$jK}&F)+Bu00fL6f+^53(1}A>6vPG!u|jADW+)A#!~y)E1vmfz

literal 0
HcmV?d00001

diff --git a/test/data/dictref6bytes.bplist b/test/data/dictref6bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..2ed5f345b6c92a3934efe151f1a93e5bd4ba2ac0
GIT binary patch
literal 60
qcmYc)$jK}&F)+Bu00N9)k}1$J(1}A-9L!;0WP{KQ%upIeNdf=_(FH#M

literal 0
HcmV?d00001

diff --git a/test/data/dictref7bytes.bplist b/test/data/dictref7bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..cbb9368dd762feb7e2ba45b036b26f259d9aed58
GIT binary patch
literal 62
ocmYc)$jK}&F)+Bu00xW@iYd@B(1}A_5-P|Jp&6K=G>no401Wd5MgRZ+

literal 0
HcmV?d00001

diff --git a/test/data/dictref8bytes.bplist b/test/data/dictref8bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..ffb429284d6029d24bb18eeff49ad53866874002
GIT binary patch
literal 64
ncmYc)$jK}&F)+Bu00E3pnkmpR(1}A*8Y;>G6=sIgFiI8x6%_?d

literal 0
HcmV?d00001

diff --git a/test/data/off1byte.bplist b/test/data/off1byte.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..c33d70b630f7aed8ec91b4770a36cbc54763536b
GIT binary patch
literal 50
lcmYc)$jK}&F)+Bu$Q0-p=)}Rz%K!$9j1ZcE8A`(_egNDU1snhX

literal 0
HcmV?d00001

diff --git a/test/data/off2bytes.bplist b/test/data/off2bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..f080738375dbf38be024ee3bbd5f22e22a0ed0ec
GIT binary patch
literal 53
ocmYc)$jK}&F)+Bu$Q0-p=)}Omz|FwR00vBq5SoD*O2a6A0P6(>9RL6T

literal 0
HcmV?d00001

diff --git a/test/data/off3bytes.bplist b/test/data/off3bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..a2f926bb48aef106ae37c69c42b94aa2a418173c
GIT binary patch
literal 56
rcmYc)$jK}&F)+Bu$Q0-p=)}Ol!N9=Hz`)A@2F#2Qnt>Tg!zg|L`SJxG

literal 0
HcmV?d00001

diff --git a/test/data/off4bytes.bplist b/test/data/off4bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..35897becb142f41d48843458f31bbff819544410
GIT binary patch
literal 59
scmYc)$jK}&F)+Bu$Q0-p=)}OlzyZYEK+FroK)}KXp&6K=G>qa000`~{9{>OV

literal 0
HcmV?d00001

diff --git a/test/data/off5bytes.bplist b/test/data/off5bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..9df03cdc2454cc97b19b8c50b4a98eb76870ade4
GIT binary patch
literal 62
scmYc)$jK}&F)+Bu$Q0-p=)?d793X-lMDT(L1_o9}2+hC@rC}6502kW@AOHXW

literal 0
HcmV?d00001

diff --git a/test/data/off6bytes.bplist b/test/data/off6bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..3d78a4790e9c54da2c9d535f544ebdf0f0d12298
GIT binary patch
literal 65
rcmYc)$jK}&F)+Bu$Q0-p=)?d59AJ_gO!9(B1~x_r&A<$$VH7_ACddUL

literal 0
HcmV?d00001

diff --git a/test/data/off7bytes.bplist b/test/data/off7bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..150c277f339c33de7b9b0d23d1f02c23c25eefc9
GIT binary patch
literal 68
qcmYc)$jK}&F)+Bu$Q0-p=)?d991w~dLh(W<c18%zzzn5f6h8npwFM#o

literal 0
HcmV?d00001

diff --git a/test/data/off8bytes.bplist b/test/data/off8bytes.bplist
new file mode 100644
index 0000000000000000000000000000000000000000..f01114e254ff1f5a96f3476254fa4f4304d852c5
GIT binary patch
literal 71
ocmYc)$jK}&F)+Bu$Q0-p=)?d498j7YO7lX68KHb;C=H|d0Yst&BLDyZ

literal 0
HcmV?d00001

diff --git a/test/data/offxml.plist b/test/data/offxml.plist
new file mode 100644
index 0000000..c3c1e10
--- /dev/null
+++ b/test/data/offxml.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>A</key>
+	<string>B</string>
+</dict>
+</plist>
diff --git a/test/offsetsize.test b/test/offsetsize.test
new file mode 100755
index 0000000..d548d88
--- /dev/null
+++ b/test/offsetsize.test
@@ -0,0 +1,12 @@
+## -*- sh -*-
+
+set -e
+
+DATASRC=$top_srcdir/test/data
+TESTFILES="off1byte.bplist off2bytes.bplist off3bytes.bplist off4bytes.bplist off5bytes.bplist off6bytes.bplist off7bytes.bplist off8bytes.bplist"
+CMPFILE=offxml.plist
+
+for I in $TESTFILES; do
+    echo "* checking $I"
+    $top_builddir/test/plist_cmp $DATASRC/$I $DATASRC/$CMPFILE
+done
diff --git a/test/refsize.test b/test/refsize.test
new file mode 100755
index 0000000..379b7fb
--- /dev/null
+++ b/test/refsize.test
@@ -0,0 +1,12 @@
+## -*- sh -*-
+
+set -e
+
+DATASRC=$top_srcdir/test/data
+TESTFILES="dictref1byte.bplist dictref2bytes.bplist dictref3bytes.bplist dictref4bytes.bplist dictref5bytes.bplist dictref6bytes.bplist dictref7bytes.bplist dictref8bytes.bplist"
+CMPFILE=offxml.plist
+
+for I in $TESTFILES; do
+    echo "* checking $I"
+    $top_builddir/test/plist_cmp $DATASRC/$I $DATASRC/$CMPFILE
+done
-- 
2.18.1