1 -- test script for ByteArray integer functions
3 local testlib
= require("testlib")
8 local UINT64
= "uint64"
9 local LE_INT
= "le_int"
10 local LE_UINT
= "le_uint"
11 local LE_INT64
= "le_int64"
12 local LE_UINT64
= "le_uint64"
14 -- expected number of runs per type
25 testlib
.init(taptests
)
27 local empty
= ByteArray
.new("")
28 local be_data
= ByteArray
.new("FF 00 00 00 00 00 00 00")
29 local le_data
= ByteArray
.new("00 00 00 00 00 00 00 FF")
31 -- the following are so we can use pcall (which needs a function to call)
33 local function ByteArray_int(array
,offset
,length
)
34 local value
= array
:int(offset
,length
)
37 local function ByteArray_uint(array
,offset
,length
)
38 local value
= array
:uint(offset
,length
)
41 local function ByteArray_int64(array
,offset
,length
)
42 local value
= array
:int64(offset
,length
)
45 local function ByteArray_uint64(array
,offset
,length
)
46 local value
= array
:uint64(offset
,length
)
49 local function ByteArray_le_int(array
,offset
,length
)
50 local value
= array
:le_int(offset
,length
)
53 local function ByteArray_le_uint(array
,offset
,length
)
54 local value
= array
:le_uint(offset
,length
)
57 local function ByteArray_le_int64(array
,offset
,length
)
58 local value
= array
:le_int64(offset
,length
)
61 local function ByteArray_le_uint64(array
,offset
,length
)
62 local value
= array
:le_uint64(offset
,length
)
65 ------------- test script ------------
67 testlib
.testing(INT
,"negative tests")
68 testlib
.test(INT
,"ByteArray:int-0",not pcall(ByteArray_int
, empty
))
69 testlib
.test(INT
,"ByteArray:int-1",not pcall(ByteArray_int
, be_data
))
70 testlib
.test(INT
,"ByteArray:int-2",not pcall(ByteArray_int
, be_data
, -1))
71 testlib
.test(INT
,"ByteArray:int-3",not pcall(ByteArray_int
, be_data
, 0))
72 testlib
.test(INT
,"ByteArray:int-4",not pcall(ByteArray_int
, be_data
, 0, -1))
73 testlib
.test(INT
,"ByteArray:int-5",not pcall(ByteArray_int
, be_data
, 0, 0))
74 testlib
.test(INT
,"ByteArray:int-6",not pcall(ByteArray_int
, be_data
, 0, 5))
75 testlib
.test(INT
,"ByteArray:int-7",not pcall(ByteArray_int
, be_data
, 7, 2))
76 testlib
.test(INT
,"ByteArray:int-8",not pcall(ByteArray_int
, be_data
, 8, 1))
78 testlib
.testing(INT
,"positive tests")
79 testlib
.test(INT
,"ByteArray:int-9", be_data
:int(0, 1) == -1)
80 testlib
.test(INT
,"ByteArray:int-10", be_data
:int(0, 2) == -256)
81 testlib
.test(INT
,"ByteArray:int-11", be_data
:int(0, 3) == -65536)
82 testlib
.test(INT
,"ByteArray:int-12", be_data
:int(0, 4) == -16777216)
83 testlib
.test(INT
,"ByteArray:int-13", be_data
:subset(2, 2):int() == 0)
85 testlib
.testing(UINT
,"negative tests")
86 testlib
.test(UINT
,"ByteArray:uint-0",not pcall(ByteArray_uint
, empty
))
87 testlib
.test(UINT
,"ByteArray:uint-1",not pcall(ByteArray_uint
, be_data
))
88 testlib
.test(UINT
,"ByteArray:uint-2",not pcall(ByteArray_uint
, be_data
, -1))
89 testlib
.test(UINT
,"ByteArray:uint-3",not pcall(ByteArray_uint
, be_data
, 0))
90 testlib
.test(UINT
,"ByteArray:uint-4",not pcall(ByteArray_uint
, be_data
, 0, -1))
91 testlib
.test(UINT
,"ByteArray:uint-5",not pcall(ByteArray_uint
, be_data
, 0, 0))
92 testlib
.test(UINT
,"ByteArray:uint-6",not pcall(ByteArray_uint
, be_data
, 0, 5))
93 testlib
.test(UINT
,"ByteArray:uint-7",not pcall(ByteArray_uint
, be_data
, 7, 2))
94 testlib
.test(UINT
,"ByteArray:uint-8",not pcall(ByteArray_uint
, be_data
, 8, 1))
96 testlib
.testing(UINT
,"positive tests")
97 testlib
.test(UINT
,"ByteArray:uint-9", be_data
:uint(0, 1) == 255)
98 testlib
.test(UINT
,"ByteArray:uint-10", be_data
:uint(0, 2) == 65280)
99 testlib
.test(UINT
,"ByteArray:uint-11", be_data
:uint(0, 3) == 16711680)
100 testlib
.test(UINT
,"ByteArray:uint-12", be_data
:uint(0, 4) == 4278190080)
101 testlib
.test(UINT
,"ByteArray:uint-13", be_data
:subset(2, 2):uint() == 0)
103 testlib
.testing(INT64
,"negative tests")
104 testlib
.test(INT64
,"ByteArray:int64-0",not pcall(ByteArray_int64
, empty
))
105 testlib
.test(INT64
,"ByteArray:int64-1",not pcall(ByteArray_int64
, be_data
, -1))
106 testlib
.test(INT64
,"ByteArray:int64-2",not pcall(ByteArray_int64
, be_data
, 0, 0))
107 testlib
.test(INT64
,"ByteArray:int64-3",not pcall(ByteArray_int64
, be_data
, 0, 9))
108 testlib
.test(INT64
,"ByteArray:int64-4",not pcall(ByteArray_int64
, be_data
, 7, 2))
109 testlib
.test(INT64
,"ByteArray:int64-5",not pcall(ByteArray_int64
, be_data
, 8, 1))
111 testlib
.testing(INT64
,"positive tests")
112 testlib
.test(INT64
,"ByteArray:int64-6", be_data
:int64(0, 1):tonumber() == -1)
113 testlib
.test(INT64
,"ByteArray:int64-7", be_data
:int64(0, 2):tonumber() == -256)
114 testlib
.test(INT64
,"ByteArray:int64-8", be_data
:int64(0, 3):tonumber() == -65536)
115 testlib
.test(INT64
,"ByteArray:int64-9", be_data
:int64(0, 4):tonumber() == -16777216)
116 testlib
.test(INT64
,"ByteArray:int64-10", be_data
:int64(0, 5):tonumber() == -4294967296)
117 testlib
.test(INT64
,"ByteArray:int64-11", be_data
:int64(0, 6):tonumber() == -1099511627776)
118 testlib
.test(INT64
,"ByteArray:int64-12", be_data
:int64(0, 7):tonumber() == -281474976710656)
119 testlib
.test(INT64
,"ByteArray:int64-13", be_data
:int64():tonumber() == -72057594037927936)
120 testlib
.test(INT64
,"ByteArray:int64-14", be_data
:subset(2, 2):int64():tonumber() == 0)
122 testlib
.testing(UINT64
,"negative tests")
123 testlib
.test(UINT64
,"ByteArray:uint64-0",not pcall(ByteArray_uint64
, empty
))
124 testlib
.test(UINT64
,"ByteArray:uint64-1",not pcall(ByteArray_uint64
, be_data
, -1))
125 testlib
.test(UINT64
,"ByteArray:uint64-2",not pcall(ByteArray_uint64
, be_data
, 0, 0))
126 testlib
.test(UINT64
,"ByteArray:uint64-3",not pcall(ByteArray_uint64
, be_data
, 0, 9))
127 testlib
.test(UINT64
,"ByteArray:uint64-4",not pcall(ByteArray_uint64
, be_data
, 7, 2))
128 testlib
.test(UINT64
,"ByteArray:uint64-5",not pcall(ByteArray_uint64
, be_data
, 8, 1))
130 testlib
.testing(UINT64
,"positive tests")
131 testlib
.test(UINT64
,"ByteArray:uint64-6", be_data
:uint64(0, 1):tonumber() == 255)
132 testlib
.test(UINT64
,"ByteArray:uint64-7", be_data
:uint64(0, 2):tonumber() == 65280)
133 testlib
.test(UINT64
,"ByteArray:uint64-8", be_data
:uint64(0, 3):tonumber() == 16711680)
134 testlib
.test(UINT64
,"ByteArray:uint64-9", be_data
:uint64(0, 4):tonumber() == 4278190080)
135 testlib
.test(UINT64
,"ByteArray:uint64-10", be_data
:uint64(0, 5):tonumber() == 1095216660480)
136 testlib
.test(UINT64
,"ByteArray:uint64-11", be_data
:uint64(0, 6):tonumber() == 280375465082880)
137 testlib
.test(UINT64
,"ByteArray:uint64-12", be_data
:uint64(0, 7):tonumber() == 71776119061217280)
138 testlib
.test(UINT64
,"ByteArray:uint64-13", be_data
:uint64():tonumber() == 18374686479671623680)
139 testlib
.test(UINT64
,"ByteArray:uint64-14", be_data
:subset(2, 2):uint64():tonumber() == 0)
141 testlib
.testing(LE_INT
,"negative tests")
142 testlib
.test(LE_INT
,"ByteArray:le_int-0",not pcall(ByteArray_le_int
, empty
))
143 testlib
.test(LE_INT
,"ByteArray:le_int-1",not pcall(ByteArray_le_int
, le_data
))
144 testlib
.test(LE_INT
,"ByteArray:le_int-2",not pcall(ByteArray_le_int
, le_data
, -1))
145 testlib
.test(LE_INT
,"ByteArray:le_int-3",not pcall(ByteArray_le_int
, le_data
, 0))
146 testlib
.test(LE_INT
,"ByteArray:le_int-4",not pcall(ByteArray_le_int
, le_data
, 0, -1))
147 testlib
.test(LE_INT
,"ByteArray:le_int-5",not pcall(ByteArray_le_int
, le_data
, 0, 0))
148 testlib
.test(LE_INT
,"ByteArray:le_int-6",not pcall(ByteArray_le_int
, le_data
, 0, 5))
149 testlib
.test(LE_INT
,"ByteArray:le_int-7",not pcall(ByteArray_le_int
, le_data
, 7, 2))
150 testlib
.test(LE_INT
,"ByteArray:le_int-8",not pcall(ByteArray_le_int
, le_data
, 8, 1))
152 testlib
.testing(LE_INT
,"positive tests")
153 testlib
.test(LE_INT
,"ByteArray:le_int-9", le_data
:le_int(7) == -1)
154 testlib
.test(LE_INT
,"ByteArray:le_int-10", le_data
:le_int(6, 2) == -256)
155 testlib
.test(LE_INT
,"ByteArray:le_int-11", le_data
:le_int(5, 3) == -65536)
156 testlib
.test(LE_INT
,"ByteArray:le_int-12", le_data
:le_int(4, 4) == -16777216)
157 testlib
.test(LE_INT
,"ByteArray:le_int-13", be_data
:subset(2, 2):le_int() == 0)
159 testlib
.testing(LE_UINT
,"negative tests")
160 testlib
.test(LE_UINT
,"ByteArray:le_uint-0",not pcall(ByteArray_le_uint
, empty
))
161 testlib
.test(LE_UINT
,"ByteArray:le_uint-1",not pcall(ByteArray_le_uint
, le_data
))
162 testlib
.test(LE_UINT
,"ByteArray:le_uint-2",not pcall(ByteArray_le_uint
, le_data
, -1))
163 testlib
.test(LE_UINT
,"ByteArray:le_uint-3",not pcall(ByteArray_le_uint
, le_data
, 0))
164 testlib
.test(LE_UINT
,"ByteArray:le_uint-4",not pcall(ByteArray_le_uint
, le_data
, 0, -1))
165 testlib
.test(LE_UINT
,"ByteArray:le_uint-5",not pcall(ByteArray_le_uint
, le_data
, 0, 0))
166 testlib
.test(LE_UINT
,"ByteArray:le_uint-6",not pcall(ByteArray_le_uint
, le_data
, 0, 5))
167 testlib
.test(LE_UINT
,"ByteArray:le_uint-7",not pcall(ByteArray_le_uint
, le_data
, 7, 2))
168 testlib
.test(LE_UINT
,"ByteArray:le_uint-8",not pcall(ByteArray_le_uint
, le_data
, 8, 1))
170 testlib
.testing(LE_UINT
,"positive tests")
171 testlib
.test(LE_UINT
,"ByteArray:le_uint-9", le_data
:le_uint(7) == 255)
172 testlib
.test(LE_UINT
,"ByteArray:le_uint-10", le_data
:le_uint(6, 2) == 65280)
173 testlib
.test(LE_UINT
,"ByteArray:le_uint-11", le_data
:le_uint(5, 3) == 16711680)
174 testlib
.test(LE_UINT
,"ByteArray:le_uint-12", le_data
:le_uint(4, 4) == 4278190080)
175 testlib
.test(LE_UINT
,"ByteArray:le_uint-13", be_data
:subset(2, 2):le_uint() == 0)
177 testlib
.testing(LE_INT64
,"negative tests")
178 testlib
.test(LE_INT64
,"ByteArray:le_int64-0",not pcall(ByteArray_le_int64
, empty
))
179 testlib
.test(LE_INT64
,"ByteArray:le_int64-1",not pcall(ByteArray_le_int64
, le_data
, -1))
180 testlib
.test(LE_INT64
,"ByteArray:le_int64-2",not pcall(ByteArray_le_int64
, le_data
, 0, 0))
181 testlib
.test(LE_INT64
,"ByteArray:le_int64-3",not pcall(ByteArray_le_int64
, le_data
, 0, 9))
182 testlib
.test(LE_INT64
,"ByteArray:le_int64-4",not pcall(ByteArray_le_int64
, le_data
, 7, 2))
183 testlib
.test(LE_INT64
,"ByteArray:le_int64-5",not pcall(ByteArray_le_int64
, le_data
, 8, 1))
185 testlib
.testing(LE_INT64
,"positive tests")
186 testlib
.test(LE_INT64
,"ByteArray:le_int64-6", le_data
:le_int64(7):tonumber() == -1)
187 testlib
.test(LE_INT64
,"ByteArray:le_int64-7", le_data
:le_int64(6, 2):tonumber() == -256)
188 testlib
.test(LE_INT64
,"ByteArray:le_int64-8", le_data
:le_int64(5, 3):tonumber() == -65536)
189 testlib
.test(LE_INT64
,"ByteArray:le_int64-9", le_data
:le_int64(4, 4):tonumber() == -16777216)
190 testlib
.test(LE_INT64
,"ByteArray:le_int64-10", le_data
:le_int64(3, 5):tonumber() == -4294967296)
191 testlib
.test(LE_INT64
,"ByteArray:le_int64-11", le_data
:le_int64(2, 6):tonumber() == -1099511627776)
192 testlib
.test(LE_INT64
,"ByteArray:le_int64-12", le_data
:le_int64(1, 7):tonumber() == -281474976710656)
193 testlib
.test(LE_INT64
,"ByteArray:le_int64-13", le_data
:le_int64():tonumber() == -72057594037927936)
194 testlib
.test(LE_INT64
,"ByteArray:le_int64-14", le_data
:subset(0, 2):le_int64():tonumber() == 0)
196 testlib
.testing(LE_UINT64
,"negative tests")
197 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-0",not pcall(ByteArray_le_uint64
, empty
))
198 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-1",not pcall(ByteArray_le_uint64
, le_data
, -1))
199 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-2",not pcall(ByteArray_le_uint64
, le_data
, 0, 0))
200 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-3",not pcall(ByteArray_le_uint64
, le_data
, 0, 9))
201 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-4",not pcall(ByteArray_le_uint64
, le_data
, 7, 2))
202 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-5",not pcall(ByteArray_le_uint64
, le_data
, 8, 1))
204 testlib
.testing(LE_UINT64
,"positive tests")
205 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-6", le_data
:le_uint64(7):tonumber() == 255)
206 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-7", le_data
:le_uint64(6, 2):tonumber() == 65280)
207 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-8", le_data
:le_uint64(5, 3):tonumber() == 16711680)
208 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-9", le_data
:le_uint64(4, 4):tonumber() == 4278190080)
209 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-10", le_data
:le_uint64(3, 5):tonumber() == 1095216660480)
210 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-11", le_data
:le_uint64(2, 6):tonumber() == 280375465082880)
211 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-12", le_data
:le_uint64(1, 7):tonumber() == 71776119061217280)
212 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-13", le_data
:le_uint64():tonumber() == 18374686479671623680)
213 testlib
.test(LE_UINT64
,"ByteArray:le_uint64-14", le_data
:subset(0, 2):le_uint64():tonumber() == 0)