From 10f77a5d713c1e206cd72b5ec85a755da5fd52d4 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Fri, 16 Dec 2005 22:19:02 +0000 Subject: [PATCH] - Add/fix tests --- Zend/tests/bug29210.phpt | 10 +- Zend/tests/bug32290.phpt | 101 ++++++++++++- ext/spl/tests/spl_autoload_007.phpt | 138 ++++++++++++++++++ .../tests/general_functions/bug32647.phpt | 20 +-- tests/classes/bug27504.phpt | 3 +- 5 files changed, 256 insertions(+), 16 deletions(-) create mode 100755 ext/spl/tests/spl_autoload_007.phpt diff --git a/Zend/tests/bug29210.phpt b/Zend/tests/bug29210.phpt index 294685499c6..16e6e6db162 100644 --- a/Zend/tests/bug29210.phpt +++ b/Zend/tests/bug29210.phpt @@ -89,10 +89,14 @@ if (is_callable(array('test_class','test_func4'))) { $object = new foo(); $object->test(); ?> ---EXPECT-- +--EXPECTF-- test_func1 test_func2 + +Strict Standards: Non-static method test_class::test_func3() canot be called statically, assuming $this from compatible context test_class in %sbug29210.php on line %d test_func3 + +Strict Standards: Non-static method test_class::test_func4() canot be called statically, assuming $this from compatible context test_class in %sbug29210.php on line %d test_func4 test_func1 isn't callable from outside test_func2 isn't callable from outside @@ -100,5 +104,9 @@ test_func3 isn't callable from outside test_func4 isn't callable from outside test_func1 isn't callable from child test_func2 + +Strict Standards: Non-static method test_class::test_func3() canot be called statically, assuming $this from compatible context foo in %sbug29210.php on line %d test_func3 isn't callable from child + +Strict Standards: Non-static method test_class::test_func4() canot be called statically, assuming $this from compatible context foo in %sbug29210.php on line %d test_func4 diff --git a/Zend/tests/bug32290.phpt b/Zend/tests/bug32290.phpt index f754275ccff..6038da54ba1 100755 --- a/Zend/tests/bug32290.phpt +++ b/Zend/tests/bug32290.phpt @@ -7,7 +7,31 @@ class TestA { public function doSomething($i) { - echo __METHOD__ . "($this)\n"; + echo __METHOD__ . "($i)\n"; + return --$i; + } + + public function doSomethingThis($i) + { + echo __METHOD__ . "($i)\n"; + return --$i; + } + + public function doSomethingParent($i) + { + echo __METHOD__ . "($i)\n"; + return --$i; + } + + public function doSomethingParentThis($i) + { + echo __METHOD__ . "($i)\n"; + return --$i; + } + + public static function doSomethingStatic($i) + { + echo __METHOD__ . "($i)\n"; return --$i; } } @@ -16,20 +40,87 @@ class TestB extends TestA { public function doSomething($i) { - echo __METHOD__ . "($this)\n"; + echo __METHOD__ . "($i)\n"; $i++; if ($i >= 5) return 5; - return call_user_func_array(array("TestA","doSomething"), array($i)); + return call_user_func_array(array("TestA", "doSomething"), array($i)); + } + + public function doSomethingThis($i) + { + echo __METHOD__ . "($i)\n"; + $i++; + if ($i >= 5) return 5; + return call_user_func_array(array($this, "TestA::doSomethingThis"), array($i)); + } + + public function doSomethingParent($i) + { + echo __METHOD__ . "($i)\n"; + $i++; + if ($i >= 5) return 5; + return call_user_func_array(array("parent", "doSomethingParent"), array($i)); + } + + public function doSomethingParentThis($i) + { + echo __METHOD__ . "($i)\n"; + $i++; + if ($i >= 5) return 5; + return call_user_func_array(array($this, "parent::doSomethingParentThis"), array($i)); + } + + public static function doSomethingStatic($i) + { + echo __METHOD__ . "($i)\n"; + $i++; + if ($i >= 5) return 5; + return call_user_func_array(array("TestA", "doSomethingStatic"), array($i)); } } $x = new TestB(); +echo "===A===\n"; var_dump($x->doSomething(1)); +echo "\n===B===\n"; +var_dump($x->doSomethingThis(1)); +echo "\n===C===\n"; +var_dump($x->doSomethingParent(1)); +echo "\n===D===\n"; +var_dump($x->doSomethingParentThis(1)); +echo "\n===E===\n"; +var_dump($x->doSomethingStatic(1)); ?> ===DONE=== + --EXPECTF-- -TestB::doSomething(Object id #%d) -TestA::doSomething(Object id #%d) +===A=== +TestB::doSomething(1) + +Strict Standards: Non-static method TestA::doSomething() canot be called statically, assuming $this from compatible context TestB in %sbug32290.php on line %d +TestA::doSomething(2) +int(1) + +===B=== +TestB::doSomethingThis(1) +TestA::doSomethingThis(2) +int(1) + +===C=== +TestB::doSomethingParent(1) + +Strict Standards: Non-static method TestA::doSomethingParent() canot be called statically, assuming $this from compatible context TestB in %sbug32290.php on line %d +TestA::doSomethingParent(2) +int(1) + +===D=== +TestB::doSomethingParentThis(1) +TestA::doSomethingParentThis(2) +int(1) + +===E=== +TestB::doSomethingStatic(1) +TestA::doSomethingStatic(2) int(1) ===DONE=== diff --git a/ext/spl/tests/spl_autoload_007.phpt b/ext/spl/tests/spl_autoload_007.phpt new file mode 100755 index 00000000000..40b4b61cbd6 --- /dev/null +++ b/ext/spl/tests/spl_autoload_007.phpt @@ -0,0 +1,138 @@ +--TEST-- +SPL: spl_autoload() with inaccessible methods +--INI-- +include_path=. +--FILE-- + $func) +{ + if ($idx) echo "\n"; + try + { + var_dump($func); + spl_autoload_register($func); + echo "ok\n"; + } + catch (Exception $e) + { + echo $e->getMessage() . "\n"; + } +} + +?> +===DONE=== + +--EXPECTF-- +string(22) "MyAutoLoader::notExist" +Function 'MyAutoLoader::notExist' not found + +string(22) "MyAutoLoader::noAccess" +Function 'MyAutoLoader::noAccess' not callable + +string(22) "MyAutoLoader::autoLoad" +ok + +string(22) "MyAutoLoader::dynaLoad" +Function 'MyAutoLoader::dynaLoad' not callable + +array(2) { + [0]=> + string(12) "MyAutoLoader" + [1]=> + string(8) "notExist" +} +Passed array does not specify an existing static method + +array(2) { + [0]=> + string(12) "MyAutoLoader" + [1]=> + string(8) "noAccess" +} +Passed array does not specify a callable static method + +array(2) { + [0]=> + string(12) "MyAutoLoader" + [1]=> + string(8) "autoLoad" +} +ok + +array(2) { + [0]=> + string(12) "MyAutoLoader" + [1]=> + string(8) "dynaLoad" +} +Passed array specifies a non static method but no object + +array(2) { + [0]=> + object(MyAutoLoader)#%d (0) { + } + [1]=> + string(8) "notExist" +} +Passed array does not specify an existing method + +array(2) { + [0]=> + object(MyAutoLoader)#%d (0) { + } + [1]=> + string(8) "noAccess" +} +Passed array does not specify a callable method + +array(2) { + [0]=> + object(MyAutoLoader)#%d (0) { + } + [1]=> + string(8) "autoLoad" +} +ok + +array(2) { + [0]=> + object(MyAutoLoader)#%d (0) { + } + [1]=> + string(8) "dynaLoad" +} +ok +===DONE=== diff --git a/ext/standard/tests/general_functions/bug32647.phpt b/ext/standard/tests/general_functions/bug32647.phpt index ca98f429a73..2e82012077f 100644 --- a/ext/standard/tests/general_functions/bug32647.phpt +++ b/ext/standard/tests/general_functions/bug32647.phpt @@ -1,14 +1,14 @@ --TEST-- Bug #32647 (Using register_shutdown_function() with invalid callback can crash PHP) --INI-- -error_reporting=2047 +error_reporting=4095 display_errors=1 --FILE--