summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/array')
-rw-r--r--ext/standard/tests/array/array_flip_variation2.phptbin2178 -> 2179 bytes
-rw-r--r--ext/standard/tests/array/bug50006.phpt29
-rw-r--r--ext/standard/tests/array/bug50006_1.phpt29
-rw-r--r--ext/standard/tests/array/bug50006_2.phpt29
-rw-r--r--ext/standard/tests/array/uasort_variation5.phpt2
5 files changed, 88 insertions, 1 deletions
diff --git a/ext/standard/tests/array/array_flip_variation2.phpt b/ext/standard/tests/array/array_flip_variation2.phpt
index 1474a6955..997c39130 100644
--- a/ext/standard/tests/array/array_flip_variation2.phpt
+++ b/ext/standard/tests/array/array_flip_variation2.phpt
Binary files differ
diff --git a/ext/standard/tests/array/bug50006.phpt b/ext/standard/tests/array/bug50006.phpt
new file mode 100644
index 000000000..f03a00262
--- /dev/null
+++ b/ext/standard/tests/array/bug50006.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #50006 (Segfault caused by uksort())
+--FILE--
+<?php
+
+$data = array(
+ 'bar-bazbazbaz.' => 0,
+ 'bar-bazbazbaz-' => 0,
+ 'foo' => 0,
+);
+uksort($data, 'magic_sort_cmp');
+print_r($data);
+
+function magic_sort_cmp($a, $b) {
+ $a = substr($a, 1);
+ $b = substr($b, 1);
+ if (!$a) return $b ? -1 : 0;
+ if (!$b) return 1;
+ return magic_sort_cmp($a, $b);
+}
+
+?>
+--EXPECTF--
+Array
+(
+ [foo] => 0
+ [bar-bazbazbaz-] => 0
+ [bar-bazbazbaz.] => 0
+)
diff --git a/ext/standard/tests/array/bug50006_1.phpt b/ext/standard/tests/array/bug50006_1.phpt
new file mode 100644
index 000000000..fbb7ddd59
--- /dev/null
+++ b/ext/standard/tests/array/bug50006_1.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #50006 (Segfault caused by uksort()) - usort variant
+--FILE--
+<?php
+
+$data = array(
+ 'bar-bazbazbaz.',
+ 'bar-bazbazbaz-',
+ 'foo'
+);
+usort($data, 'magic_sort_cmp');
+print_r($data);
+
+function magic_sort_cmp($a, $b) {
+ $a = substr($a, 1);
+ $b = substr($b, 1);
+ if (!$a) return $b ? -1 : 0;
+ if (!$b) return 1;
+ return magic_sort_cmp($a, $b);
+}
+
+?>
+--EXPECTF--
+Array
+(
+ [0] => foo
+ [1] => bar-bazbazbaz-
+ [2] => bar-bazbazbaz.
+)
diff --git a/ext/standard/tests/array/bug50006_2.phpt b/ext/standard/tests/array/bug50006_2.phpt
new file mode 100644
index 000000000..19c0d1425
--- /dev/null
+++ b/ext/standard/tests/array/bug50006_2.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #50006 (Segfault caused by uksort()) - uasort variant
+--FILE--
+<?php
+
+$data = array(
+ 'bar-bazbazbaz.',
+ 'bar-bazbazbaz-',
+ 'foo'
+);
+uasort($data, 'magic_sort_cmp');
+print_r($data);
+
+function magic_sort_cmp($a, $b) {
+ $a = substr($a, 1);
+ $b = substr($b, 1);
+ if (!$a) return $b ? -1 : 0;
+ if (!$b) return 1;
+ return magic_sort_cmp($a, $b);
+}
+
+?>
+--EXPECTF--
+Array
+(
+ [2] => foo
+ [1] => bar-bazbazbaz-
+ [0] => bar-bazbazbaz.
+)
diff --git a/ext/standard/tests/array/uasort_variation5.phpt b/ext/standard/tests/array/uasort_variation5.phpt
index 22d9da31c..e6996a55f 100644
--- a/ext/standard/tests/array/uasort_variation5.phpt
+++ b/ext/standard/tests/array/uasort_variation5.phpt
@@ -139,7 +139,7 @@ array(4) {
[1]=>
string(7) "Heredoc"
[3]=>
- string(43) "heredoc string with!@# and 123
+ string(4%d) "heredoc string with!@# and 123
Test this!!!"
}
Done