time_limit.phpt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. --TEST--
  2. Test V8::executeString() : Time limit
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $JS = <<< EOT
  8. var text = "abcdefghijklmnopqrstuvwyxz0123456789";
  9. for (var i = 0; i < 10000000; ++i) {
  10. var encoded = encodeURI(text);
  11. }
  12. EOT;
  13. $v8 = new V8Js();
  14. try {
  15. var_dump($v8->executeString($JS, 'basic.js', V8Js::FLAG_NONE, 1000));
  16. } catch (V8JsTimeLimitException $e) {
  17. var_dump($e);
  18. }
  19. ?>
  20. ===EOF===
  21. --EXPECT--
  22. object(V8JsTimeLimitException)#2 (7) {
  23. ["message":protected]=>
  24. string(47) "Script time limit of 1000 milliseconds exceeded"
  25. ["string":"Exception":private]=>
  26. string(0) ""
  27. ["code":protected]=>
  28. int(0)
  29. ["file":protected]=>
  30. string(34) "/var/www/v8js/tests/time_limit.php"
  31. ["line":protected]=>
  32. int(13)
  33. ["trace":"Exception":private]=>
  34. array(1) {
  35. [0]=>
  36. array(6) {
  37. ["file"]=>
  38. string(34) "/var/www/v8js/tests/time_limit.php"
  39. ["line"]=>
  40. int(13)
  41. ["function"]=>
  42. string(13) "executeString"
  43. ["class"]=>
  44. string(4) "V8Js"
  45. ["type"]=>
  46. string(2) "->"
  47. ["args"]=>
  48. array(4) {
  49. [0]=>
  50. string(124) "var text = "abcdefghijklmnopqrstuvwyxz0123456789";
  51. for (var i = 0; i < 10000000; ++i) {
  52. var encoded = encodeURI(text);
  53. }"
  54. [1]=>
  55. string(8) "basic.js"
  56. [2]=>
  57. int(1)
  58. [3]=>
  59. int(1000)
  60. }
  61. }
  62. }
  63. ["previous":"Exception":private]=>
  64. NULL
  65. }
  66. ===EOF===