£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyʦ•ꎅȮFÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~芩ÊǍí`ÔÑ©ú뙵'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶êםӼ㞪éUWŸÈË%DÒÕ¬ï‘]/Åcx ‰ï2ß]ä6G[]S£Ôϯrs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ ¯¹ægƒÛowЍø^d™ý½ßB7áyMä9ÜÖUã !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --TEST-- pcall() catching various errors --FILE-- 'return 1', 'User error' => 'error("runtime error")', 'Argument check error' => 'string.byte()', 'Infinite recursion' => 'function foo() foo() end foo()', 'Infinite loop (timeout)' => 'while true do end', 'Out of memory' => 'string.rep("x", 1000000)' ); foreach ( $tests as $desc => $code ) { echo "$desc: "; $sandbox = new LuaSandbox; $sandbox->loadString( $lua )->call(); $sandbox->setCPULimit( 0.25 ); $sandbox->setMemoryLimit( 100000 ); try { print implode("\n", $sandbox->callFunction( 'pcall_test', $sandbox->loadString( $code ) ) ) . "\n"; } catch ( LuaSandboxError $e ) { echo "LuaSandboxError: " . $e->getMessage() . "\n"; } } --EXPECT-- Normal: success User error: Caught: [string ""]:1: runtime error Argument check error: Caught: [string ""]:1: bad argument #1 to 'byte' (string expected, got no value) Infinite recursion: LuaSandboxError: not enough memory Infinite loop (timeout): LuaSandboxError: The maximum execution time for this script was exceeded Out of memory: LuaSandboxError: not enough memory