summaryrefslogtreecommitdiff
path: root/ext/standard/tests/file/touch_variation6-win32.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/file/touch_variation6-win32.phpt')
-rw-r--r--ext/standard/tests/file/touch_variation6-win32.phpt263
1 files changed, 263 insertions, 0 deletions
diff --git a/ext/standard/tests/file/touch_variation6-win32.phpt b/ext/standard/tests/file/touch_variation6-win32.phpt
new file mode 100644
index 0000000000..8c87d49048
--- /dev/null
+++ b/ext/standard/tests/file/touch_variation6-win32.phpt
@@ -0,0 +1,263 @@
+--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";
+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 ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: touchVar5.tmp\aSubDirOrFile - access time not changed
+--- testing .\touchVar5.tmp\aSubDirOrFile ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: .\touchVar5.tmp\aSubDirOrFile - access time not changed
+--- testing touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile - access time not changed
+--- testing %s\touchVar5.tmp\aSubDirOrFile ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: %s\touchVar5.tmp\aSubDirOrFile - access time not changed
+--- testing %s\.\touchVar5.tmp\aSubDirOrFile ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: %s\.\touchVar5.tmp\aSubDirOrFile - access time not changed
+--- testing %s\touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: %s\touchVar5.tmp\..\touchVar5.tmp\aSubDirOrFile - access time not changed
+--- testing touchVar5.tmp\aSubDirOrFile\ ---
+
+Warning: touch(): Utime failed: No such file or directory in %s on line %d
+FAILED: touchVar5.tmp\aSubDirOrFile\ - access time not changed
+--- testing %s\touchVar5.tmp\aSubDirOrFile\ ---
+
+Warning: touch(): Utime failed: No such file or directory in %s on line %d
+FAILED: %s\touchVar5.tmp\aSubDirOrFile\ - access time not changed
+--- testing touchVar5.tmp\\aSubDirOrFile ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: touchVar5.tmp\\aSubDirOrFile - access time not changed
+--- testing %s\\touchVar5.tmp\\aSubDirOrFile ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: %s\\touchVar5.tmp\\aSubDirOrFile - access time not changed
+--- testing /%s/touchVar5.tmp/aSubDirOrFile ---
+
+Warning: touch(): Utime failed: Permission denied in %s on line %d
+FAILED: /%s/touchVar5.tmp/aSubDirOrFile - access time not changed
+===DONE===
+