017.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. --TEST--
  2. CLI -a and libedit
  3. --EXTENSIONS--
  4. readline
  5. --SKIPIF--
  6. <?php
  7. include "skipif.inc";
  8. if (readline_info('done') !== NULL) {
  9. die ("skip need readline support using libedit");
  10. }
  11. if(substr(PHP_OS, 0, 3) == 'WIN' ) {
  12. die('skip not for Windows');
  13. }
  14. ?>
  15. --FILE--
  16. <?php
  17. $php = getenv('TEST_PHP_EXECUTABLE');
  18. $codes = array();
  19. $codes[1] = <<<EOT
  20. echo 'Hello world';
  21. exit
  22. EOT;
  23. $codes[] = <<<EOT
  24. echo 'multine
  25. single
  26. quote';
  27. exit
  28. EOT;
  29. $codes[] = <<<EOT
  30. echo <<<HEREDOC
  31. Here
  32. comes
  33. the
  34. doc
  35. HEREDOC;
  36. EOT;
  37. $codes[] = <<<EOT
  38. if (0) {
  39. echo "I'm not there";
  40. }
  41. echo "Done";
  42. EOT;
  43. $codes[] = <<<EOT
  44. function a_function_with_some_name() {
  45. echo "I was called!";
  46. }
  47. a_function_w );
  48. EOT;
  49. foreach ($codes as $key => $code) {
  50. echo "\n--------------\nSnippet no. $key:\n--------------\n";
  51. $code = escapeshellarg($code);
  52. echo `echo $code | "$php" -a`, "\n";
  53. }
  54. echo "\nDone\n";
  55. ?>
  56. --EXPECT--
  57. --------------
  58. Snippet no. 1:
  59. --------------
  60. Interactive shell
  61. Hello world
  62. --------------
  63. Snippet no. 2:
  64. --------------
  65. Interactive shell
  66. multine
  67. single
  68. quote
  69. --------------
  70. Snippet no. 3:
  71. --------------
  72. Interactive shell
  73. Here
  74. comes
  75. the
  76. doc
  77. --------------
  78. Snippet no. 4:
  79. --------------
  80. Interactive shell
  81. Done
  82. --------------
  83. Snippet no. 5:
  84. --------------
  85. Interactive shell
  86. Parse error: Unmatched ')' in php shell code on line 1
  87. Done