1--TEST--
2Test parsing of hexadecimal quantities
3--EXTENSIONS--
4zend_test
5--FILE--
6<?php
7
8// This test checks valid formats do not throw any warnings.
9foreach (['', ' '] as $leadingWS) {
10  foreach (['', '+', '-'] as $sign) {
11    foreach (['', ' '] as $midWS) {
12      // Ignore G due to overflow on 32bits
13      foreach (['', 'K', 'k', 'M', 'm'] as $exp) {
14        foreach (['', ' '] as $trailingWS) {
15          $setting = sprintf('%s%s0x1F%s%s%s',
16                             $leadingWS, $sign, $midWS, $exp, $trailingWS);
17          printf("# \"%s\"\n", $setting);
18          var_dump(zend_test_zend_ini_parse_quantity($setting));
19          print "\n";
20
21          $setting = sprintf('%s%s0X1F%s%s%s',
22                             $leadingWS, $sign, $midWS, $exp, $trailingWS);
23          printf("# \"%s\"\n", $setting);
24          var_dump(zend_test_zend_ini_parse_quantity($setting));
25          print "\n";
26        }
27      }
28    }
29  }
30}
31?>
32--EXPECT--
33# "0x1F"
34int(31)
35
36# "0X1F"
37int(31)
38
39# "0x1F "
40int(31)
41
42# "0X1F "
43int(31)
44
45# "0x1FK"
46int(31744)
47
48# "0X1FK"
49int(31744)
50
51# "0x1FK "
52int(31744)
53
54# "0X1FK "
55int(31744)
56
57# "0x1Fk"
58int(31744)
59
60# "0X1Fk"
61int(31744)
62
63# "0x1Fk "
64int(31744)
65
66# "0X1Fk "
67int(31744)
68
69# "0x1FM"
70int(32505856)
71
72# "0X1FM"
73int(32505856)
74
75# "0x1FM "
76int(32505856)
77
78# "0X1FM "
79int(32505856)
80
81# "0x1Fm"
82int(32505856)
83
84# "0X1Fm"
85int(32505856)
86
87# "0x1Fm "
88int(32505856)
89
90# "0X1Fm "
91int(32505856)
92
93# "0x1F "
94int(31)
95
96# "0X1F "
97int(31)
98
99# "0x1F  "
100int(31)
101
102# "0X1F  "
103int(31)
104
105# "0x1F K"
106int(31744)
107
108# "0X1F K"
109int(31744)
110
111# "0x1F K "
112int(31744)
113
114# "0X1F K "
115int(31744)
116
117# "0x1F k"
118int(31744)
119
120# "0X1F k"
121int(31744)
122
123# "0x1F k "
124int(31744)
125
126# "0X1F k "
127int(31744)
128
129# "0x1F M"
130int(32505856)
131
132# "0X1F M"
133int(32505856)
134
135# "0x1F M "
136int(32505856)
137
138# "0X1F M "
139int(32505856)
140
141# "0x1F m"
142int(32505856)
143
144# "0X1F m"
145int(32505856)
146
147# "0x1F m "
148int(32505856)
149
150# "0X1F m "
151int(32505856)
152
153# "+0x1F"
154int(31)
155
156# "+0X1F"
157int(31)
158
159# "+0x1F "
160int(31)
161
162# "+0X1F "
163int(31)
164
165# "+0x1FK"
166int(31744)
167
168# "+0X1FK"
169int(31744)
170
171# "+0x1FK "
172int(31744)
173
174# "+0X1FK "
175int(31744)
176
177# "+0x1Fk"
178int(31744)
179
180# "+0X1Fk"
181int(31744)
182
183# "+0x1Fk "
184int(31744)
185
186# "+0X1Fk "
187int(31744)
188
189# "+0x1FM"
190int(32505856)
191
192# "+0X1FM"
193int(32505856)
194
195# "+0x1FM "
196int(32505856)
197
198# "+0X1FM "
199int(32505856)
200
201# "+0x1Fm"
202int(32505856)
203
204# "+0X1Fm"
205int(32505856)
206
207# "+0x1Fm "
208int(32505856)
209
210# "+0X1Fm "
211int(32505856)
212
213# "+0x1F "
214int(31)
215
216# "+0X1F "
217int(31)
218
219# "+0x1F  "
220int(31)
221
222# "+0X1F  "
223int(31)
224
225# "+0x1F K"
226int(31744)
227
228# "+0X1F K"
229int(31744)
230
231# "+0x1F K "
232int(31744)
233
234# "+0X1F K "
235int(31744)
236
237# "+0x1F k"
238int(31744)
239
240# "+0X1F k"
241int(31744)
242
243# "+0x1F k "
244int(31744)
245
246# "+0X1F k "
247int(31744)
248
249# "+0x1F M"
250int(32505856)
251
252# "+0X1F M"
253int(32505856)
254
255# "+0x1F M "
256int(32505856)
257
258# "+0X1F M "
259int(32505856)
260
261# "+0x1F m"
262int(32505856)
263
264# "+0X1F m"
265int(32505856)
266
267# "+0x1F m "
268int(32505856)
269
270# "+0X1F m "
271int(32505856)
272
273# "-0x1F"
274int(-31)
275
276# "-0X1F"
277int(-31)
278
279# "-0x1F "
280int(-31)
281
282# "-0X1F "
283int(-31)
284
285# "-0x1FK"
286int(-31744)
287
288# "-0X1FK"
289int(-31744)
290
291# "-0x1FK "
292int(-31744)
293
294# "-0X1FK "
295int(-31744)
296
297# "-0x1Fk"
298int(-31744)
299
300# "-0X1Fk"
301int(-31744)
302
303# "-0x1Fk "
304int(-31744)
305
306# "-0X1Fk "
307int(-31744)
308
309# "-0x1FM"
310int(-32505856)
311
312# "-0X1FM"
313int(-32505856)
314
315# "-0x1FM "
316int(-32505856)
317
318# "-0X1FM "
319int(-32505856)
320
321# "-0x1Fm"
322int(-32505856)
323
324# "-0X1Fm"
325int(-32505856)
326
327# "-0x1Fm "
328int(-32505856)
329
330# "-0X1Fm "
331int(-32505856)
332
333# "-0x1F "
334int(-31)
335
336# "-0X1F "
337int(-31)
338
339# "-0x1F  "
340int(-31)
341
342# "-0X1F  "
343int(-31)
344
345# "-0x1F K"
346int(-31744)
347
348# "-0X1F K"
349int(-31744)
350
351# "-0x1F K "
352int(-31744)
353
354# "-0X1F K "
355int(-31744)
356
357# "-0x1F k"
358int(-31744)
359
360# "-0X1F k"
361int(-31744)
362
363# "-0x1F k "
364int(-31744)
365
366# "-0X1F k "
367int(-31744)
368
369# "-0x1F M"
370int(-32505856)
371
372# "-0X1F M"
373int(-32505856)
374
375# "-0x1F M "
376int(-32505856)
377
378# "-0X1F M "
379int(-32505856)
380
381# "-0x1F m"
382int(-32505856)
383
384# "-0X1F m"
385int(-32505856)
386
387# "-0x1F m "
388int(-32505856)
389
390# "-0X1F m "
391int(-32505856)
392
393# " 0x1F"
394int(31)
395
396# " 0X1F"
397int(31)
398
399# " 0x1F "
400int(31)
401
402# " 0X1F "
403int(31)
404
405# " 0x1FK"
406int(31744)
407
408# " 0X1FK"
409int(31744)
410
411# " 0x1FK "
412int(31744)
413
414# " 0X1FK "
415int(31744)
416
417# " 0x1Fk"
418int(31744)
419
420# " 0X1Fk"
421int(31744)
422
423# " 0x1Fk "
424int(31744)
425
426# " 0X1Fk "
427int(31744)
428
429# " 0x1FM"
430int(32505856)
431
432# " 0X1FM"
433int(32505856)
434
435# " 0x1FM "
436int(32505856)
437
438# " 0X1FM "
439int(32505856)
440
441# " 0x1Fm"
442int(32505856)
443
444# " 0X1Fm"
445int(32505856)
446
447# " 0x1Fm "
448int(32505856)
449
450# " 0X1Fm "
451int(32505856)
452
453# " 0x1F "
454int(31)
455
456# " 0X1F "
457int(31)
458
459# " 0x1F  "
460int(31)
461
462# " 0X1F  "
463int(31)
464
465# " 0x1F K"
466int(31744)
467
468# " 0X1F K"
469int(31744)
470
471# " 0x1F K "
472int(31744)
473
474# " 0X1F K "
475int(31744)
476
477# " 0x1F k"
478int(31744)
479
480# " 0X1F k"
481int(31744)
482
483# " 0x1F k "
484int(31744)
485
486# " 0X1F k "
487int(31744)
488
489# " 0x1F M"
490int(32505856)
491
492# " 0X1F M"
493int(32505856)
494
495# " 0x1F M "
496int(32505856)
497
498# " 0X1F M "
499int(32505856)
500
501# " 0x1F m"
502int(32505856)
503
504# " 0X1F m"
505int(32505856)
506
507# " 0x1F m "
508int(32505856)
509
510# " 0X1F m "
511int(32505856)
512
513# " +0x1F"
514int(31)
515
516# " +0X1F"
517int(31)
518
519# " +0x1F "
520int(31)
521
522# " +0X1F "
523int(31)
524
525# " +0x1FK"
526int(31744)
527
528# " +0X1FK"
529int(31744)
530
531# " +0x1FK "
532int(31744)
533
534# " +0X1FK "
535int(31744)
536
537# " +0x1Fk"
538int(31744)
539
540# " +0X1Fk"
541int(31744)
542
543# " +0x1Fk "
544int(31744)
545
546# " +0X1Fk "
547int(31744)
548
549# " +0x1FM"
550int(32505856)
551
552# " +0X1FM"
553int(32505856)
554
555# " +0x1FM "
556int(32505856)
557
558# " +0X1FM "
559int(32505856)
560
561# " +0x1Fm"
562int(32505856)
563
564# " +0X1Fm"
565int(32505856)
566
567# " +0x1Fm "
568int(32505856)
569
570# " +0X1Fm "
571int(32505856)
572
573# " +0x1F "
574int(31)
575
576# " +0X1F "
577int(31)
578
579# " +0x1F  "
580int(31)
581
582# " +0X1F  "
583int(31)
584
585# " +0x1F K"
586int(31744)
587
588# " +0X1F K"
589int(31744)
590
591# " +0x1F K "
592int(31744)
593
594# " +0X1F K "
595int(31744)
596
597# " +0x1F k"
598int(31744)
599
600# " +0X1F k"
601int(31744)
602
603# " +0x1F k "
604int(31744)
605
606# " +0X1F k "
607int(31744)
608
609# " +0x1F M"
610int(32505856)
611
612# " +0X1F M"
613int(32505856)
614
615# " +0x1F M "
616int(32505856)
617
618# " +0X1F M "
619int(32505856)
620
621# " +0x1F m"
622int(32505856)
623
624# " +0X1F m"
625int(32505856)
626
627# " +0x1F m "
628int(32505856)
629
630# " +0X1F m "
631int(32505856)
632
633# " -0x1F"
634int(-31)
635
636# " -0X1F"
637int(-31)
638
639# " -0x1F "
640int(-31)
641
642# " -0X1F "
643int(-31)
644
645# " -0x1FK"
646int(-31744)
647
648# " -0X1FK"
649int(-31744)
650
651# " -0x1FK "
652int(-31744)
653
654# " -0X1FK "
655int(-31744)
656
657# " -0x1Fk"
658int(-31744)
659
660# " -0X1Fk"
661int(-31744)
662
663# " -0x1Fk "
664int(-31744)
665
666# " -0X1Fk "
667int(-31744)
668
669# " -0x1FM"
670int(-32505856)
671
672# " -0X1FM"
673int(-32505856)
674
675# " -0x1FM "
676int(-32505856)
677
678# " -0X1FM "
679int(-32505856)
680
681# " -0x1Fm"
682int(-32505856)
683
684# " -0X1Fm"
685int(-32505856)
686
687# " -0x1Fm "
688int(-32505856)
689
690# " -0X1Fm "
691int(-32505856)
692
693# " -0x1F "
694int(-31)
695
696# " -0X1F "
697int(-31)
698
699# " -0x1F  "
700int(-31)
701
702# " -0X1F  "
703int(-31)
704
705# " -0x1F K"
706int(-31744)
707
708# " -0X1F K"
709int(-31744)
710
711# " -0x1F K "
712int(-31744)
713
714# " -0X1F K "
715int(-31744)
716
717# " -0x1F k"
718int(-31744)
719
720# " -0X1F k"
721int(-31744)
722
723# " -0x1F k "
724int(-31744)
725
726# " -0X1F k "
727int(-31744)
728
729# " -0x1F M"
730int(-32505856)
731
732# " -0X1F M"
733int(-32505856)
734
735# " -0x1F M "
736int(-32505856)
737
738# " -0X1F M "
739int(-32505856)
740
741# " -0x1F m"
742int(-32505856)
743
744# " -0X1F m"
745int(-32505856)
746
747# " -0x1F m "
748int(-32505856)
749
750# " -0X1F m "
751int(-32505856)
752