]> granicus.if.org Git - php/commitdiff
Add test to make sure internal param default eval doesn't error
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 9 Apr 2020 09:22:00 +0000 (11:22 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 9 Apr 2020 09:22:55 +0000 (11:22 +0200)
ext/reflection/tests/internal_parameter_default_value/check_all.phpt [new file with mode: 0644]

diff --git a/ext/reflection/tests/internal_parameter_default_value/check_all.phpt b/ext/reflection/tests/internal_parameter_default_value/check_all.phpt
new file mode 100644 (file)
index 0000000..7bfe08b
--- /dev/null
@@ -0,0 +1,33 @@
+--TEST--
+Check that all internal parameter defaults evaluate without error
+--FILE--
+<?php
+
+function checkDefaults(ReflectionFunctionAbstract $rf) {
+    foreach ($rf->getParameters() as $param) {
+        if ($param->isDefaultValueAvailable()) {
+            try {
+                $param->getDefaultValue();
+            } catch (Error $e) {
+                echo "{$rf->getName()}: {$e->getMessage()}\n";
+            }
+        }
+    }
+}
+
+foreach (get_defined_functions()["internal"] as $func) {
+    $rf = new ReflectionFunction($func);
+    checkDefaults($rf);
+}
+
+foreach (get_declared_classes() as $class) {
+    $rc = new ReflectionClass($class);
+    foreach ($rc->getMethods() as $method) {
+        checkDefaults($method);
+    }
+}
+
+?>
+===DONE===
+--EXPECT--
+===DONE===