com php-src: The test scripts bug64720.phpt and bug68652.phpt were relying on the buggy behavior, when PHP returns "Undefined static property" error due to class entry corruption. With my fix for bug 74053, both tests return no errors now, I corrected the EXPECTF accordingly: Zend/tests/bug64720.phpt Zend/tests/bug68652.phpt Zend/tests/bug74053.phpt

[email protected] (Dmitry Stogov)
Newsgroups php.cvs
Message-ID <[email protected]>
Commit:    d94b067504dd949a52fb777fe0b505ab522a8682
Author:    Jim Zubov <[email protected]>         Tue, 7 Feb 2017 09:19:16 -0500
Parents:   9a8a1c9da129a72c9bf8f3392f954a9e5ca317ff
Branches:  master

Link:       http://git.php.net/?p=php-src.git;a=commitdiff;h=d94b067504dd949a52fb777fe0b505ab522a8682

Log:
The test scripts bug64720.phpt and bug68652.phpt were relying on the buggy behavior,
when PHP returns "Undefined static property" error due to class entry corruption.
With my fix for bug 74053, both tests return no errors now, I corrected the EXPECTF accordingly

[Anybody please advice if I'm wrong?]

Also created bug74053.phpt, for the code I mentioned in the bug description

Bugs:
https://bugs.php.net/64720
https://bugs.php.net/68652
https://bugs.php.net/74053

Changed paths:
  M  Zend/tests/bug64720.phpt
  M  Zend/tests/bug68652.phpt
  A  Zend/tests/bug74053.phpt


Diff:
diff --git a/Zend/tests/bug64720.phpt b/Zend/tests/bug64720.phpt
index 45dee3e..35b01e6 100644
--- a/Zend/tests/bug64720.phpt
+++ b/Zend/tests/bug64720.phpt
@@ -45,8 +45,3 @@ $bar = new Bar();
 $bar->test();
 ?>
 --EXPECTF--
-Fatal error: Uncaught Error: Access to undeclared static property: Stat::$requests in %sbug64720.php:12
-Stack trace:
-#0 [internal function]: Stat->__destruct()
-#1 {main}
-  thrown in %sbug64720.php on line 12
diff --git a/Zend/tests/bug68652.phpt b/Zend/tests/bug68652.phpt
index 8e54af2..f0c9d5e 100644
--- a/Zend/tests/bug68652.phpt
+++ b/Zend/tests/bug68652.phpt
@@ -37,10 +37,3 @@ class Bar {
 $foo = new Foo();
 ?>
 --EXPECTF--
-Fatal error: Uncaught Error: Access to undeclared static property: Bar::$instance in %sbug68652.php:%d
-Stack trace:
-#0 %s(%d): Bar::getInstance()
-#1 [internal function]: Foo->__destruct()
-#2 {main}
-  thrown in %sbug68652.php on line %d
-
diff --git a/Zend/tests/bug74053.phpt b/Zend/tests/bug74053.phpt
new file mode 100644
index 0000000..e8fc02d
--- /dev/null
+++ b/Zend/tests/bug74053.phpt
@@ -0,0 +1,43 @@
+--TEST--
+Bug #74053 (Corrupted class entries on shutdown when a destructor spawns another object)
+--FILE--
+<?php
+class b {
+    function __destruct() {
+	echo "b::destruct\n";
+    }
+}
+class a {
+    static $b;
+    static $new;
+    static $max = 10;
+    function __destruct() {
+	if (self::$max-- <= 0) return;
+	echo "a::destruct\n";
+	self::$b = new b;
+	self::$new[] = new a;
+    }
+}
+new a;
+?>
+--EXPECTF--
+a::destruct
+b::destruct
+a::destruct
+b::destruct
+a::destruct
+b::destruct
+a::destruct
+b::destruct
+a::destruct
+b::destruct
+a::destruct
+b::destruct
+a::destruct
+b::destruct
+a::destruct
+b::destruct
+a::destruct
+b::destruct
+a::destruct
+b::destruct
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.