tempnam_variation2.phpt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. --TEST--
  2. Test tempnam() function: usage variations - various absolute and relative paths
  3. --SKIPIF--
  4. <?php
  5. if(substr(PHP_OS, 0, 3) == "WIN")
  6. die("skip Do not run on Windows");
  7. ?>
  8. --FILE--
  9. <?php
  10. /* Creating unique files in various dirs by passing relative paths to $dir arg */
  11. echo "*** Testing tempnam() with absolute and relative paths ***\n";
  12. $dir_name = __DIR__."/tempnam_variation2";
  13. mkdir($dir_name);
  14. $dir_path = $dir_name."/tempnam_variation2_sub";
  15. mkdir($dir_path);
  16. $old_dir_path = getcwd();
  17. chdir(__DIR__);
  18. $dir_paths = array(
  19. // absolute paths
  20. "$dir_path",
  21. "$dir_path/",
  22. "$dir_path/..",
  23. "$dir_path//../",
  24. "$dir_path/../.././tempnam_variation2",
  25. "$dir_path/..///tempnam_variation2_sub//..//../tempnam_variation2",
  26. "$dir_path/BADDIR",
  27. // relative paths
  28. ".",
  29. "tempname_variation2",
  30. "tempname_variation2/",
  31. "tempnam_variation2/tempnam_variation2_sub",
  32. "tempnam_variation2//tempnam_variation2_sub",
  33. "./tempnam_variation2/../tempnam_variation2/tempnam_variation2_sub",
  34. "BADDIR",
  35. );
  36. for($i = 0; $i<count($dir_paths); $i++) {
  37. $j = $i+1;
  38. echo "\n-- Iteration $j --\n";
  39. $file_name = tempnam($dir_paths[$i], "tempnam_variation2.tmp");
  40. if( file_exists($file_name) ){
  41. echo "File name is => ";
  42. print(realpath($file_name));
  43. echo "\n";
  44. echo "File permissions are => ";
  45. printf("%o", fileperms($file_name) );
  46. echo "\n";
  47. echo "File created in => ";
  48. $file_dir = dirname($file_name);
  49. $dir_req = $dir_paths[$i];
  50. if (realpath($file_dir) == realpath(sys_get_temp_dir())) {
  51. echo "temp dir\n";
  52. }
  53. else if ($file_dir == realpath($dir_req)) {
  54. echo "directory specified\n";
  55. }
  56. else {
  57. echo "unknown location\n";
  58. }
  59. }
  60. else {
  61. echo "-- File is not created --";
  62. }
  63. unlink($file_name);
  64. }
  65. chdir($old_dir_path);
  66. rmdir($dir_path);
  67. rmdir($dir_name);
  68. echo "\n*** Done ***\n";
  69. ?>
  70. --EXPECTF--
  71. *** Testing tempnam() with absolute and relative paths ***
  72. -- Iteration 1 --
  73. File name is => %s/tempnam_variation2/tempnam_variation2_sub/tempnam_variation2.tmp%s
  74. File permissions are => 100600
  75. File created in => directory specified
  76. -- Iteration 2 --
  77. File name is => %s/tempnam_variation2/tempnam_variation2_sub/tempnam_variation2.tmp%s
  78. File permissions are => 100600
  79. File created in => directory specified
  80. -- Iteration 3 --
  81. File name is => %s/tempnam_variation2/tempnam_variation2.tmp%s
  82. File permissions are => 100600
  83. File created in => directory specified
  84. -- Iteration 4 --
  85. File name is => %s/tempnam_variation2/tempnam_variation2.tmp%s
  86. File permissions are => 100600
  87. File created in => directory specified
  88. -- Iteration 5 --
  89. File name is => %s/tempnam_variation2/tempnam_variation2.tmp%s
  90. File permissions are => 100600
  91. File created in => directory specified
  92. -- Iteration 6 --
  93. File name is => %s/tempnam_variation2/tempnam_variation2.tmp%s
  94. File permissions are => 100600
  95. File created in => directory specified
  96. -- Iteration 7 --
  97. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation2.php on line %d
  98. File name is => %s/tempnam_variation2.tmp%s
  99. File permissions are => 100600
  100. File created in => temp dir
  101. -- Iteration 8 --
  102. File name is => %s/tempnam_variation2.tmp%s
  103. File permissions are => 100600
  104. File created in => directory specified
  105. -- Iteration 9 --
  106. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation2.php on line %d
  107. File name is => %s/tempnam_variation2.tmp%s
  108. File permissions are => 100600
  109. File created in => temp dir
  110. -- Iteration 10 --
  111. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation2.php on line %d
  112. File name is => %s/tempnam_variation2.tmp%s
  113. File permissions are => 100600
  114. File created in => temp dir
  115. -- Iteration 11 --
  116. File name is => %s/tempnam_variation2/tempnam_variation2_sub/tempnam_variation2.tmp%s
  117. File permissions are => 100600
  118. File created in => directory specified
  119. -- Iteration 12 --
  120. File name is => %s/tempnam_variation2/tempnam_variation2_sub/tempnam_variation2.tmp%s
  121. File permissions are => 100600
  122. File created in => directory specified
  123. -- Iteration 13 --
  124. File name is => %s/tempnam_variation2/tempnam_variation2_sub/tempnam_variation2.tmp%s
  125. File permissions are => 100600
  126. File created in => directory specified
  127. -- Iteration 14 --
  128. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation2.php on line %d
  129. File name is => %s/tempnam_variation2.tmp%s
  130. File permissions are => 100600
  131. File created in => temp dir
  132. *** Done ***