From a142b6cd86ee1a47c0ca8488bd76617dcd5dc5a4 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Mon, 14 Jul 2008 13:36:40 +0000 Subject: [PATCH] - New tests --- Zend/tests/closure_017.phpt | 12 ++++++++++++ Zend/tests/closure_018.phpt | 28 ++++++++++++++++++++++++++++ Zend/tests/closure_019.phpt | 26 ++++++++++++++++++++++++++ Zend/tests/closure_020.phpt | 36 ++++++++++++++++++++++++++++++++++++ Zend/tests/closure_021.phpt | 22 ++++++++++++++++++++++ 5 files changed, 124 insertions(+) create mode 100644 Zend/tests/closure_017.phpt create mode 100644 Zend/tests/closure_018.phpt create mode 100644 Zend/tests/closure_019.phpt create mode 100644 Zend/tests/closure_020.phpt create mode 100644 Zend/tests/closure_021.phpt diff --git a/Zend/tests/closure_017.phpt b/Zend/tests/closure_017.phpt new file mode 100644 index 0000000000..45a07f9441 --- /dev/null +++ b/Zend/tests/closure_017.phpt @@ -0,0 +1,12 @@ +--TEST-- +Closure 017: Trying to destroy an active lambda function +--FILE-- + +--EXPECTF-- +Fatal error: Cannot destroy active lambda function in %s on line %d diff --git a/Zend/tests/closure_018.phpt b/Zend/tests/closure_018.phpt new file mode 100644 index 0000000000..d98c78aeac --- /dev/null +++ b/Zend/tests/closure_018.phpt @@ -0,0 +1,28 @@ +--TEST-- +Closure 018: Assigning lambda to static var and returning by ref +--FILE-- +test($y)); +var_dump($x = $test->test($y)); +var_dump($y, $x); + +?> +--EXPECT-- +int(4) +int(16) +int(16) +int(16) diff --git a/Zend/tests/closure_019.phpt b/Zend/tests/closure_019.phpt new file mode 100644 index 0000000000..0c4c34e163 --- /dev/null +++ b/Zend/tests/closure_019.phpt @@ -0,0 +1,26 @@ +--TEST-- +Closure 019: Calling lambda using $GLOBALS and global $var +--FILE-- + +--EXPECTF-- +int(9) +int(81) + +Fatal error: Cannot pass parameter 1 by reference in %s on line %d diff --git a/Zend/tests/closure_020.phpt b/Zend/tests/closure_020.phpt new file mode 100644 index 0000000000..623bb33bc5 --- /dev/null +++ b/Zend/tests/closure_020.phpt @@ -0,0 +1,36 @@ +--TEST-- +Closure 020: Trying to access private property outside class +--FILE-- +a = function() use (&$a) { return $a; }; + var_dump($this->a->__invoke()); + var_dump(is_a($this->a, 'closure')); + var_dump(is_callable($this->a)); + + return $this->a; + } +} + +$foo = new foo; +$y = $foo->x(); +var_dump($y()->test); + +?> +--EXPECTF-- +object(foo)#%d (%d) { + ["test":"foo":private]=> + int(3) + ["a"]=> + object(Closure)#%d (0) { + } +} +bool(true) +bool(true) + +Fatal error: Cannot access private property foo::$test in %s on line %d diff --git a/Zend/tests/closure_021.phpt b/Zend/tests/closure_021.phpt new file mode 100644 index 0000000000..76be762f08 --- /dev/null +++ b/Zend/tests/closure_021.phpt @@ -0,0 +1,22 @@ +--TEST-- +Closure 021: Throwing exception inside lambda +--FILE-- +getMessage()); +} + +?> +--EXPECT-- +string(5) "test!" -- 2.40.0