require_parse_exception.phpt 975 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. Parse exceptions when using require
  3. --INI--
  4. allow_url_include=1
  5. --FILE--
  6. <?php
  7. function test_parse_error($code) {
  8. try {
  9. require 'data://text/plain;base64,' . base64_encode($code);
  10. } catch (ParseError $e) {
  11. echo $e->getMessage(), " on line ", $e->getLine(), "\n";
  12. }
  13. }
  14. test_parse_error(<<<'EOC'
  15. <?php
  16. { { { { { }
  17. EOC
  18. );
  19. test_parse_error(<<<'EOC'
  20. <?php
  21. /** doc comment */
  22. function f() {
  23. EOC
  24. );
  25. test_parse_error(<<<'EOC'
  26. <?php
  27. empty
  28. EOC
  29. );
  30. test_parse_error('<?php
  31. var_dump(078);');
  32. test_parse_error('<?php
  33. var_dump("\u{xyz}");');
  34. test_parse_error('<?php
  35. var_dump("\u{ffffff}");');
  36. ?>
  37. --EXPECT--
  38. Deprecated: Directive 'allow_url_include' is deprecated in Unknown on line 0
  39. Unclosed '{' on line 2
  40. Unclosed '{' on line 3
  41. syntax error, unexpected end of file, expecting "(" on line 2
  42. Invalid numeric literal on line 2
  43. Invalid UTF-8 codepoint escape sequence on line 2
  44. Invalid UTF-8 codepoint escape sequence: Codepoint too large on line 2