extensions_error.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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] < 3 || ($version[0] == 3 && $version[1] < 30)) {
  13. // old v8 version, has shorter error message and hence doesn't
  14. // fit our EXCEPTF below
  15. echo "skip";
  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. -- creating V8Js object --
  32. Exception thrown during bootstrapping
  33. Extension or internal compilation error%sin handlebars at line 1.
  34. Error installing extension 'handlebars'.
  35. Warning: V8Js::__construct(): Failed to create V8 context. Check that registered extensions do not have errors. in %s on line %d
  36. NULL
  37. ===EOF===