set_time_limit_003.phpt 857 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. Test V8::setTimeLimit() : Time limit can be imposed later on
  3. --SKIPIF--
  4. <?php
  5. require_once(dirname(__FILE__) . '/skipif.inc');
  6. if (getenv("SKIP_SLOW_TESTS")) {
  7. die("skip slow test");
  8. }
  9. ?>
  10. --FILE--
  11. <?php
  12. $JS = <<< EOT
  13. var jsfunc = function() {
  14. PHP.imposeTimeLimit();
  15. var text = "abcdefghijklmnopqrstuvwyxz0123456789";
  16. for (var i = 0; i < 10000000; ++i) {
  17. var encoded = encodeURI(text);
  18. }
  19. };
  20. jsfunc;
  21. EOT;
  22. $v8 = new V8Js();
  23. $v8->imposeTimeLimit = function() use ($v8) {
  24. $v8->setTimeLimit(100);
  25. };
  26. $func = $v8->executeString($JS);
  27. var_dump($func);
  28. try {
  29. $func();
  30. } catch (V8JsTimeLimitException $e) {
  31. print get_class($e); print PHP_EOL;
  32. print $e->getMessage(); print PHP_EOL;
  33. }
  34. ?>
  35. ===EOF===
  36. --EXPECTF--
  37. object(V8Function)#%d (0) {
  38. }
  39. V8JsTimeLimitException
  40. Script time limit of 100 milliseconds exceeded
  41. ===EOF===