xref: /PHP-8.3/ext/standard/tests/strings/pack.phpt (revision c5401854)
1--TEST--
2Generic pack()/unpack() tests
3--SKIPIF--
4<?php
5if (PHP_INT_MAX > 2147483647) {
6    die("skip 32bit test only");
7}
8?>
9--FILE--
10<?php
11print_r(unpack("A", pack("A", "hello world")));
12print_r(unpack("A*", pack("A*", "hello world")));
13echo '"'.pack("A9", "hello").'"';
14echo "\n";
15
16print_r(unpack("C", pack("C", -127)));
17print_r(unpack("C", pack("C", 127)));
18print_r(unpack("C", pack("C", 255)));
19print_r(unpack("C", pack("C", -129)));
20
21print_r(unpack("H", pack("H", 0x04)));
22
23print_r(unpack("I", pack("I", 65534)));
24print_r(unpack("I", pack("I", 0)));
25print_r(unpack("I", pack("I", -1000)));
26print_r(unpack("I", pack("I", -64434)));
27print_r(unpack("I", pack("I", 4294967296)));
28print_r(unpack("I", pack("I", -4294967296)));
29
30print_r(unpack("L", pack("L", 65534)));
31print_r(unpack("L", pack("L", 0)));
32print_r(unpack("L", pack("L", 2147483650)));
33print_r(unpack("L", pack("L", 4294967295)));
34print_r(unpack("L", pack("L", -2147483648)));
35
36print_r(unpack("N", pack("N", 65534)));
37print_r(unpack("N", pack("N", 0)));
38print_r(unpack("N", pack("N", 2147483650)));
39print_r(unpack("N", pack("N", 4294967296)));
40print_r(unpack("N", pack("N", -2147483648)));
41print_r(unpack("N", pack("N", -30000)));
42
43print_r(unpack("S", pack("S", 65534)));
44print_r(unpack("S", pack("S", 65537)));
45print_r(unpack("S", pack("S", 0)));
46print_r(unpack("S", pack("S", -1000)));
47print_r(unpack("S", pack("S", -64434)));
48print_r(unpack("S", pack("S", -65535)));
49
50print_r(unpack("V", pack("V", 65534)));
51print_r(unpack("V", pack("V", 0)));
52print_r(unpack("V", pack("V", 2147483650)));
53print_r(unpack("V", pack("V", 4294967296)));
54print_r(unpack("V", pack("V", -2147483648)));
55
56print_r(unpack("a", pack("a", "hello world")));
57print_r(unpack("a*", pack("a*", "hello world")));
58
59print_r(unpack("c", pack("c", -127)));
60print_r(unpack("c", pack("c", 127)));
61print_r(unpack("c", pack("c", 255)));
62print_r(unpack("c", pack("c", -129)));
63
64print_r(unpack("h", pack("h", 3000000)));
65
66print_r(unpack("i", pack("i", 65534)));
67print_r(unpack("i", pack("i", 0)));
68print_r(unpack("i", pack("i", -1000)));
69print_r(unpack("i", pack("i", -64434)));
70print_r(unpack("i", pack("i", -65535)));
71print_r(unpack("i", pack("i", -2147483647)));
72
73print_r(unpack("l", pack("l", 65534)));
74print_r(unpack("l", pack("l", 0)));
75print_r(unpack("l", pack("l", 2147483650)));
76print_r(unpack("l", pack("l", 4294967296)));
77print_r(unpack("l", pack("l", -2147483648)));
78
79print_r(unpack("n", pack("n", 65534)));
80print_r(unpack("n", pack("n", 65537)));
81print_r(unpack("n", pack("n", 0)));
82print_r(unpack("n", pack("n", -1000)));
83print_r(unpack("n", pack("n", -64434)));
84print_r(unpack("n", pack("n", -65535)));
85
86print_r(unpack("s", pack("s", 32767)));
87print_r(unpack("s", pack("s", 65535)));
88print_r(unpack("s", pack("s", 0)));
89print_r(unpack("s", pack("s", -1000)));
90print_r(unpack("s", pack("s", -64434)));
91print_r(unpack("s", pack("s", -65535)));
92
93print_r(unpack("v", pack("v", 65534)));
94print_r(unpack("v", pack("v", 65537)));
95print_r(unpack("v", pack("v", 0)));
96print_r(unpack("v", pack("v", -1000)));
97print_r(unpack("v", pack("v", -64434)));
98print_r(unpack("v", pack("v", -65535)));
99?>
100--EXPECT--
101Array
102(
103    [1] => h
104)
105Array
106(
107    [1] => hello world
108)
109"hello    "
110Array
111(
112    [1] => 129
113)
114Array
115(
116    [1] => 127
117)
118Array
119(
120    [1] => 255
121)
122Array
123(
124    [1] => 127
125)
126Array
127(
128    [1] => 4
129)
130Array
131(
132    [1] => 65534
133)
134Array
135(
136    [1] => 0
137)
138Array
139(
140    [1] => -1000
141)
142Array
143(
144    [1] => -64434
145)
146Array
147(
148    [1] => 0
149)
150Array
151(
152    [1] => 0
153)
154Array
155(
156    [1] => 65534
157)
158Array
159(
160    [1] => 0
161)
162Array
163(
164    [1] => -2147483646
165)
166Array
167(
168    [1] => -1
169)
170Array
171(
172    [1] => -2147483648
173)
174Array
175(
176    [1] => 65534
177)
178Array
179(
180    [1] => 0
181)
182Array
183(
184    [1] => -2147483646
185)
186Array
187(
188    [1] => 0
189)
190Array
191(
192    [1] => -2147483648
193)
194Array
195(
196    [1] => -30000
197)
198Array
199(
200    [1] => 65534
201)
202Array
203(
204    [1] => 1
205)
206Array
207(
208    [1] => 0
209)
210Array
211(
212    [1] => 64536
213)
214Array
215(
216    [1] => 1102
217)
218Array
219(
220    [1] => 1
221)
222Array
223(
224    [1] => 65534
225)
226Array
227(
228    [1] => 0
229)
230Array
231(
232    [1] => -2147483646
233)
234Array
235(
236    [1] => 0
237)
238Array
239(
240    [1] => -2147483648
241)
242Array
243(
244    [1] => h
245)
246Array
247(
248    [1] => hello world
249)
250Array
251(
252    [1] => -127
253)
254Array
255(
256    [1] => 127
257)
258Array
259(
260    [1] => -1
261)
262Array
263(
264    [1] => 127
265)
266Array
267(
268    [1] => 3
269)
270Array
271(
272    [1] => 65534
273)
274Array
275(
276    [1] => 0
277)
278Array
279(
280    [1] => -1000
281)
282Array
283(
284    [1] => -64434
285)
286Array
287(
288    [1] => -65535
289)
290Array
291(
292    [1] => -2147483647
293)
294Array
295(
296    [1] => 65534
297)
298Array
299(
300    [1] => 0
301)
302Array
303(
304    [1] => -2147483646
305)
306Array
307(
308    [1] => 0
309)
310Array
311(
312    [1] => -2147483648
313)
314Array
315(
316    [1] => 65534
317)
318Array
319(
320    [1] => 1
321)
322Array
323(
324    [1] => 0
325)
326Array
327(
328    [1] => 64536
329)
330Array
331(
332    [1] => 1102
333)
334Array
335(
336    [1] => 1
337)
338Array
339(
340    [1] => 32767
341)
342Array
343(
344    [1] => -1
345)
346Array
347(
348    [1] => 0
349)
350Array
351(
352    [1] => -1000
353)
354Array
355(
356    [1] => 1102
357)
358Array
359(
360    [1] => 1
361)
362Array
363(
364    [1] => 65534
365)
366Array
367(
368    [1] => 1
369)
370Array
371(
372    [1] => 0
373)
374Array
375(
376    [1] => 64536
377)
378Array
379(
380    [1] => 1102
381)
382Array
383(
384    [1] => 1
385)
386