unlink_variation9-win32.phpt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. --TEST--
  2. Test unlink() function : variation: various valid and invalid paths
  3. --CREDITS--
  4. Dave Kelsey <d_kelsey@uk.ibm.com>
  5. --SKIPIF--
  6. <?php
  7. if (substr(PHP_OS, 0, 3) != 'WIN') {
  8. die('skip.. only for Windows');
  9. }
  10. ?>
  11. --FILE--
  12. <?php
  13. /* Prototype : bool unlink(string filename[, context context])
  14. * Description: Delete a file
  15. * Source code: ext/standard/file.c
  16. * Alias to functions:
  17. */
  18. echo "*** Testing unlink() : variation ***\n";
  19. $workDir = "unlinkVar9.tmp";
  20. $tmpFile = "file.tmp";
  21. chdir(__DIR__);
  22. mkdir($workDir);
  23. $cwd = __DIR__;
  24. $unixifiedFile = '/'.substr(str_replace('\\','/',$cwd).'/'.$workDir.'/'.$tmpFile, 3);
  25. $files = array(
  26. // relative
  27. $workDir.'\\'.$tmpFile,
  28. '.\\'.$workDir.'\\'.$tmpFile,
  29. $workDir.'\\..\\'.$workDir.'\\'.$tmpFile,
  30. // relative bad path
  31. $workDir.'\\..\\BADDIR\\'.$tmpFile,
  32. 'BADDIR\\'.$tmpFile,
  33. //absolute
  34. $cwd.'\\'.$workDir.'\\'.$tmpFile,
  35. $cwd.'\\.\\'.$workDir.'\\'.$tmpFile,
  36. $cwd.'\\'.$workDir.'\\..\\'.$workDir.'\\'.$tmpFile,
  37. //absolute bad path
  38. $cwd.'\\BADDIR\\'.$tmpFile,
  39. //trailing separators
  40. $workDir.'\\'.$tmpFile.'\\',
  41. $cwd.'\\'.$workDir.'\\'.$tmpFile.'\\',
  42. // multiple separators
  43. $workDir.'\\\\'.$tmpFile,
  44. $cwd.'\\\\'.$workDir.'\\\\'.$tmpFile,
  45. // Unixified File
  46. $unixifiedFile,
  47. );
  48. foreach($files as $fileToUnlink) {
  49. $file = $workDir.'/'.$tmpFile;
  50. $tounlink = $fileToUnlink;
  51. touch($file);
  52. echo "-- removing $tounlink --\n";
  53. $res = unlink($tounlink);
  54. if ($res === true) {
  55. if (file_exists($tounlink) === false) {
  56. echo "file removed\n";
  57. }
  58. else {
  59. echo "FAILED: file not removed\n";
  60. }
  61. }
  62. else {
  63. unlink($file);
  64. }
  65. }
  66. rmdir($workDir);
  67. ?>
  68. ===DONE===
  69. --EXPECTF--
  70. *** Testing unlink() : variation ***
  71. -- removing unlinkVar9.tmp\file.tmp --
  72. file removed
  73. -- removing .\unlinkVar9.tmp\file.tmp --
  74. file removed
  75. -- removing unlinkVar9.tmp\..\unlinkVar9.tmp\file.tmp --
  76. file removed
  77. -- removing unlinkVar9.tmp\..\BADDIR\file.tmp --
  78. Warning: unlink(unlinkVar9.tmp\..\BADDIR\file.tmp): No such file or directory in %s on line %d
  79. -- removing BADDIR\file.tmp --
  80. Warning: unlink(BADDIR\file.tmp): No such file or directory in %s on line %d
  81. -- removing %s\unlinkVar9.tmp\file.tmp --
  82. file removed
  83. -- removing %s\.\unlinkVar9.tmp\file.tmp --
  84. file removed
  85. -- removing %s\unlinkVar9.tmp\..\unlinkVar9.tmp\file.tmp --
  86. file removed
  87. -- removing %s\BADDIR\file.tmp --
  88. Warning: unlink(%s\BADDIR\file.tmp): No such file or directory in %s on line %d
  89. -- removing unlinkVar9.tmp\file.tmp\ --
  90. Warning: unlink(unlinkVar9.tmp\file.tmp\): Invalid argument in %s on line %d
  91. -- removing %s\unlinkVar9.tmp\file.tmp\ --
  92. Warning: unlink(%s\unlinkVar9.tmp\file.tmp\): Invalid argument in %s on line %d
  93. -- removing unlinkVar9.tmp\\file.tmp --
  94. file removed
  95. -- removing %s\\unlinkVar9.tmp\\file.tmp --
  96. file removed
  97. -- removing /%s/unlinkVar9.tmp/file.tmp --
  98. file removed
  99. ===DONE===