Annotation of embedaddon/php/ext/standard/tests/file/fnmatch_variation.phpt, revision 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>