unlink_variation8.phpt 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  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.. Not for Windows');
  9. }
  10. ?>
  11. --FILE--
  12. <?php
  13. echo "*** Testing unlink() : variation ***\n";
  14. $workDir = "unlinkVar8.tmp";
  15. $tmpFile = "file.tmp";
  16. $fileToLinkTo = $workDir.'/'."linkme.tmp";
  17. mkdir($workDir);
  18. $cwd = getcwd();
  19. touch($fileToLinkTo);
  20. $files = array(
  21. // relative
  22. $workDir.'/'.$tmpFile,
  23. './'.$workDir.'/'.$tmpFile,
  24. $workDir.'/../'.$workDir.'/'.$tmpFile,
  25. // relative bad path
  26. $workDir.'/../BADDIR/'.$tmpFile,
  27. 'BADDIR/'.$tmpFile,
  28. //absolute
  29. $cwd.'/'.$workDir.'/'.$tmpFile,
  30. $cwd.'/./'.$workDir.'/'.$tmpFile,
  31. $cwd.'/'.$workDir.'/../'.$workDir.'/'.$tmpFile,
  32. //absolute bad path
  33. $cwd.'/BADDIR/'.$tmpFile,
  34. //trailing separators
  35. $workDir.'/'.$tmpFile.'/',
  36. $cwd.'/'.$workDir.'/'.$tmpFile.'/',
  37. // multiple separators
  38. $workDir.'//'.$tmpFile,
  39. $cwd.'//'.$workDir.'//'.$tmpFile,
  40. );
  41. foreach($files as $fileToUnlink) {
  42. test_realfile($workDir.'/'.$tmpFile, $fileToUnlink);
  43. test_link($workDir.'/'.$tmpFile, $fileToLinkTo, $fileToUnlink, true); //soft link
  44. test_link($workDir.'/'.$tmpFile, $fileToLinkTo, $fileToUnlink, false); //hard link
  45. }
  46. unlink($fileToLinkTo);
  47. rmdir($workDir);
  48. function test_realfile($file, $tounlink) {
  49. touch($file);
  50. echo "-- removing $tounlink --\n";
  51. $res = unlink($tounlink);
  52. if ($res === true) {
  53. if (file_exists($tounlink) === false) {
  54. echo "file removed\n";
  55. }
  56. else {
  57. echo "FAILED: file not removed\n";
  58. }
  59. }
  60. else {
  61. unlink($file);
  62. }
  63. }
  64. function test_link($linkedfile, $toLinkTo, $tounlink, $softlink) {
  65. if ($softlink == true) {
  66. symlink($toLinkTo, $linkedfile);
  67. $msg = "soft link";
  68. }
  69. else {
  70. link($toLinkTo, $linkedfile);
  71. $msg = "hard link";
  72. }
  73. echo "-- unlinking $msg $tounlink --\n";
  74. $res = unlink($tounlink);
  75. if ($res === true) {
  76. if (file_exists($tounlink) === false) {
  77. echo "file unlinked\n";
  78. }
  79. else {
  80. echo "FAILED: file not unlinked\n";
  81. }
  82. }
  83. else {
  84. unlink($linkedfile);
  85. }
  86. }
  87. ?>
  88. --EXPECTF--
  89. *** Testing unlink() : variation ***
  90. -- removing unlinkVar8.tmp/file.tmp --
  91. file removed
  92. -- unlinking soft link unlinkVar8.tmp/file.tmp --
  93. file unlinked
  94. -- unlinking hard link unlinkVar8.tmp/file.tmp --
  95. file unlinked
  96. -- removing ./unlinkVar8.tmp/file.tmp --
  97. file removed
  98. -- unlinking soft link ./unlinkVar8.tmp/file.tmp --
  99. file unlinked
  100. -- unlinking hard link ./unlinkVar8.tmp/file.tmp --
  101. file unlinked
  102. -- removing unlinkVar8.tmp/../unlinkVar8.tmp/file.tmp --
  103. file removed
  104. -- unlinking soft link unlinkVar8.tmp/../unlinkVar8.tmp/file.tmp --
  105. file unlinked
  106. -- unlinking hard link unlinkVar8.tmp/../unlinkVar8.tmp/file.tmp --
  107. file unlinked
  108. -- removing unlinkVar8.tmp/../BADDIR/file.tmp --
  109. Warning: unlink(unlinkVar8.tmp/../BADDIR/file.tmp): No such file or directory in %s on line %d
  110. -- unlinking soft link unlinkVar8.tmp/../BADDIR/file.tmp --
  111. Warning: unlink(unlinkVar8.tmp/../BADDIR/file.tmp): No such file or directory in %s on line %d
  112. -- unlinking hard link unlinkVar8.tmp/../BADDIR/file.tmp --
  113. Warning: unlink(unlinkVar8.tmp/../BADDIR/file.tmp): No such file or directory in %s on line %d
  114. -- removing BADDIR/file.tmp --
  115. Warning: unlink(BADDIR/file.tmp): No such file or directory in %s on line %d
  116. -- unlinking soft link BADDIR/file.tmp --
  117. Warning: unlink(BADDIR/file.tmp): No such file or directory in %s on line %d
  118. -- unlinking hard link BADDIR/file.tmp --
  119. Warning: unlink(BADDIR/file.tmp): No such file or directory in %s on line %d
  120. -- removing /%s/unlinkVar8.tmp/file.tmp --
  121. file removed
  122. -- unlinking soft link /%s/unlinkVar8.tmp/file.tmp --
  123. file unlinked
  124. -- unlinking hard link /%s/unlinkVar8.tmp/file.tmp --
  125. file unlinked
  126. -- removing /%s/./unlinkVar8.tmp/file.tmp --
  127. file removed
  128. -- unlinking soft link /%s/./unlinkVar8.tmp/file.tmp --
  129. file unlinked
  130. -- unlinking hard link /%s/./unlinkVar8.tmp/file.tmp --
  131. file unlinked
  132. -- removing /%s/unlinkVar8.tmp/../unlinkVar8.tmp/file.tmp --
  133. file removed
  134. -- unlinking soft link /%s/unlinkVar8.tmp/../unlinkVar8.tmp/file.tmp --
  135. file unlinked
  136. -- unlinking hard link /%s/unlinkVar8.tmp/../unlinkVar8.tmp/file.tmp --
  137. file unlinked
  138. -- removing /%s/BADDIR/file.tmp --
  139. Warning: unlink(/%s/BADDIR/file.tmp): No such file or directory in %s on line %d
  140. -- unlinking soft link /%s/BADDIR/file.tmp --
  141. Warning: unlink(/%s/BADDIR/file.tmp): No such file or directory in %s on line %d
  142. -- unlinking hard link /%s/BADDIR/file.tmp --
  143. Warning: unlink(/%s/BADDIR/file.tmp): No such file or directory in %s on line %d
  144. -- removing unlinkVar8.tmp/file.tmp/ --
  145. Warning: unlink(unlinkVar8.tmp/file.tmp/): Not a directory in %s on line %d
  146. -- unlinking soft link unlinkVar8.tmp/file.tmp/ --
  147. Warning: unlink(unlinkVar8.tmp/file.tmp/): %s directory in %s on line %d
  148. -- unlinking hard link unlinkVar8.tmp/file.tmp/ --
  149. Warning: unlink(unlinkVar8.tmp/file.tmp/): Not a directory in %s on line %d
  150. -- removing /%s/unlinkVar8.tmp/file.tmp/ --
  151. Warning: unlink(/%s/unlinkVar8.tmp/file.tmp/): Not a directory in %s on line %d
  152. -- unlinking soft link /%s/unlinkVar8.tmp/file.tmp/ --
  153. Warning: unlink(/%s/unlinkVar8.tmp/file.tmp/): %s directory in %s on line %d
  154. -- unlinking hard link /%s/unlinkVar8.tmp/file.tmp/ --
  155. Warning: unlink(/%s/unlinkVar8.tmp/file.tmp/): Not a directory in %s on line %d
  156. -- removing unlinkVar8.tmp//file.tmp --
  157. file removed
  158. -- unlinking soft link unlinkVar8.tmp//file.tmp --
  159. file unlinked
  160. -- unlinking hard link unlinkVar8.tmp//file.tmp --
  161. file unlinked
  162. -- removing /%s//unlinkVar8.tmp//file.tmp --
  163. file removed
  164. -- unlinking soft link /%s//unlinkVar8.tmp//file.tmp --
  165. file unlinked
  166. -- unlinking hard link /%s//unlinkVar8.tmp//file.tmp --
  167. file unlinked