Annotation of embedaddon/php/ext/standard/tests/file/lstat_stat_basic.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test lstat() & stat() functions: basic functionality
! 3: --SKIPIF--
! 4: <?php
! 5: if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
! 6: if (substr(PHP_OS, 0, 3) == 'WIN') {
! 7: die('skip.. lstat() not available on Windows');
! 8: }
! 9: ?>
! 10: --FILE--
! 11: <?php
! 12: /* Prototype: array lstat ( string $filename );
! 13: Description: Gives information about a file or symbolic link
! 14:
! 15: Prototype: array stat ( string $filename );
! 16: Description: Gives information about a file
! 17: */
! 18:
! 19: $file_path = dirname(__FILE__);
! 20: require("$file_path/file.inc");
! 21:
! 22: echo "*** Testing lstat() & stat() : basic functionality ***\n";
! 23:
! 24: /* creating temp directory and file */
! 25:
! 26: // creating dir
! 27: $dirname = "$file_path/lstat_stat_basic";
! 28: @rmdir($dirname);
! 29: mkdir($dirname);
! 30: // stat of the dir created
! 31: $dir_stat = stat($dirname);
! 32: clearstatcache();
! 33: sleep(2);
! 34:
! 35: // creating file
! 36: $filename = "$dirname/lstat_stat_basic.tmp";
! 37: $file_handle = fopen($filename, "w");
! 38: fclose($file_handle);
! 39: // stat of the file created
! 40: $file_stat = stat($filename);
! 41: sleep(2);
! 42:
! 43: // now new stat of the dir after file is created
! 44: $new_dir_stat = stat($dirname);
! 45: clearstatcache();
! 46:
! 47: // create soft link and record stat
! 48: $sym_linkname = "$file_path/lstat_stat_basic_link.tmp";
! 49: symlink($filename, $sym_linkname);
! 50: // stat of the link created
! 51: $link_stat = lstat($sym_linkname);
! 52: sleep(2);
! 53: // new stat of the file, after a softlink to this file is created
! 54: $new_file_stat = stat($filename);
! 55: clearstatcache();
! 56:
! 57: // stat contains 13 different values stored twice, can be accessed using
! 58: // numeric and named keys, compare them to see they are same
! 59: echo "*** Testing stat() and lstat() : validating the values stored in stat ***\n";
! 60: // Initial stat values
! 61: var_dump( compare_self_stat($file_stat) ); //expect true
! 62: var_dump( compare_self_stat($dir_stat) ); //expect true
! 63: var_dump( compare_self_stat($link_stat) ); // expect true
! 64:
! 65: // New stat values taken after creation of file & link
! 66: var_dump( compare_self_stat($new_file_stat) ); //expect true
! 67: var_dump( compare_self_stat($new_dir_stat) ); // expect true
! 68:
! 69: // compare the two stat values, initial stat and stat recorded after
! 70: // creating files and link, also dump the value of stats
! 71: echo "*** Testing stat() and lstat() : comparing stats (recorded before and after file/link creation) ***\n";
! 72: echo "-- comparing difference in dir stats before and after creating file in it --\n";
! 73: $affected_elements = array( 9, 10, 'mtime', 'ctime' );
! 74: var_dump( compare_stats($dir_stat, $new_dir_stat, $affected_elements, '!=', true) ); // expect true
! 75:
! 76: echo "-- comparing difference in file stats before and after creating link to it --\n";
! 77: var_dump( compare_stats($file_stat, $new_file_stat, $all_stat_keys, "==", true) ); // expect true
! 78:
! 79: echo "Done\n";
! 80: ?>
! 81: --CLEAN--
! 82: <?php
! 83: $file_path = dirname(__FILE__);
! 84: unlink("$file_path/lstat_stat_basic_link.tmp");
! 85: unlink("$file_path/lstat_stat_basic/lstat_stat_basic.tmp");
! 86: rmdir("$file_path/lstat_stat_basic");
! 87: ?>
! 88: --EXPECTF--
! 89: *** Testing lstat() & stat() : basic functionality ***
! 90: *** Testing stat() and lstat() : validating the values stored in stat ***
! 91: bool(true)
! 92: bool(true)
! 93: bool(true)
! 94: bool(true)
! 95: bool(true)
! 96: *** Testing stat() and lstat() : comparing stats (recorded before and after file/link creation) ***
! 97: -- comparing difference in dir stats before and after creating file in it --
! 98: array(26) {
! 99: [0]=>
! 100: int(%i)
! 101: [1]=>
! 102: int(%i)
! 103: [2]=>
! 104: int(%i)
! 105: [3]=>
! 106: int(%i)
! 107: [4]=>
! 108: int(%i)
! 109: [5]=>
! 110: int(%i)
! 111: [6]=>
! 112: int(%i)
! 113: [7]=>
! 114: int(%i)
! 115: [8]=>
! 116: int(%i)
! 117: [9]=>
! 118: int(%i)
! 119: [10]=>
! 120: int(%i)
! 121: [11]=>
! 122: int(%i)
! 123: [12]=>
! 124: int(%i)
! 125: ["dev"]=>
! 126: int(%i)
! 127: ["ino"]=>
! 128: int(%i)
! 129: ["mode"]=>
! 130: int(%i)
! 131: ["nlink"]=>
! 132: int(%i)
! 133: ["uid"]=>
! 134: int(%i)
! 135: ["gid"]=>
! 136: int(%i)
! 137: ["rdev"]=>
! 138: int(%i)
! 139: ["size"]=>
! 140: int(%i)
! 141: ["atime"]=>
! 142: int(%i)
! 143: ["mtime"]=>
! 144: int(%i)
! 145: ["ctime"]=>
! 146: int(%i)
! 147: ["blksize"]=>
! 148: int(%i)
! 149: ["blocks"]=>
! 150: int(%i)
! 151: }
! 152: array(26) {
! 153: [0]=>
! 154: int(%i)
! 155: [1]=>
! 156: int(%i)
! 157: [2]=>
! 158: int(%i)
! 159: [3]=>
! 160: int(%i)
! 161: [4]=>
! 162: int(%i)
! 163: [5]=>
! 164: int(%i)
! 165: [6]=>
! 166: int(%i)
! 167: [7]=>
! 168: int(%i)
! 169: [8]=>
! 170: int(%i)
! 171: [9]=>
! 172: int(%i)
! 173: [10]=>
! 174: int(%i)
! 175: [11]=>
! 176: int(%i)
! 177: [12]=>
! 178: int(%i)
! 179: ["dev"]=>
! 180: int(%i)
! 181: ["ino"]=>
! 182: int(%i)
! 183: ["mode"]=>
! 184: int(%i)
! 185: ["nlink"]=>
! 186: int(%i)
! 187: ["uid"]=>
! 188: int(%i)
! 189: ["gid"]=>
! 190: int(%i)
! 191: ["rdev"]=>
! 192: int(%i)
! 193: ["size"]=>
! 194: int(%i)
! 195: ["atime"]=>
! 196: int(%i)
! 197: ["mtime"]=>
! 198: int(%i)
! 199: ["ctime"]=>
! 200: int(%i)
! 201: ["blksize"]=>
! 202: int(%i)
! 203: ["blocks"]=>
! 204: int(%i)
! 205: }
! 206: bool(true)
! 207: -- comparing difference in file stats before and after creating link to it --
! 208: array(26) {
! 209: [0]=>
! 210: int(%i)
! 211: [1]=>
! 212: int(%i)
! 213: [2]=>
! 214: int(%i)
! 215: [3]=>
! 216: int(%i)
! 217: [4]=>
! 218: int(%i)
! 219: [5]=>
! 220: int(%i)
! 221: [6]=>
! 222: int(%i)
! 223: [7]=>
! 224: int(%i)
! 225: [8]=>
! 226: int(%i)
! 227: [9]=>
! 228: int(%i)
! 229: [10]=>
! 230: int(%i)
! 231: [11]=>
! 232: int(%i)
! 233: [12]=>
! 234: int(%i)
! 235: ["dev"]=>
! 236: int(%i)
! 237: ["ino"]=>
! 238: int(%i)
! 239: ["mode"]=>
! 240: int(%i)
! 241: ["nlink"]=>
! 242: int(%i)
! 243: ["uid"]=>
! 244: int(%i)
! 245: ["gid"]=>
! 246: int(%i)
! 247: ["rdev"]=>
! 248: int(%i)
! 249: ["size"]=>
! 250: int(%i)
! 251: ["atime"]=>
! 252: int(%i)
! 253: ["mtime"]=>
! 254: int(%i)
! 255: ["ctime"]=>
! 256: int(%i)
! 257: ["blksize"]=>
! 258: int(%i)
! 259: ["blocks"]=>
! 260: int(%i)
! 261: }
! 262: array(26) {
! 263: [0]=>
! 264: int(%i)
! 265: [1]=>
! 266: int(%i)
! 267: [2]=>
! 268: int(%i)
! 269: [3]=>
! 270: int(%i)
! 271: [4]=>
! 272: int(%i)
! 273: [5]=>
! 274: int(%i)
! 275: [6]=>
! 276: int(%i)
! 277: [7]=>
! 278: int(%i)
! 279: [8]=>
! 280: int(%i)
! 281: [9]=>
! 282: int(%i)
! 283: [10]=>
! 284: int(%i)
! 285: [11]=>
! 286: int(%i)
! 287: [12]=>
! 288: int(%i)
! 289: ["dev"]=>
! 290: int(%i)
! 291: ["ino"]=>
! 292: int(%i)
! 293: ["mode"]=>
! 294: int(%i)
! 295: ["nlink"]=>
! 296: int(%i)
! 297: ["uid"]=>
! 298: int(%i)
! 299: ["gid"]=>
! 300: int(%i)
! 301: ["rdev"]=>
! 302: int(%i)
! 303: ["size"]=>
! 304: int(%i)
! 305: ["atime"]=>
! 306: int(%i)
! 307: ["mtime"]=>
! 308: int(%i)
! 309: ["ctime"]=>
! 310: int(%i)
! 311: ["blksize"]=>
! 312: int(%i)
! 313: ["blocks"]=>
! 314: int(%i)
! 315: }
! 316: bool(true)
! 317: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>