summaryrefslogtreecommitdiff
path: root/ext/reflection/tests/ReflectionGenerator_basic.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/reflection/tests/ReflectionGenerator_basic.phpt')
-rw-r--r--ext/reflection/tests/ReflectionGenerator_basic.phpt87
1 files changed, 87 insertions, 0 deletions
diff --git a/ext/reflection/tests/ReflectionGenerator_basic.phpt b/ext/reflection/tests/ReflectionGenerator_basic.phpt
new file mode 100644
index 0000000000..528d2d9ca2
--- /dev/null
+++ b/ext/reflection/tests/ReflectionGenerator_basic.phpt
@@ -0,0 +1,87 @@
+--TEST--
+ReflectionGenerator basic test
+--FILE--
+<?php
+
+function foo() {
+ yield;
+}
+
+$gens = [
+ (new class() {
+ function a() {
+ yield from foo();
+ }
+ })->a(),
+ (function() {
+ yield;
+ })(),
+ foo(),
+];
+
+foreach ($gens as $gen) {
+ var_dump($gen);
+
+ $gen->valid(); // start Generator
+ $ref = new ReflectionGenerator($gen);
+
+ var_dump($ref->getTrace());
+ var_dump($ref->getExecutingLine());
+ var_dump($ref->getExecutingFile());
+ var_dump($ref->getExecutingGenerator());
+ var_dump($ref->getFunction());
+ var_dump($ref->getThis());
+}
+
+?>
+--EXPECTF--
+object(Generator)#2 (0) {
+}
+array(1) {
+ [0]=>
+ array(2) {
+ ["function"]=>
+ string(3) "foo"
+ ["args"]=>
+ array(0) {
+ }
+ }
+}
+int(%d)
+string(%d) "%sReflectionGenerator_basic.%s"
+object(Generator)#6 (0) {
+}
+object(ReflectionMethod)#8 (2) {
+ ["name"]=>
+ string(1) "a"
+ ["class"]=>
+ string(%d) "class@anonymous%s"
+}
+object(class@anonymous)#1 (0) {
+}
+object(Generator)#4 (0) {
+}
+array(0) {
+}
+int(%d)
+string(%d) "%sReflectionGenerator_basic.%s"
+object(Generator)#4 (0) {
+}
+object(ReflectionFunction)#7 (1) {
+ ["name"]=>
+ string(9) "{closure}"
+}
+NULL
+object(Generator)#5 (0) {
+}
+array(0) {
+}
+int(%d)
+string(%d) "%sReflectionGenerator_basic.%s"
+object(Generator)#5 (0) {
+}
+object(ReflectionFunction)#8 (1) {
+ ["name"]=>
+ string(3) "foo"
+}
+NULL