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>