diff options
author | Timm Friebe <thekid@thekid.de> | 2014-08-16 22:03:03 +0200 |
---|---|---|
committer | Timm Friebe <thekid@thekid.de> | 2014-08-16 22:03:03 +0200 |
commit | 971d369d8849f9200f568b39b607417d1fc384f7 (patch) | |
tree | 93a641363b6413033ff9f764e3724a623521e8cd | |
parent | a1a4ba95117cca77b6a669d01b1cf97ea4fcb507 (diff) | |
download | php-git-971d369d8849f9200f568b39b607417d1fc384f7.tar.gz |
Add tests for calls to nested, *non*-compile-time-resolveable functions
See https://github.com/thekid/php-src/commit/a1a4ba95117cca77b6a669d01b1cf97ea4fcb507#commitcomment-7414362
-rwxr-xr-x | Zend/tests/methods-on-non-objects-nested-calls-nonct.phpt | 43 | ||||
-rwxr-xr-x | Zend/tests/methods-on-non-objects-nested.inc | 4 |
2 files changed, 47 insertions, 0 deletions
diff --git a/Zend/tests/methods-on-non-objects-nested-calls-nonct.phpt b/Zend/tests/methods-on-non-objects-nested-calls-nonct.phpt new file mode 100755 index 0000000000..a4529eecdc --- /dev/null +++ b/Zend/tests/methods-on-non-objects-nested-calls-nonct.phpt @@ -0,0 +1,43 @@ +--TEST-- +Catch method calls on non-objects with nested non-compile-time-resolveable calls +--FILE-- +<?php +require('methods-on-non-objects-nested.inc'); + +set_error_handler(function($code, $message) { + static $i= 0; + echo 'Called #'.(++$i)."\n"; +}); + +$x= null; + +var_dump($x->method(nested())); + +$closure= function() { return nested(); }; +var_dump($x->method($closure())); + +$lambda= create_function('', 'return nested();'); +var_dump($x->method($lambda())); + +$func= 'nested'; +var_dump($x->method($func())); + +var_dump($x->method(call_user_func('nested'))); +var_dump($x->method(call_user_func_array('nested', []))); + +echo "Alive\n"; +?> +--EXPECTF-- +Called #1 +NULL +Called #2 +NULL +Called #3 +NULL +Called #4 +NULL +Called #5 +NULL +Called #6 +NULL +Alive diff --git a/Zend/tests/methods-on-non-objects-nested.inc b/Zend/tests/methods-on-non-objects-nested.inc new file mode 100755 index 0000000000..8511414b82 --- /dev/null +++ b/Zend/tests/methods-on-non-objects-nested.inc @@ -0,0 +1,4 @@ +<?php +function nested() { + throw new LogicException('Should not be called'); +}
\ No newline at end of file |