rmdir_variation3-win32.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. --TEST--
  2. Test rmdir() 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 valid for Windows");
  9. ?>
  10. --FILE--
  11. <?php
  12. /* Prototype : bool rmdir(string dirname[, resource context])
  13. * Description: Remove a directory
  14. * Source code: ext/standard/file.c
  15. * Alias to functions:
  16. */
  17. echo "*** Testing rmdir() : variation ***\n";
  18. $workDir = "rmdirVar3.tmp";
  19. $subDir = "aSubDir";
  20. mkdir($workDir);
  21. $cwd = getcwd();
  22. $unixifiedDir = '/'.substr(str_replace('\\','/',$cwd).'/'.$workDir.'/'.$subDir, 3);
  23. $dirs = array(
  24. // relative
  25. $workDir.'\\'.$subDir,
  26. '.\\'.$workDir.'\\'.$subDir,
  27. $workDir.'\\..\\'.$workDir.'\\'.$subDir,
  28. // relative bad path
  29. $workDir.'\\..\\BADDIR\\'.$subDir,
  30. 'BADDIR\\'.$subDir,
  31. //absolute
  32. $cwd.'\\'.$workDir.'\\'.$subDir,
  33. $cwd.'\\.\\'.$workDir.'\\'.$subDir,
  34. $cwd.'\\'.$workDir.'\\..\\'.$workDir.'\\'.$subDir,
  35. //absolute bad path
  36. $cwd.'\\BADDIR\\'.$subDir,
  37. //trailing separators
  38. $workDir.'\\'.$subDir.'\\',
  39. $cwd.'\\'.$workDir.'\\'.$subDir.'\\',
  40. // multiple separators
  41. $workDir.'\\\\'.$subDir,
  42. $cwd.'\\\\'.$workDir.'\\\\'.$subDir,
  43. // Unixified Dir
  44. $unixifiedDir,
  45. );
  46. foreach($dirs as $dir) {
  47. mkdir($workDir.'/'.$subDir);
  48. echo "-- removing $dir --\n";
  49. $res = rmdir($dir);
  50. if ($res === true) {
  51. echo "Directory removed\n";
  52. }
  53. else {
  54. rmdir($workDir.'/'.$subDir);
  55. }
  56. }
  57. rmdir($workDir);
  58. ?>
  59. ===DONE===
  60. --EXPECTF--
  61. *** Testing rmdir() : variation ***
  62. -- removing rmdirVar3.tmp\aSubDir --
  63. Directory removed
  64. -- removing .\rmdirVar3.tmp\aSubDir --
  65. Directory removed
  66. -- removing rmdirVar3.tmp\..\rmdirVar3.tmp\aSubDir --
  67. Directory removed
  68. -- removing rmdirVar3.tmp\..\BADDIR\aSubDir --
  69. Warning: rmdir(rmdirVar3.tmp\..\BADDIR\aSubDir): No such file or directory in %s on line %d
  70. -- removing BADDIR\aSubDir --
  71. Warning: rmdir(BADDIR\aSubDir): No such file or directory in %s on line %d
  72. -- removing %s\rmdirVar3.tmp\aSubDir --
  73. Directory removed
  74. -- removing %s\.\rmdirVar3.tmp\aSubDir --
  75. Directory removed
  76. -- removing %s\rmdirVar3.tmp\..\rmdirVar3.tmp\aSubDir --
  77. Directory removed
  78. -- removing %s\BADDIR\aSubDir --
  79. Warning: rmdir(%s\BADDIR\aSubDir): No such file or directory in %s on line %d
  80. -- removing rmdirVar3.tmp\aSubDir\ --
  81. Directory removed
  82. -- removing %s\rmdirVar3.tmp\aSubDir\ --
  83. Directory removed
  84. -- removing rmdirVar3.tmp\\aSubDir --
  85. Directory removed
  86. -- removing %s\\rmdirVar3.tmp\\aSubDir --
  87. Directory removed
  88. -- removing /%s/rmdirVar3.tmp/aSubDir --
  89. Directory removed
  90. ===DONE===