Return to touch_basic.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test touch() function : basic functionality 3: --CREDITS-- 4: Dave Kelsey <d_kelsey@uk.ibm.com> 5: --SKIPIF-- 6: <?php 7: if (getenv("SKIP_SLOW_TESTS")) die("skip slow test"); 8: if (substr(PHP_OS, 0, 3) == 'WIN') { 9: die('skip.. only for Non Windows'); 10: } 11: ?> 12: --FILE-- 13: <?php 14: /* Prototype : proto bool touch(string filename [, int time [, int atime]]) 15: * Description: Set modification time of file 16: * Source code: ext/standard/filestat.c 17: * Alias to functions: 18: */ 19: 20: echo "*** Testing touch() : basic functionality ***\n"; 21: 22: $filename = dirname(__FILE__)."/touch.dat"; 23: 24: echo "\n--- testing touch creates a file ---\n"; 25: @unlink($filename); 26: if (file_exists($filename)) { 27: die("touch_basic failed"); 28: } 29: var_dump( touch($filename) ); 30: if (file_exists($filename) == false) { 31: die("touch_basic failed"); 32: } 33: 34: echo "\n --- testing touch doesn't alter file contents ---\n"; 35: $testln = "Here is a test line"; 36: $h = fopen($filename, "wb"); 37: fwrite($h, $testln); 38: fclose($h); 39: touch($filename); 40: $h = fopen($filename, "rb"); 41: echo fgets($h); 42: fclose($h); 43: 44: echo "\n\n --- testing touch alters the correct file metadata ---\n"; 45: $init_meta = stat($filename); 46: clearstatcache(); 47: sleep(1); 48: touch($filename); 49: $next_meta = stat($filename); 50: $type = array("dev", "ino", "mode", "nlink", "uid", "gid", 51: "rdev", "size", "atime", "mtime", "ctime", 52: "blksize", "blocks"); 53: 54: for ($i = 0; $i < count($type); $i++) { 55: if ($init_meta[$i] != $next_meta[$i]) { 56: echo "stat data differs at $type[$i]\n"; 57: } 58: } 59: 60: 61: // Initialise all required variables 62: $time = 10000; 63: $atime = 20470; 64: 65: // Calling touch() with all possible arguments 66: echo "\n --- testing touch using all parameters ---\n"; 67: var_dump( touch($filename, $time, $atime) ); 68: clearstatcache(); 69: $init_meta = stat($filename); 70: echo "ctime=".$init_meta['ctime']."\n"; 71: echo "mtime=".$init_meta['mtime']."\n"; 72: echo "atime=".$init_meta['atime']."\n"; 73: 74: unlink($filename); 75: 76: echo "Done"; 77: ?> 78: --EXPECTF-- 79: *** Testing touch() : basic functionality *** 80: 81: --- testing touch creates a file --- 82: bool(true) 83: 84: --- testing touch doesn't alter file contents --- 85: Here is a test line 86: 87: --- testing touch alters the correct file metadata --- 88: stat data differs at atime 89: stat data differs at mtime 90: stat data differs at ctime 91: 92: --- testing touch using all parameters --- 93: bool(true) 94: ctime=%d 95: mtime=10000 96: atime=20470 97: Done