extensions_error.phpt 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. --TEST--
  2. Test V8::registerExtension() : Register extension with errors
  3. --SKIPIF--
  4. <?php
  5. require_once(dirname(__FILE__) . '/skipif.inc');
  6. ob_start(NULL, 0, PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_REMOVABLE);
  7. phpinfo(INFO_MODULES);
  8. $minfo = ob_get_contents();
  9. ob_end_clean();
  10. if(preg_match("/V8 Engine Linked Version => (.*)/", $minfo, $matches)) {
  11. $version = explode('.', $matches[1]);
  12. if($version[0] < 5 || ($version[0] == 5 && $version[1] < 7)) {
  13. // old v8 version, has shorter error message and hence doesn't
  14. // fit our EXCEPTF below
  15. echo "SKIP too old V8 version";
  16. }
  17. }
  18. ?>
  19. --FILE--
  20. <?php
  21. $handlebarsJs = "var root = typeof global !== 'undefined' ? global : window, \$Handlebars = 'test';";
  22. echo "-- registerExtension --\n";
  23. V8Js::registerExtension('handlebars', $handlebarsJs, [], true);
  24. echo "-- creating V8Js object --\n";
  25. $v8 = new V8Js();
  26. var_dump($v8);
  27. ?>
  28. ===EOF===
  29. --EXPECTF--
  30. -- registerExtension --
  31. Deprecated: Function V8Js::registerExtension() is deprecated in %s%eextensions_error.php on line 5
  32. -- creating V8Js object --
  33. Error installing extension 'handlebars'.
  34. Fatal error: Uncaught V8JsException: Failed to create V8 context. Check that registered extensions do not have errors. in %s%eextensions_error.php:7
  35. Stack trace:
  36. #0 %s%eextensions_error.php(7): V8Js->__construct()
  37. #1 {main}
  38. thrown in %s%eextensions_error.php on line 7