1--TEST--
2Test strcspn() function : usage variations - with varying mask & default start and len args
3--FILE--
4<?php
5/*
6* Testing strcspn() : with varying mask and default start and len arguments
7*/
8
9echo "*** Testing strcspn() : with different mask strings and default start and len arguments ***\n";
10
11// initialing required variables
12$strings = array(
13                   "",
14           '',
15           "\n",
16           '\n',
17           "hello\tworld\nhello\nworld\n",
18           'hello\tworld\nhello\nworld\n',
19           "1234hello45world\t123",
20           '1234hello45world\t123',
21           "hello\0world\012",
22           'hello\0world\012',
23           chr(0).chr(0),
24           chr(0)."hello\0world".chr(0),
25           chr(0).'hello\0world'.chr(0),
26           "hello".chr(0)."world",
27           'hello'.chr(0).'world',
28           "hello\0\100\xaaaworld",
29           'hello\0\100\xaaaworld'
30                   );
31
32// defining array of mask strings
33$mask_array = array(
34            "",
35            '',
36            "\n\trsti \l",
37            '\n\trsti \l',
38            "\t",
39            "t\ ",
40            '\t',
41            "\t\ ",
42            " \t",
43                    "\t\i\100\xa"
44                   );
45
46
47// loop through each element of the array for mask argument
48$count = 1;
49foreach($strings as $str) {
50  echo "\n-- Itearation $count --\n";
51  foreach($mask_array as $mask) {
52      var_dump( strcspn($str,$mask) );
53  }
54  $count++;
55}
56
57echo "Done"
58?>
59--EXPECT--
60*** Testing strcspn() : with different mask strings and default start and len arguments ***
61
62-- Itearation 1 --
63int(0)
64int(0)
65int(0)
66int(0)
67int(0)
68int(0)
69int(0)
70int(0)
71int(0)
72int(0)
73
74-- Itearation 2 --
75int(0)
76int(0)
77int(0)
78int(0)
79int(0)
80int(0)
81int(0)
82int(0)
83int(0)
84int(0)
85
86-- Itearation 3 --
87int(1)
88int(1)
89int(0)
90int(1)
91int(1)
92int(1)
93int(1)
94int(1)
95int(1)
96int(0)
97
98-- Itearation 4 --
99int(2)
100int(2)
101int(0)
102int(0)
103int(2)
104int(0)
105int(0)
106int(0)
107int(2)
108int(0)
109
110-- Itearation 5 --
111int(24)
112int(24)
113int(2)
114int(2)
115int(5)
116int(24)
117int(24)
118int(5)
119int(5)
120int(5)
121
122-- Itearation 6 --
123int(28)
124int(28)
125int(2)
126int(2)
127int(28)
128int(5)
129int(5)
130int(5)
131int(28)
132int(5)
133
134-- Itearation 7 --
135int(20)
136int(20)
137int(6)
138int(6)
139int(16)
140int(20)
141int(20)
142int(16)
143int(16)
144int(16)
145
146-- Itearation 8 --
147int(21)
148int(21)
149int(6)
150int(6)
151int(21)
152int(16)
153int(16)
154int(16)
155int(21)
156int(16)
157
158-- Itearation 9 --
159int(12)
160int(12)
161int(2)
162int(2)
163int(12)
164int(12)
165int(12)
166int(12)
167int(12)
168int(11)
169
170-- Itearation 10 --
171int(16)
172int(16)
173int(2)
174int(2)
175int(16)
176int(5)
177int(5)
178int(5)
179int(16)
180int(5)
181
182-- Itearation 11 --
183int(2)
184int(2)
185int(2)
186int(2)
187int(2)
188int(2)
189int(2)
190int(2)
191int(2)
192int(2)
193
194-- Itearation 12 --
195int(13)
196int(13)
197int(3)
198int(3)
199int(13)
200int(13)
201int(13)
202int(13)
203int(13)
204int(13)
205
206-- Itearation 13 --
207int(14)
208int(14)
209int(3)
210int(3)
211int(14)
212int(6)
213int(6)
214int(6)
215int(14)
216int(6)
217
218-- Itearation 14 --
219int(11)
220int(11)
221int(2)
222int(2)
223int(11)
224int(11)
225int(11)
226int(11)
227int(11)
228int(11)
229
230-- Itearation 15 --
231int(11)
232int(11)
233int(2)
234int(2)
235int(11)
236int(11)
237int(11)
238int(11)
239int(11)
240int(11)
241
242-- Itearation 16 --
243int(14)
244int(14)
245int(2)
246int(2)
247int(14)
248int(14)
249int(14)
250int(14)
251int(14)
252int(6)
253
254-- Itearation 17 --
255int(21)
256int(21)
257int(2)
258int(2)
259int(21)
260int(5)
261int(5)
262int(5)
263int(21)
264int(5)
265Done
266