summaryrefslogtreecommitdiff
path: root/Zend/tests/gc_009.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/gc_009.phpt')
-rw-r--r--Zend/tests/gc_009.phpt48
1 files changed, 48 insertions, 0 deletions
diff --git a/Zend/tests/gc_009.phpt b/Zend/tests/gc_009.phpt
new file mode 100644
index 0000000000..3b7ed066fc
--- /dev/null
+++ b/Zend/tests/gc_009.phpt
@@ -0,0 +1,48 @@
+--TEST--
+GC 009: Unreferensed array-object cycle
+--FILE--
+<?php
+$a = array();
+$a[0] = new stdClass();
+$a[0]->a = array();
+$a[0]->a[0] =& $a[0];
+var_dump($a[0]);
+var_dump(gc_collect_cycles());
+unset($a);
+var_dump(gc_collect_cycles());
+echo "ok\n"
+?>
+--EXPECT--
+object(stdClass)#1 (1) {
+ ["a"]=>
+ array(1) {
+ [0]=>
+ &object(stdClass)#1 (1) {
+ ["a"]=>
+ array(1) {
+ [0]=>
+ *RECURSION*
+ }
+ }
+ }
+}
+int(0)
+int(2)
+ok
+--UEXPECT--
+object(stdClass)#1 (1) {
+ [u"a"]=>
+ array(1) {
+ [0]=>
+ &object(stdClass)#1 (1) {
+ [u"a"]=>
+ array(1) {
+ [0]=>
+ *RECURSION*
+ }
+ }
+ }
+}
+int(0)
+int(2)
+ok