Annotation of embedaddon/php/ext/standard/tests/file/fnmatch_variation.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test fnmatch() function: Variations
3: --SKIPIF--
4: <?php
5: if (!function_exists('fnmatch'))
6: die("skip fnmatch() function is not available");
7: ?>
8: --FILE--
9: <?php
10: /* Prototype: bool fnmatch ( string $pattern, string $string [, int $flags] )
11: Description: fnmatch() checks if the passed string would match
12: the given shell wildcard pattern.
13: */
14:
15: echo "*** Testing fnmatch() with file and various patterns ***\n";
16: $file_name = dirname(__FILE__)."/match.tmp";
17:
18: /* avoid using \, it breaks the pattern */
19: if (substr(PHP_OS, 0, 3) == 'WIN') {
20: $file_name = str_replace('\\','/', $file_name);
21: }
22:
23: fopen($file_name, "w");
24:
25: $pattern_arr = array(
26: 0 => "*.tmp",
27: 1 => "match*",
28: 2 => "mat*",
29: 3 => "mat*tmp",
30: 4 => "m*t",
31: 5 => "ma[pt]ch*",
32: 6 => "*.t*",
33: 7 => "***.tmp",
34: 8 => "match**",
35: 9 => "*.t*p",
36: 10 => "",
37: 11 => "match",
38: 12 => ".tmp",
39: 13 => "?match",
40: 14 => "match?tmp",
41: 15 => "?tmp",
42: 16 => "match?",
43: 17 => "?match?",
44: 18 => "match.tmp",
45: 19 => "/match.tmp",
46: 20 => "/match.tmp/",
47: 21 => 'match.tmp',
48: 22 => 'match.tmp\0',
49: 23 => "match.tmp\0",
50: 24 => "match\0.tmp",
51: 25 => chr(109).chr(97)."tch.tmp",
52: 26 => chr(109).chr(97).chr(116).chr(99).chr(104).".tmp",
53: 27 => chr(109).chr(97).chr(116).chr(99).chr(104).chr(46).chr(116).chr(120).chr(116),
54: 28 => chr(109).chr(97).chr(116).chr(99).chr(104).".".chr(116).chr(120).chr(116),
55: 29 => "MATCH.TMP",
56: 30 => "MATCH*",
57: 31 => $file_name,
58:
59: /* binary inputs */
60: 32 => b"match*",
61: 33 => b"*.tmp",
62: 34 => b"mat*",
63: 35 => b"mat*tmp",
64: 36 => b"m*t",
65: );
66:
67: for( $i = 0; $i<count($pattern_arr); $i++ ) {
68: echo "-- Iteration $i --\n";
69: var_dump( fnmatch($pattern_arr[$i], $file_name) );
70: }
71: unlink($file_name);
72:
73:
74: echo "\n*** Testing fnmatch() with other types other than files ***";
75:
76: /* defining a common function */
77: function match( $pattern, $string ) {
78: for( $i = 0; $i<count($pattern); $i++ ) {
79: echo "-- Iteration $i --\n";
80: for( $j = 0; $j<count($string); $j++ ) {
81: var_dump( fnmatch($pattern[$i], $string[$j]) );
82: }
83: }
84: }
85:
86: echo "\n--- With Integers ---\n";
87: $int_arr = array(
88: 16,
89: 16.00,
90: 020,
91: 020.00,
92: 0xF,
93: 0xF0000
94: );
95: match($int_arr, $int_arr);
96:
97: echo "\n--- With Strings ---\n";
98: $str_arr = array(
99: "string",
100: "string\0",
101: 'string',
102: "str\0ing",
103: "stringstring",
104:
105: /* binary input */
106: b"string"
107: );
108: match($str_arr, $str_arr);
109:
110: echo "\n--- With booleans ---\n";
111: $bool_arr = array(
112: TRUE,
113: true,
114: 1,
115: 10,
116: FALSE,
117: false,
118: 0,
119: "",
120: "string"
121: );
122: match($bool_arr, $bool_arr);
123:
124: echo "\n--- With NULL ---\n";
125: $null_arr = array(
126: NULL,
127: null,
128: "",
129: "\0",
130: "string",
131: 0
132: );
133: match($null_arr, $null_arr);
134:
135: echo "\n*** Done ***\n";
136: ?>
137: --EXPECT--
138: *** Testing fnmatch() with file and various patterns ***
139: -- Iteration 0 --
140: bool(true)
141: -- Iteration 1 --
142: bool(false)
143: -- Iteration 2 --
144: bool(false)
145: -- Iteration 3 --
146: bool(false)
147: -- Iteration 4 --
148: bool(false)
149: -- Iteration 5 --
150: bool(false)
151: -- Iteration 6 --
152: bool(true)
153: -- Iteration 7 --
154: bool(true)
155: -- Iteration 8 --
156: bool(false)
157: -- Iteration 9 --
158: bool(true)
159: -- Iteration 10 --
160: bool(false)
161: -- Iteration 11 --
162: bool(false)
163: -- Iteration 12 --
164: bool(false)
165: -- Iteration 13 --
166: bool(false)
167: -- Iteration 14 --
168: bool(false)
169: -- Iteration 15 --
170: bool(false)
171: -- Iteration 16 --
172: bool(false)
173: -- Iteration 17 --
174: bool(false)
175: -- Iteration 18 --
176: bool(false)
177: -- Iteration 19 --
178: bool(false)
179: -- Iteration 20 --
180: bool(false)
181: -- Iteration 21 --
182: bool(false)
183: -- Iteration 22 --
184: bool(false)
185: -- Iteration 23 --
186: bool(false)
187: -- Iteration 24 --
188: bool(false)
189: -- Iteration 25 --
190: bool(false)
191: -- Iteration 26 --
192: bool(false)
193: -- Iteration 27 --
194: bool(false)
195: -- Iteration 28 --
196: bool(false)
197: -- Iteration 29 --
198: bool(false)
199: -- Iteration 30 --
200: bool(false)
201: -- Iteration 31 --
202: bool(true)
203: -- Iteration 32 --
204: bool(false)
205: -- Iteration 33 --
206: bool(true)
207: -- Iteration 34 --
208: bool(false)
209: -- Iteration 35 --
210: bool(false)
211: -- Iteration 36 --
212: bool(false)
213:
214: *** Testing fnmatch() with other types other than files ***
215: --- With Integers ---
216: -- Iteration 0 --
217: bool(true)
218: bool(true)
219: bool(true)
220: bool(false)
221: bool(false)
222: bool(false)
223: -- Iteration 1 --
224: bool(true)
225: bool(true)
226: bool(true)
227: bool(false)
228: bool(false)
229: bool(false)
230: -- Iteration 2 --
231: bool(true)
232: bool(true)
233: bool(true)
234: bool(false)
235: bool(false)
236: bool(false)
237: -- Iteration 3 --
238: bool(false)
239: bool(false)
240: bool(false)
241: bool(true)
242: bool(false)
243: bool(false)
244: -- Iteration 4 --
245: bool(false)
246: bool(false)
247: bool(false)
248: bool(false)
249: bool(true)
250: bool(false)
251: -- Iteration 5 --
252: bool(false)
253: bool(false)
254: bool(false)
255: bool(false)
256: bool(false)
257: bool(true)
258:
259: --- With Strings ---
260: -- Iteration 0 --
261: bool(true)
262: bool(false)
263: bool(true)
264: bool(false)
265: bool(false)
266: bool(true)
267: -- Iteration 1 --
268: bool(false)
269: bool(false)
270: bool(false)
271: bool(false)
272: bool(false)
273: bool(false)
274: -- Iteration 2 --
275: bool(true)
276: bool(false)
277: bool(true)
278: bool(false)
279: bool(false)
280: bool(true)
281: -- Iteration 3 --
282: bool(false)
283: bool(false)
284: bool(false)
285: bool(false)
286: bool(false)
287: bool(false)
288: -- Iteration 4 --
289: bool(false)
290: bool(false)
291: bool(false)
292: bool(false)
293: bool(true)
294: bool(false)
295: -- Iteration 5 --
296: bool(true)
297: bool(false)
298: bool(true)
299: bool(false)
300: bool(false)
301: bool(true)
302:
303: --- With booleans ---
304: -- Iteration 0 --
305: bool(true)
306: bool(true)
307: bool(true)
308: bool(false)
309: bool(false)
310: bool(false)
311: bool(false)
312: bool(false)
313: bool(false)
314: -- Iteration 1 --
315: bool(true)
316: bool(true)
317: bool(true)
318: bool(false)
319: bool(false)
320: bool(false)
321: bool(false)
322: bool(false)
323: bool(false)
324: -- Iteration 2 --
325: bool(true)
326: bool(true)
327: bool(true)
328: bool(false)
329: bool(false)
330: bool(false)
331: bool(false)
332: bool(false)
333: bool(false)
334: -- Iteration 3 --
335: bool(false)
336: bool(false)
337: bool(false)
338: bool(true)
339: bool(false)
340: bool(false)
341: bool(false)
342: bool(false)
343: bool(false)
344: -- Iteration 4 --
345: bool(false)
346: bool(false)
347: bool(false)
348: bool(false)
349: bool(true)
350: bool(true)
351: bool(false)
352: bool(true)
353: bool(false)
354: -- Iteration 5 --
355: bool(false)
356: bool(false)
357: bool(false)
358: bool(false)
359: bool(true)
360: bool(true)
361: bool(false)
362: bool(true)
363: bool(false)
364: -- Iteration 6 --
365: bool(false)
366: bool(false)
367: bool(false)
368: bool(false)
369: bool(false)
370: bool(false)
371: bool(true)
372: bool(false)
373: bool(false)
374: -- Iteration 7 --
375: bool(false)
376: bool(false)
377: bool(false)
378: bool(false)
379: bool(true)
380: bool(true)
381: bool(false)
382: bool(true)
383: bool(false)
384: -- Iteration 8 --
385: bool(false)
386: bool(false)
387: bool(false)
388: bool(false)
389: bool(false)
390: bool(false)
391: bool(false)
392: bool(false)
393: bool(true)
394:
395: --- With NULL ---
396: -- Iteration 0 --
397: bool(true)
398: bool(true)
399: bool(true)
400: bool(false)
401: bool(false)
402: bool(false)
403: -- Iteration 1 --
404: bool(true)
405: bool(true)
406: bool(true)
407: bool(false)
408: bool(false)
409: bool(false)
410: -- Iteration 2 --
411: bool(true)
412: bool(true)
413: bool(true)
414: bool(false)
415: bool(false)
416: bool(false)
417: -- Iteration 3 --
418: bool(false)
419: bool(false)
420: bool(false)
421: bool(false)
422: bool(false)
423: bool(false)
424: -- Iteration 4 --
425: bool(false)
426: bool(false)
427: bool(false)
428: bool(false)
429: bool(true)
430: bool(false)
431: -- Iteration 5 --
432: bool(false)
433: bool(false)
434: bool(false)
435: bool(false)
436: bool(false)
437: bool(true)
438:
439: *** Done ***
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>