tempnam_variation7.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. --TEST--
  2. Test tempnam() function: usage variations - invalid/non-existing dir
  3. --SKIPIF--
  4. <?php
  5. if(substr(PHP_OS, 0, 3) == "WIN")
  6. die("skip Do not run on Windows");
  7. ?>
  8. --CONFLICTS--
  9. obscure_filename
  10. --FILE--
  11. <?php
  12. /* Passing invalid/non-existing args for $dir,
  13. hence the unique files will be created in temporary dir */
  14. echo "*** Testing tempnam() with invalid/non-existing directory names ***\n";
  15. /* An array of names, which will be passed as a dir name */
  16. $names_arr = array(
  17. /* Invalid args */
  18. -1,
  19. TRUE,
  20. FALSE,
  21. "",
  22. " ",
  23. "\0",
  24. array(),
  25. /* Non-existing dirs */
  26. "/no/such/file/dir",
  27. "php"
  28. );
  29. for( $i=0; $i<count($names_arr); $i++ ) {
  30. echo "-- Iteration $i --\n";
  31. try {
  32. $file_name = tempnam($names_arr[$i], "tempnam_variation3.tmp");
  33. } catch (Error $e) {
  34. echo $e->getMessage(), "\n";
  35. continue;
  36. }
  37. if( file_exists($file_name) ){
  38. echo "File name is => ";
  39. print($file_name);
  40. echo "\n";
  41. echo "File permissions are => ";
  42. printf("%o", fileperms($file_name) );
  43. echo "\n";
  44. echo "File created in => ";
  45. $file_dir = dirname($file_name);
  46. if (realpath($file_dir) == realpath(sys_get_temp_dir())) {
  47. echo "temp dir\n";
  48. }
  49. else {
  50. echo "unknown location\n";
  51. }
  52. }
  53. else {
  54. echo "-- File is not created --\n";
  55. }
  56. unlink($file_name);
  57. }
  58. ?>
  59. --EXPECTF--
  60. *** Testing tempnam() with invalid/non-existing directory names ***
  61. -- Iteration 0 --
  62. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation7.php on line %d
  63. File name is => %s%etempnam_variation3.tmp%s
  64. File permissions are => 100600
  65. File created in => temp dir
  66. -- Iteration 1 --
  67. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation7.php on line %d
  68. File name is => %s%etempnam_variation3.tmp%s
  69. File permissions are => 100600
  70. File created in => temp dir
  71. -- Iteration 2 --
  72. File name is => %s%etempnam_variation3.tmp%s
  73. File permissions are => 100600
  74. File created in => temp dir
  75. -- Iteration 3 --
  76. File name is => %s%etempnam_variation3.tmp%s
  77. File permissions are => 100600
  78. File created in => temp dir
  79. -- Iteration 4 --
  80. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation7.php on line %d
  81. File name is => %s%etempnam_variation3.tmp%s
  82. File permissions are => 100600
  83. File created in => temp dir
  84. -- Iteration 5 --
  85. tempnam(): Argument #1 ($directory) must not contain any null bytes
  86. -- Iteration 6 --
  87. tempnam(): Argument #1 ($directory) must be of type string, array given
  88. -- Iteration 7 --
  89. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation7.php on line %d
  90. File name is => %s/tempnam_variation3.tmp%s
  91. File permissions are => 100600
  92. File created in => temp dir
  93. -- Iteration 8 --
  94. Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation7.php on line %d
  95. File name is => %s/tempnam_variation3.tmp%s
  96. File permissions are => 100600
  97. File created in => temp dir