Annotation of embedaddon/php/ext/standard/tests/file/touch_basic.phpt, revision 1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>