summaryrefslogtreecommitdiff
path: root/ext/intl/tests/regression_sort_and_cow.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/intl/tests/regression_sort_and_cow.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/intl/tests/regression_sort_and_cow.phpt')
-rw-r--r--ext/intl/tests/regression_sort_and_cow.phpt85
1 files changed, 85 insertions, 0 deletions
diff --git a/ext/intl/tests/regression_sort_and_cow.phpt b/ext/intl/tests/regression_sort_and_cow.phpt
new file mode 100644
index 0000000..d7ff797
--- /dev/null
+++ b/ext/intl/tests/regression_sort_and_cow.phpt
@@ -0,0 +1,85 @@
+--TEST--
+Regression: sort() and copy-on-write.
+--SKIPIF--
+<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
+--FILE--
+<?php
+/*
+ * Check if collator_sort() properly supports copy-on-write.
+ */
+
+
+/* Create two copies of the given array.
+ * Sort the array and the first copy.
+ * Check if the second copy remains unsorted.
+ */
+function test_COW( $locale, $test_array )
+{
+ $res_str = '';
+
+ $coll = ut_coll_create( $locale );
+
+ // Create two copies of the given array.
+ $copy1 = $test_array;
+ $copy2 = $test_array;
+
+ // Sort given array and the first copy of it.
+ ut_coll_sort( $coll, $test_array );
+ ut_coll_sort( $coll, $copy1 );
+
+ // Return contents of all the arrays.
+ // The second copy should remain unsorted.
+ $res_str .= dump( $test_array ) . "\n";
+ $res_str .= dump( $copy1 ) . "\n";
+ $res_str .= dump( $copy2 ) . "\n";
+
+ return $res_str;
+}
+
+function ut_main()
+{
+ $res_str = '';
+
+ $a1 = array( 'b', 'a', 'c' );
+ $a2 = array( 'в', 'а', 'б' );
+
+ $res_str .= test_COW( 'en_US', $a1 );
+ $res_str .= test_COW( 'ru_RU', $a2 );
+
+ return $res_str;
+}
+
+require_once( 'ut_common.inc' );
+ut_run();
+?>
+--EXPECT--
+array (
+ 0 => 'a',
+ 1 => 'b',
+ 2 => 'c',
+)
+array (
+ 0 => 'a',
+ 1 => 'b',
+ 2 => 'c',
+)
+array (
+ 0 => 'b',
+ 1 => 'a',
+ 2 => 'c',
+)
+array (
+ 0 => 'а',
+ 1 => 'б',
+ 2 => 'в',
+)
+array (
+ 0 => 'а',
+ 1 => 'б',
+ 2 => 'в',
+)
+array (
+ 0 => 'в',
+ 1 => 'а',
+ 2 => 'б',
+)