bug77812-readline.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --TEST--
  2. Bug #77812 (Interactive mode does not support PHP 7.3-style heredoc)
  3. --EXTENSIONS--
  4. readline
  5. --SKIPIF--
  6. <?php
  7. if (READLINE_LIB !== "readline") die('skip readline only');
  8. if (!function_exists('proc_open')) die('skip proc_open() not available');
  9. ?>
  10. --FILE--
  11. <?php
  12. $php = getenv('TEST_PHP_EXECUTABLE');
  13. $ini = getenv('TEST_PHP_EXTRA_ARGS');
  14. $descriptorspec = [['pipe', 'r'], STDOUT, STDERR];
  15. $proc = proc_open("$php $ini -a", $descriptorspec, $pipes);
  16. var_dump($proc);
  17. fwrite($pipes[0], "echo <<<FOO\n bar\n FOO;\n");
  18. fwrite($pipes[0], "print(<<<FOO\nxx\nFOO);\n");
  19. fwrite($pipes[0], "echo <<<FOO\n xxx\n FOO;\nFOO\n;\n");
  20. fwrite($pipes[0], "echo <<<FOO\nFOOL\nFOO\n,1;\n");
  21. fwrite($pipes[0], "echo <<<FOO\nFOO4\nFOO\n,2;\n");
  22. fclose($pipes[0]);
  23. proc_close($proc);
  24. ?>
  25. --EXPECTF--
  26. resource(%d) of type (process)
  27. Interactive shell
  28. php > echo <<<FOO
  29. <<< > bar
  30. <<< > FOO;
  31. bar
  32. php > print(<<<FOO
  33. <<< > xx
  34. <<< > FOO);
  35. xx
  36. php > echo <<<FOO
  37. <<< > xxx
  38. <<< > FOO;
  39. xxx
  40. php > FOO
  41. php > ;
  42. Warning: Uncaught Error: Undefined constant "FOO" in php shell code:1
  43. Stack trace:
  44. #0 {main}
  45. thrown in php shell code on line 1
  46. php > echo <<<FOO
  47. <<< > FOOL
  48. <<< > FOO
  49. php > ,1;
  50. FOOL1
  51. php > echo <<<FOO
  52. <<< > FOO4
  53. <<< > FOO
  54. php > ,2;
  55. FOO42
  56. php >