travis
[m6w6/ext-raphf] / tests / test.phpt
1 --TEST--
2 raphf test
3 --SKIPIF--
4 <?php
5 if (!extension_loaded("raphf")) {
6 die("skip need ext/raphf");
7 }
8 if (!defined("RAPHF_TEST")) {
9 die("skip need RAPHF_TEST defined (-DPHP_RAPHF_TEST=1)");
10 }
11 ?>
12 --INI--
13 raphf.persistent_handle.limit=0
14 --FILE--
15 <?php
16
17 function dumper($id) {
18 return function() use ($id) {
19 echo "### back '$id':\n";
20 for ($i=0; $i<func_num_args(); ++$i) {
21 echo "#### arg $i: ";
22 var_dump(func_get_arg($i));
23 }
24 /* relay arguments back */
25 return func_get_args();
26 };
27 }
28
29 echo "## call provide:\n";
30 var_dump(raphf\provide("test",dumper("ctor"),dumper("copy"),dumper("dtor"),"data value",dumper("data_dtor")));
31
32 echo "## call concede:\n";
33 var_dump($rf = raphf\concede("test","1"));
34
35 echo "## call handle_ctor:\n";
36 var_dump($h = raphf\handle_ctor($rf, 1));
37
38 echo "## call handle_copy:\n";
39 var_dump($h2 = raphf\handle_copy($rf, $h));
40 var_dump(raphf\stat_persistent_handles());
41
42 echo "## call handle_dtor:\n";
43 var_dump(raphf\handle_dtor($rf, $h));
44 var_dump(raphf\stat_persistent_handles());
45
46 echo "## call handle_dtor:\n";
47 var_dump(raphf\handle_dtor($rf, $h2));
48 var_dump(raphf\stat_persistent_handles());
49
50 echo "## cleanup:\n";
51 var_dump(raphf\dispute($rf), $rf);
52 var_dump(raphf\conceal("test"));
53 var_dump(raphf\stat_persistent_handles());
54
55 ?>
56 --EXPECTF--
57 ## call provide:
58 bool(true)
59 ## call concede:
60 resource(4) of type (raphf_user)
61 ## call handle_ctor:
62 ### back 'ctor':
63 #### arg 0: string(10) "data value"
64 #### arg 1: int(1)
65 array(2) {
66 [0]=>
67 string(10) "data value"
68 [1]=>
69 int(1)
70 }
71 ## call handle_copy:
72 ### back 'copy':
73 #### arg 0: string(10) "data value"
74 #### arg 1: array(2) {
75 [0]=>
76 string(10) "data value"
77 [1]=>
78 int(1)
79 }
80 array(2) {
81 [0]=>
82 string(10) "data value"
83 [1]=>
84 array(2) {
85 [0]=>
86 string(10) "data value"
87 [1]=>
88 int(1)
89 }
90 }
91 object(stdClass)#%d (1) {
92 ["test"]=>
93 array(1) {
94 [1]=>
95 array(2) {
96 ["used"]=>
97 int(2)
98 ["free"]=>
99 int(0)
100 }
101 }
102 }
103 ## call handle_dtor:
104 ### back 'dtor':
105 #### arg 0: string(10) "data value"
106 #### arg 1: array(2) {
107 [0]=>
108 string(10) "data value"
109 [1]=>
110 int(1)
111 }
112 NULL
113 object(stdClass)#%d (1) {
114 ["test"]=>
115 array(1) {
116 [1]=>
117 array(2) {
118 ["used"]=>
119 int(1)
120 ["free"]=>
121 int(0)
122 }
123 }
124 }
125 ## call handle_dtor:
126 ### back 'dtor':
127 #### arg 0: string(10) "data value"
128 #### arg 1: array(2) {
129 [0]=>
130 string(10) "data value"
131 [1]=>
132 array(2) {
133 [0]=>
134 string(10) "data value"
135 [1]=>
136 int(1)
137 }
138 }
139 NULL
140 object(stdClass)#%d (1) {
141 ["test"]=>
142 array(1) {
143 [1]=>
144 array(2) {
145 ["used"]=>
146 int(0)
147 ["free"]=>
148 int(0)
149 }
150 }
151 }
152 ## cleanup:
153 bool(true)
154 resource(4) of type (Unknown)
155 ### back 'data_dtor':
156 #### arg 0: string(10) "data value"
157 bool(true)
158 bool(false)