opendir_variation4.phpt 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. --TEST--
  2. Test opendir() function : usage variations - different relative paths
  3. --FILE--
  4. <?php
  5. /*
  6. * Test opendir() with different relative paths as $path argument
  7. */
  8. echo "*** Testing opendir() : usage variation ***\n";
  9. $base_dir_path = __DIR__ . '/opendir_variation4';
  10. @mkdir($base_dir_path);
  11. $level_one_dir_name = "level_one";
  12. $level_one_dir_path = "$base_dir_path/$level_one_dir_name";
  13. $level_two_dir_name = "level_two";
  14. $level_two_dir_path = "$base_dir_path/$level_one_dir_name/$level_two_dir_name";
  15. // create directories
  16. mkdir($level_one_dir_path);
  17. mkdir($level_two_dir_path);
  18. echo "\n-- \$path = './level_one': --\n";
  19. var_dump(chdir($base_dir_path));
  20. var_dump($dh = opendir("./$level_one_dir_name"));
  21. clean_dh($dh);
  22. echo "\n-- \$path = 'level_one/level_two': --\n";
  23. var_dump(chdir($base_dir_path));
  24. var_dump($dh = opendir("$level_one_dir_name/$level_two_dir_name"));
  25. clean_dh($dh);
  26. echo "\n-- \$path = '..': --\n";
  27. var_dump($dh = opendir('..'));
  28. clean_dh($dh);
  29. echo "\n-- \$path = 'level_two', '.': --\n";
  30. var_dump(chdir($level_two_dir_path));
  31. var_dump($dh = opendir('.'));
  32. clean_dh($dh);
  33. echo "\n-- \$path = '../': --\n";
  34. var_dump($dh = opendir('../'));
  35. clean_dh($dh);
  36. echo "\n-- \$path = './': --\n";
  37. var_dump(chdir($level_two_dir_path));
  38. var_dump($dh = opendir('./'));
  39. clean_dh($dh);
  40. echo "\n-- \$path = '../../'level_one': --\n";
  41. var_dump(chdir($level_two_dir_path));
  42. var_dump($dh = opendir("../../$level_one_dir_name"));
  43. clean_dh($dh);
  44. /*
  45. * function to remove directory handle before re-using variable name in test
  46. * and to ensure directory is not in use at CLEAN section so can me removed
  47. */
  48. function clean_dh($dh){
  49. if (is_resource($dh)) {
  50. closedir($dh);
  51. }
  52. unset($dh);
  53. }
  54. ?>
  55. --CLEAN--
  56. <?php
  57. $base_dir_path = __DIR__ . '/opendir_variation4';
  58. rmdir("$base_dir_path/level_one/level_two");
  59. rmdir("$base_dir_path/level_one");
  60. rmdir($base_dir_path);
  61. ?>
  62. --EXPECTF--
  63. *** Testing opendir() : usage variation ***
  64. -- $path = './level_one': --
  65. bool(true)
  66. resource(%d) of type (stream)
  67. -- $path = 'level_one/level_two': --
  68. bool(true)
  69. resource(%d) of type (stream)
  70. -- $path = '..': --
  71. resource(%d) of type (stream)
  72. -- $path = 'level_two', '.': --
  73. bool(true)
  74. resource(%d) of type (stream)
  75. -- $path = '../': --
  76. resource(%d) of type (stream)
  77. -- $path = './': --
  78. bool(true)
  79. resource(%d) of type (stream)
  80. -- $path = '../../'level_one': --
  81. bool(true)
  82. resource(%d) of type (stream)