summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Nicholson <nicholsr@php.net>2008-01-24 14:50:18 +0000
committerRobert Nicholson <nicholsr@php.net>2008-01-24 14:50:18 +0000
commit0cf88073f0ea890ffb4e35ceb455cddccbe2bc90 (patch)
tree1ac3f4483a5298ea2b0a91a5f070101864d993bb
parent7d17152cc2c011d5b0f17558143d8f3b3d3e2db9 (diff)
downloadphp-git-0cf88073f0ea890ffb4e35ceb455cddccbe2bc90.tar.gz
- New tests for compact()
# compact_variation1.phpt will fail until bug #29044 is fixed
-rw-r--r--ext/standard/tests/array/compact_basic.phpt134
-rw-r--r--ext/standard/tests/array/compact_error.phpt31
-rw-r--r--ext/standard/tests/array/compact_variation1.phpt65
3 files changed, 230 insertions, 0 deletions
diff --git a/ext/standard/tests/array/compact_basic.phpt b/ext/standard/tests/array/compact_basic.phpt
new file mode 100644
index 0000000000..013b59fdc4
--- /dev/null
+++ b/ext/standard/tests/array/compact_basic.phpt
@@ -0,0 +1,134 @@
+--TEST--
+Test compact() function : basic functionality
+--FILE--
+<?php
+/* Prototype : proto array compact(mixed var_names [, mixed ...])
+ * Description: Creates a hash containing variables and their values
+ * Source code: ext/standard/array.c
+ * Alias to functions:
+ */
+
+/*
+ * Test basic functionality
+ */
+
+echo "*** Testing compact() : basic functionality ***\n";
+
+$a=1;
+$b=0.2;
+$c=true;
+$d=array("key"=>"val");
+$e=NULL;
+$f="string";
+
+// simple array test
+var_dump (compact(array("a", "b", "c", "d", "e", "f")));
+// simple parameter test
+var_dump (compact("a", "b", "c", "d", "e", "f"));
+var_dump (compact(array("keyval"=>"a", "b"=>"b", "c"=>1)));
+
+// cases which should not yield any output.
+var_dump (compact(array(10, 0.3, true, array(20), NULL)));
+var_dump (compact(10, 0.3, true, array(20), NULL));
+var_dump (compact(array("g")));
+
+echo "Done";
+?>
+--EXPECT--
+*** Testing compact() : basic functionality ***
+array(6) {
+ ["a"]=>
+ int(1)
+ ["b"]=>
+ float(0.2)
+ ["c"]=>
+ bool(true)
+ ["d"]=>
+ array(1) {
+ ["key"]=>
+ string(3) "val"
+ }
+ ["e"]=>
+ NULL
+ ["f"]=>
+ string(6) "string"
+}
+array(6) {
+ ["a"]=>
+ int(1)
+ ["b"]=>
+ float(0.2)
+ ["c"]=>
+ bool(true)
+ ["d"]=>
+ array(1) {
+ ["key"]=>
+ string(3) "val"
+ }
+ ["e"]=>
+ NULL
+ ["f"]=>
+ string(6) "string"
+}
+array(2) {
+ ["a"]=>
+ int(1)
+ ["b"]=>
+ float(0.2)
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+Done
+--UEXPECT--
+*** Testing compact() : basic functionality ***
+array(6) {
+ [u"a"]=>
+ int(1)
+ [u"b"]=>
+ float(0.2)
+ [u"c"]=>
+ bool(true)
+ [u"d"]=>
+ array(1) {
+ [u"key"]=>
+ unicode(3) "val"
+ }
+ [u"e"]=>
+ NULL
+ [u"f"]=>
+ unicode(6) "string"
+}
+array(6) {
+ [u"a"]=>
+ int(1)
+ [u"b"]=>
+ float(0.2)
+ [u"c"]=>
+ bool(true)
+ [u"d"]=>
+ array(1) {
+ [u"key"]=>
+ unicode(3) "val"
+ }
+ [u"e"]=>
+ NULL
+ [u"f"]=>
+ unicode(6) "string"
+}
+array(2) {
+ [u"a"]=>
+ int(1)
+ [u"b"]=>
+ float(0.2)
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+Done \ No newline at end of file
diff --git a/ext/standard/tests/array/compact_error.phpt b/ext/standard/tests/array/compact_error.phpt
new file mode 100644
index 0000000000..d3d6e2cbbf
--- /dev/null
+++ b/ext/standard/tests/array/compact_error.phpt
@@ -0,0 +1,31 @@
+--TEST--
+Test compact() function : error conditions
+--FILE--
+<?php
+/* Prototype : proto array compact(mixed var_names [, mixed ...])
+ * Description: Creates a hash containing variables and their values
+ * Source code: ext/standard/array.c
+ * Alias to functions:
+ */
+
+/*
+ * Error -tests test compact with zero arguments.
+ */
+
+echo "*** Testing compact() : error conditions ***\n";
+
+// Zero arguments
+echo "\n-- Testing compact() function with Zero arguments --\n";
+var_dump( compact() );
+
+
+echo "Done";
+?>
+--EXPECTF--
+*** Testing compact() : error conditions ***
+
+-- Testing compact() function with Zero arguments --
+
+Warning: Wrong parameter count for compact() in %s on line %d
+NULL
+Done
diff --git a/ext/standard/tests/array/compact_variation1.phpt b/ext/standard/tests/array/compact_variation1.phpt
new file mode 100644
index 0000000000..f6a3c9481f
--- /dev/null
+++ b/ext/standard/tests/array/compact_variation1.phpt
@@ -0,0 +1,65 @@
+--TEST--
+Test compact() function : usage variations - arrays containing references.
+--FILE--
+<?php
+/* Prototype : proto array compact(mixed var_names [, mixed ...])
+ * Description: Creates a hash containing variables and their values
+ * Source code: ext/standard/array.c
+ * Alias to functions:
+ */
+
+/*
+ * compact variations - arrays with references
+ */
+
+echo "*** Testing compact() : usage variations - arrays containg references ***\n";
+
+$a=1;
+$b=2;
+$c=3;
+$string="c";
+$arr1=array ("a",&$arr1);
+$arr2=array ("a",array(array(array("b"))));
+$arr2[1][0][0][]=&$arr2;
+$arr2[1][0][0][]=&$arr2[1];
+$arr3=array(&$string);
+
+var_dump (compact ($arr1));
+var_dump (compact ($arr2));
+var_dump (compact ($arr3));
+echo "Done";
+?>
+--EXPECT--
+*** Testing compact() : usage variations - arrays containg references ***
+array(1) {
+ ["a"]=>
+ int(1)
+}
+array(2) {
+ ["a"]=>
+ int(1)
+ ["b"]=>
+ int(2)
+}
+array(1) {
+ ["c"]=>
+ int(3)
+}
+Done
+--UEXPECT--
+*** Testing compact() : usage variations - arrays containg references ***
+array(1) {
+ [u"a"]=>
+ int(1)
+}
+array(2) {
+ [u"a"]=>
+ int(1)
+ [u"b"]=>
+ int(2)
+}
+array(1) {
+ [u"c"]=>
+ int(3)
+}
+Done \ No newline at end of file