unlink_variation8-win32.phpt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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 = "unlinkVar8.tmp";
  20. $tmpFile = "file.tmp";
  21. chdir(__DIR__);
  22. mkdir($workDir);
  23. $cwd = __DIR__;
  24. $files = array(
  25. // relative
  26. $workDir.'/'.$tmpFile,
  27. './'.$workDir.'/'.$tmpFile,
  28. $workDir.'/../'.$workDir.'/'.$tmpFile,
  29. // relative bad path
  30. $workDir.'/../BADDIR/'.$tmpFile,
  31. 'BADDIR/'.$tmpFile,
  32. //absolute
  33. $cwd.'/'.$workDir.'/'.$tmpFile,
  34. $cwd.'/./'.$workDir.'/'.$tmpFile,
  35. $cwd.'/'.$workDir.'/../'.$workDir.'/'.$tmpFile,
  36. //absolute bad path
  37. $cwd.'/BADDIR/'.$tmpFile,
  38. //trailing separators
  39. $workDir.'/'.$tmpFile.'/',
  40. $cwd.'/'.$workDir.'/'.$tmpFile.'/',
  41. // multiple separators
  42. $workDir.'//'.$tmpFile,
  43. $cwd.'//'.$workDir.'//'.$tmpFile,
  44. );
  45. foreach($files as $fileToUnlink) {
  46. test_realfile($workDir.'/'.$tmpFile, $fileToUnlink);
  47. }
  48. rmdir($workDir);
  49. function test_realfile($file, $tounlink) {
  50. touch($file);
  51. echo "-- removing $tounlink --\n";
  52. $res = unlink($tounlink);
  53. if ($res === true) {
  54. if (file_exists($tounlink) === false) {
  55. echo "file removed\n";
  56. }
  57. else {
  58. echo "FAILED: file not removed\n";
  59. }
  60. }
  61. else {
  62. unlink($file);
  63. }
  64. }
  65. ?>
  66. ===DONE===
  67. --EXPECTF--
  68. *** Testing unlink() : variation ***
  69. -- removing unlinkVar8.tmp/file.tmp --
  70. file removed
  71. -- removing ./unlinkVar8.tmp/file.tmp --
  72. file removed
  73. -- removing unlinkVar8.tmp/../unlinkVar8.tmp/file.tmp --
  74. file removed
  75. -- removing unlinkVar8.tmp/../BADDIR/file.tmp --
  76. Warning: unlink(unlinkVar8.tmp/../BADDIR/file.tmp): No such file or directory in %s on line %d
  77. -- removing BADDIR/file.tmp --
  78. Warning: unlink(BADDIR/file.tmp): No such file or directory in %s on line %d
  79. -- removing %s/unlinkVar8.tmp/file.tmp --
  80. file removed
  81. -- removing %s/./unlinkVar8.tmp/file.tmp --
  82. file removed
  83. -- removing %s/unlinkVar8.tmp/../unlinkVar8.tmp/file.tmp --
  84. file removed
  85. -- removing %s/BADDIR/file.tmp --
  86. Warning: unlink(%s/BADDIR/file.tmp): No such file or directory in %s on line %d
  87. -- removing unlinkVar8.tmp/file.tmp/ --
  88. Warning: unlink(unlinkVar8.tmp/file.tmp/): Invalid argument in %s on line %d
  89. -- removing %s/unlinkVar8.tmp/file.tmp/ --
  90. Warning: unlink(%s/unlinkVar8.tmp/file.tmp/): Invalid argument in %s on line %d
  91. -- removing unlinkVar8.tmp//file.tmp --
  92. file removed
  93. -- removing %s//unlinkVar8.tmp//file.tmp --
  94. file removed
  95. ===DONE===