163b32cd4bd02ac2ee3708a3dcf720f46f467f91
[awesomized/ext-ion] / tests / Symbol / Table / Local.phpt
1 --TEST--
2 ion\Symbol\Table\Local
3 --EXTENSIONS--
4 ion
5 --FILE--
6 TEST
7 <?php
8
9 $w = new ion\Writer\Buffer\Writer(outputBinary: true);
10
11 $w->writeSymbol("local1");
12 $w->writeSymbol("local1");
13 $w->writeSymbol("local2");
14 $w->writeSymbol("local2");
15
16 $w->finish();
17
18 foreach (str_split($w->getBuffer(), 8) as $line) {
19 printf("%-26s", chunk_split(bin2hex($line), 2, " "));
20 foreach (str_split($line) as $byte) {
21 echo $byte >= ' ' && $byte <= '~' ? $byte : ".";
22 }
23 echo "\n";
24 }
25 echo "\n";
26
27 $u = new ion\Unserializer\Unserializer(multiSequence: true);
28 var_dump($u->unserialize($w->getBuffer()));
29
30 ?>
31 DONE
32 --EXPECTF--
33 TEST
34 e0 01 00 ea ee 95 81 83 ........
35 de 91 87 be 8e 86 6c 6f ......lo
36 63 61 6c 31 86 6c 6f 63 cal1.loc
37 61 6c 32 71 0a 71 0a 71 al2q.q.q
38 0b 71 0b .q.
39
40 array(4) {
41 [0]=>
42 object(ion\Symbol)#%d (3) {
43 ["value"]=>
44 string(6) "local1"
45 ["sid"]=>
46 int(10)
47 ["importLocation"]=>
48 NULL
49 }
50 [1]=>
51 object(ion\Symbol)#%d (3) {
52 ["value"]=>
53 string(6) "local1"
54 ["sid"]=>
55 int(10)
56 ["importLocation"]=>
57 NULL
58 }
59 [2]=>
60 object(ion\Symbol)#%d (3) {
61 ["value"]=>
62 string(6) "local2"
63 ["sid"]=>
64 int(11)
65 ["importLocation"]=>
66 NULL
67 }
68 [3]=>
69 object(ion\Symbol)#%d (3) {
70 ["value"]=>
71 string(6) "local2"
72 ["sid"]=>
73 int(11)
74 ["importLocation"]=>
75 NULL
76 }
77 }
78 DONE