unlink_variation10.phpt 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. --TEST--
  2. Test unlink() function : variation: unlinking directories
  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.. Not for Windows');
  9. }
  10. ?>
  11. --FILE--
  12. <?php
  13. echo "*** Testing unlink() : variation ***\n";
  14. $workDir = "unlinkVar10.tmp";
  15. $tmpDir = "subDir.tmp";
  16. $dirToLinkTo = $workDir.'/'."linkme.tmp";
  17. mkdir($workDir);
  18. $cwd = getcwd();
  19. mkdir($dirToLinkTo);
  20. $dirs = array(
  21. // relative
  22. $workDir.'/'.$tmpDir,
  23. './'.$workDir.'/'.$tmpDir,
  24. $workDir.'/../'.$workDir.'/'.$tmpDir,
  25. //absolute
  26. $cwd.'/'.$workDir.'/'.$tmpDir,
  27. $cwd.'/./'.$workDir.'/'.$tmpDir,
  28. $cwd.'/'.$workDir.'/../'.$workDir.'/'.$tmpDir,
  29. // multiple separators
  30. $workDir.'//'.$tmpDir,
  31. $cwd.'//'.$workDir.'//'.$tmpDir,
  32. );
  33. foreach($dirs as $dirToUnlink) {
  34. test_link($workDir.'/'.$tmpDir, $dirToLinkTo, $dirToUnlink, true); //soft link
  35. //cannot test hard links unless you are root.
  36. }
  37. echo "\n--- try to unlink a directory ---\n";
  38. unlink($dirToLinkTo);
  39. rmdir($dirToLinkTo);
  40. rmdir($workDir);
  41. function test_link($linkedDir, $toLinkTo, $tounlink, $softlink) {
  42. if ($softlink == true) {
  43. symlink($toLinkTo, $linkedDir);
  44. $msg = "soft link";
  45. }
  46. else {
  47. link($toLinkTo, $linkedDir);
  48. $msg = "hard link";
  49. }
  50. echo "-- unlinking $msg $tounlink --\n";
  51. $res = unlink($tounlink);
  52. if ($res === true) {
  53. if (is_link($tounlink) === false) {
  54. echo "directory unlinked\n";
  55. }
  56. else {
  57. echo "FAILED: directory not unlinked\n";
  58. }
  59. }
  60. else {
  61. unlink($linkedDir);
  62. }
  63. }
  64. ?>
  65. --EXPECTF--
  66. *** Testing unlink() : variation ***
  67. -- unlinking soft link unlinkVar10.tmp/subDir.tmp --
  68. directory unlinked
  69. -- unlinking soft link ./unlinkVar10.tmp/subDir.tmp --
  70. directory unlinked
  71. -- unlinking soft link unlinkVar10.tmp/../unlinkVar10.tmp/subDir.tmp --
  72. directory unlinked
  73. -- unlinking soft link /%s/unlinkVar10.tmp/subDir.tmp --
  74. directory unlinked
  75. -- unlinking soft link /%s/./unlinkVar10.tmp/subDir.tmp --
  76. directory unlinked
  77. -- unlinking soft link /%s/unlinkVar10.tmp/../unlinkVar10.tmp/subDir.tmp --
  78. directory unlinked
  79. -- unlinking soft link unlinkVar10.tmp//subDir.tmp --
  80. directory unlinked
  81. -- unlinking soft link /%s//unlinkVar10.tmp//subDir.tmp --
  82. directory unlinked
  83. --- try to unlink a directory ---
  84. Warning: unlink(unlinkVar10.tmp/linkme.tmp): %s in %s on line %d