mirror of
https://github.com/phpv8/v8js.git
synced 2025-03-22 04:37:01 +00:00
Added simple tests for time limit and memory limit.
This commit is contained in:
parent
ef8620f0c2
commit
916728fa8a
72
tests/memory_limit.phpt
Normal file
72
tests/memory_limit.phpt
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
--TEST--
|
||||||
|
Test V8::executeString() : Time limit
|
||||||
|
--SKIPIF--
|
||||||
|
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
$JS = <<< EOT
|
||||||
|
var text = "abcdefghijklmnopqrstuvwyxz0123456789";
|
||||||
|
var memory = "";
|
||||||
|
for (var i = 0; i < 1000000; ++i) {
|
||||||
|
memory += text;
|
||||||
|
}
|
||||||
|
EOT;
|
||||||
|
|
||||||
|
$v8 = new V8Js();
|
||||||
|
|
||||||
|
try {
|
||||||
|
var_dump($v8->executeString($JS, 'basic.js', V8Js::FLAG_NONE, 0, 10000000));
|
||||||
|
} catch (V8JsMemoryLimitException $e) {
|
||||||
|
var_dump($e);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
===EOF===
|
||||||
|
--EXPECT--
|
||||||
|
object(V8JsMemoryLimitException)#2 (7) {
|
||||||
|
["message":protected]=>
|
||||||
|
string(46) "Script memory limit of 10000000 bytes exceeded"
|
||||||
|
["string":"Exception":private]=>
|
||||||
|
string(0) ""
|
||||||
|
["code":protected]=>
|
||||||
|
int(0)
|
||||||
|
["file":protected]=>
|
||||||
|
string(36) "/var/www/v8js/tests/memory_limit.php"
|
||||||
|
["line":protected]=>
|
||||||
|
int(13)
|
||||||
|
["trace":"Exception":private]=>
|
||||||
|
array(1) {
|
||||||
|
[0]=>
|
||||||
|
array(6) {
|
||||||
|
["file"]=>
|
||||||
|
string(36) "/var/www/v8js/tests/memory_limit.php"
|
||||||
|
["line"]=>
|
||||||
|
int(13)
|
||||||
|
["function"]=>
|
||||||
|
string(13) "executeString"
|
||||||
|
["class"]=>
|
||||||
|
string(4) "V8Js"
|
||||||
|
["type"]=>
|
||||||
|
string(2) "->"
|
||||||
|
["args"]=>
|
||||||
|
array(5) {
|
||||||
|
[0]=>
|
||||||
|
string(125) "var text = "abcdefghijklmnopqrstuvwyxz0123456789";
|
||||||
|
var memory = "";
|
||||||
|
for (var i = 0; i < 1000000; ++i) {
|
||||||
|
memory += text;
|
||||||
|
}"
|
||||||
|
[1]=>
|
||||||
|
string(8) "basic.js"
|
||||||
|
[2]=>
|
||||||
|
int(1)
|
||||||
|
[3]=>
|
||||||
|
int(0)
|
||||||
|
[4]=>
|
||||||
|
int(10000000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
["previous":"Exception":private]=>
|
||||||
|
NULL
|
||||||
|
}
|
||||||
|
===EOF===
|
69
tests/time_limit.phpt
Normal file
69
tests/time_limit.phpt
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
--TEST--
|
||||||
|
Test V8::executeString() : Time limit
|
||||||
|
--SKIPIF--
|
||||||
|
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$JS = <<< EOT
|
||||||
|
var text = "abcdefghijklmnopqrstuvwyxz0123456789";
|
||||||
|
for (var i = 0; i < 10000000; ++i) {
|
||||||
|
var encoded = encodeURI(text);
|
||||||
|
}
|
||||||
|
EOT;
|
||||||
|
|
||||||
|
$v8 = new V8Js();
|
||||||
|
|
||||||
|
try {
|
||||||
|
var_dump($v8->executeString($JS, 'basic.js', V8Js::FLAG_NONE, 1000));
|
||||||
|
} catch (V8JsTimeLimitException $e) {
|
||||||
|
var_dump($e);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
===EOF===
|
||||||
|
--EXPECT--
|
||||||
|
object(V8JsTimeLimitException)#2 (7) {
|
||||||
|
["message":protected]=>
|
||||||
|
string(47) "Script time limit of 1000 milliseconds exceeded"
|
||||||
|
["string":"Exception":private]=>
|
||||||
|
string(0) ""
|
||||||
|
["code":protected]=>
|
||||||
|
int(0)
|
||||||
|
["file":protected]=>
|
||||||
|
string(34) "/var/www/v8js/tests/time_limit.php"
|
||||||
|
["line":protected]=>
|
||||||
|
int(13)
|
||||||
|
["trace":"Exception":private]=>
|
||||||
|
array(1) {
|
||||||
|
[0]=>
|
||||||
|
array(6) {
|
||||||
|
["file"]=>
|
||||||
|
string(34) "/var/www/v8js/tests/time_limit.php"
|
||||||
|
["line"]=>
|
||||||
|
int(13)
|
||||||
|
["function"]=>
|
||||||
|
string(13) "executeString"
|
||||||
|
["class"]=>
|
||||||
|
string(4) "V8Js"
|
||||||
|
["type"]=>
|
||||||
|
string(2) "->"
|
||||||
|
["args"]=>
|
||||||
|
array(4) {
|
||||||
|
[0]=>
|
||||||
|
string(124) "var text = "abcdefghijklmnopqrstuvwyxz0123456789";
|
||||||
|
for (var i = 0; i < 10000000; ++i) {
|
||||||
|
var encoded = encodeURI(text);
|
||||||
|
}"
|
||||||
|
[1]=>
|
||||||
|
string(8) "basic.js"
|
||||||
|
[2]=>
|
||||||
|
int(1)
|
||||||
|
[3]=>
|
||||||
|
int(1000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
["previous":"Exception":private]=>
|
||||||
|
NULL
|
||||||
|
}
|
||||||
|
===EOF===
|
Loading…
x
Reference in New Issue
Block a user