summaryrefslogtreecommitdiff
path: root/Zend/tests/traits
diff options
context:
space:
mode:
authorJohn Boehr <jbboehr@gmail.com>2016-09-21 20:09:45 -0700
committerNikita Popov <nikic@php.net>2016-09-22 12:32:37 +0200
commit8e313becf4190a8cdc4ef52a1efdbce475f51ae0 (patch)
tree37346f7212994d48f7ede762ac791ca9d5c87697 /Zend/tests/traits
parent01759c43463c30b57c15e32c5f4b454fba81f039 (diff)
downloadphp-git-8e313becf4190a8cdc4ef52a1efdbce475f51ae0.tar.gz
Fix bug #69579
Diffstat (limited to 'Zend/tests/traits')
-rw-r--r--Zend/tests/traits/bug69579.phpt20
-rw-r--r--Zend/tests/traits/get_declared_traits_001.phpt6
-rw-r--r--Zend/tests/traits/get_declared_traits_002.phpt6
-rw-r--r--Zend/tests/traits/get_declared_traits_003.phpt8
4 files changed, 31 insertions, 9 deletions
diff --git a/Zend/tests/traits/bug69579.phpt b/Zend/tests/traits/bug69579.phpt
new file mode 100644
index 0000000000..421734e74e
--- /dev/null
+++ b/Zend/tests/traits/bug69579.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Bug #69579 (Internal trait double-free)
+--SKIPIF--
+<?php
+if (!PHP_DEBUG) die("skip only run in debug version");
+?>
+--FILE--
+<?php
+
+class Bar{
+ use _ZendTestTrait;
+}
+
+$bar = new Bar();
+var_dump($bar->testMethod());
+// destruction causes a double-free and explodes
+
+?>
+--EXPECT--
+bool(true)
diff --git a/Zend/tests/traits/get_declared_traits_001.phpt b/Zend/tests/traits/get_declared_traits_001.phpt
index 91f6b3d20a..b1faec3de8 100644
--- a/Zend/tests/traits/get_declared_traits_001.phpt
+++ b/Zend/tests/traits/get_declared_traits_001.phpt
@@ -12,8 +12,8 @@ final class e { }
var_dump(get_declared_traits());
?>
---EXPECT--
-array(1) {
- [0]=>
+--EXPECTF--
+array(%d) {%A
+ [%d]=>
string(1) "c"
}
diff --git a/Zend/tests/traits/get_declared_traits_002.phpt b/Zend/tests/traits/get_declared_traits_002.phpt
index 74fdcc4082..73dd73c927 100644
--- a/Zend/tests/traits/get_declared_traits_002.phpt
+++ b/Zend/tests/traits/get_declared_traits_002.phpt
@@ -13,8 +13,8 @@ namespace test {
}
?>
---EXPECT--
-array(1) {
- [0]=>
+--EXPECTF--
+array(%d) {%A
+ [%d]=>
string(6) "test\c"
}
diff --git a/Zend/tests/traits/get_declared_traits_003.phpt b/Zend/tests/traits/get_declared_traits_003.phpt
index 4a687467f2..edae3f1933 100644
--- a/Zend/tests/traits/get_declared_traits_003.phpt
+++ b/Zend/tests/traits/get_declared_traits_003.phpt
@@ -13,13 +13,15 @@ var_dump(get_declared_traits());
?>
--EXPECTF--
-%astring(1) "a"
+array(%d) {%A
+ [%d]=>
+ string(1) "a"
[%d]=>
string(1) "d"
[%d]=>
string(1) "e"
}
-array(1) {
- [0]=>
+array(%d) {%A
+ [%d]=>
string(1) "c"
}