mirror of
https://github.com/phpv8/v8js.git
synced 2024-11-09 23:08:41 +00:00
Remove set_memory_limit_002 test
The test is unfortunately unstable as it somehow depends on CPU speed. v8 seems to precompute the result even so it hasn't reached the for loop consuming the memory. This can be proved easily by adding a sleep(1) call at the start of the prolongTimeLimit function. Then the memory limit is always tripped even so v8 didn't have to do much until there
This commit is contained in:
parent
e85b095282
commit
b6fb9acc65
@ -1,46 +0,0 @@
|
|||||||
--TEST--
|
|
||||||
Test V8::setMemoryLimit() : Memory limit can be changed
|
|
||||||
--SKIPIF--
|
|
||||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
|
||||||
--FILE--
|
|
||||||
<?php
|
|
||||||
|
|
||||||
$JS = <<< EOT
|
|
||||||
var jsfunc = function() {
|
|
||||||
PHP.incrMemoryLimit();
|
|
||||||
var text = "abcdefghijklmnopqrstuvwyxz0123456789";
|
|
||||||
var memory = "";
|
|
||||||
for (var i = 0; i < 100; ++i) {
|
|
||||||
for (var j = 0; j < 10000; ++j) {
|
|
||||||
memory += text;
|
|
||||||
}
|
|
||||||
sleep(0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
jsfunc;
|
|
||||||
EOT;
|
|
||||||
|
|
||||||
$v8 = new V8Js();
|
|
||||||
$v8->setMemoryLimit(1000000);
|
|
||||||
|
|
||||||
$v8->incrMemoryLimit = function() use ($v8) {
|
|
||||||
$v8->setMemoryLimit(10000000);
|
|
||||||
};
|
|
||||||
|
|
||||||
$func = $v8->executeString($JS);
|
|
||||||
var_dump($func);
|
|
||||||
|
|
||||||
try {
|
|
||||||
$func();
|
|
||||||
} catch (V8JsMemoryLimitException $e) {
|
|
||||||
print get_class($e); print PHP_EOL;
|
|
||||||
print $e->getMessage(); print PHP_EOL;
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
===EOF===
|
|
||||||
--EXPECTF--
|
|
||||||
object(V8Function)#%d (0) {
|
|
||||||
}
|
|
||||||
V8JsMemoryLimitException
|
|
||||||
Script memory limit of 10000000 bytes exceeded
|
|
||||||
===EOF===
|
|
Loading…
Reference in New Issue
Block a user