summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings/pack.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/strings/pack.phpt')
-rw-r--r--ext/standard/tests/strings/pack.phpt385
1 files changed, 385 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/pack.phpt b/ext/standard/tests/strings/pack.phpt
new file mode 100644
index 000000000..b36eee1e5
--- /dev/null
+++ b/ext/standard/tests/strings/pack.phpt
@@ -0,0 +1,385 @@
+--TEST--
+Generic pack()/unpack() tests
+--SKIPIF--
+<?php
+if (PHP_INT_MAX > 2147483647) {
+ die("skip 32bit test only");
+}
+?>
+--FILE--
+<?php
+print_r(unpack("A", pack("A", "hello world")));
+print_r(unpack("A*", pack("A*", "hello world")));
+echo '"'.pack("A9", "hello").'"';
+echo "\n";
+
+print_r(unpack("C", pack("C", -127)));
+print_r(unpack("C", pack("C", 127)));
+print_r(unpack("C", pack("C", 255)));
+print_r(unpack("C", pack("C", -129)));
+
+print_r(unpack("H", pack("H", 0x04)));
+
+print_r(unpack("I", pack("I", 65534)));
+print_r(unpack("I", pack("I", 0)));
+print_r(unpack("I", pack("I", -1000)));
+print_r(unpack("I", pack("I", -64434)));
+print_r(unpack("I", pack("I", 4294967296)));
+print_r(unpack("I", pack("I", -4294967296)));
+
+print_r(unpack("L", pack("L", 65534)));
+print_r(unpack("L", pack("L", 0)));
+print_r(unpack("L", pack("L", 2147483650)));
+print_r(unpack("L", pack("L", 4294967295)));
+print_r(unpack("L", pack("L", -2147483648)));
+
+print_r(unpack("N", pack("N", 65534)));
+print_r(unpack("N", pack("N", 0)));
+print_r(unpack("N", pack("N", 2147483650)));
+print_r(unpack("N", pack("N", 4294967296)));
+print_r(unpack("N", pack("N", -2147483648)));
+print_r(unpack("N", pack("N", -30000)));
+
+print_r(unpack("S", pack("S", 65534)));
+print_r(unpack("S", pack("S", 65537)));
+print_r(unpack("S", pack("S", 0)));
+print_r(unpack("S", pack("S", -1000)));
+print_r(unpack("S", pack("S", -64434)));
+print_r(unpack("S", pack("S", -65535)));
+
+print_r(unpack("V", pack("V", 65534)));
+print_r(unpack("V", pack("V", 0)));
+print_r(unpack("V", pack("V", 2147483650)));
+print_r(unpack("V", pack("V", 4294967296)));
+print_r(unpack("V", pack("V", -2147483648)));
+
+print_r(unpack("a", pack("a", "hello world")));
+print_r(unpack("a*", pack("a*", "hello world")));
+
+print_r(unpack("c", pack("c", -127)));
+print_r(unpack("c", pack("c", 127)));
+print_r(unpack("c", pack("c", 255)));
+print_r(unpack("c", pack("c", -129)));
+
+print_r(unpack("h", pack("h", 3000000)));
+
+print_r(unpack("i", pack("i", 65534)));
+print_r(unpack("i", pack("i", 0)));
+print_r(unpack("i", pack("i", -1000)));
+print_r(unpack("i", pack("i", -64434)));
+print_r(unpack("i", pack("i", -65535)));
+print_r(unpack("i", pack("i", -2147483647)));
+
+print_r(unpack("l", pack("l", 65534)));
+print_r(unpack("l", pack("l", 0)));
+print_r(unpack("l", pack("l", 2147483650)));
+print_r(unpack("l", pack("l", 4294967296)));
+print_r(unpack("l", pack("l", -2147483648)));
+
+print_r(unpack("n", pack("n", 65534)));
+print_r(unpack("n", pack("n", 65537)));
+print_r(unpack("n", pack("n", 0)));
+print_r(unpack("n", pack("n", -1000)));
+print_r(unpack("n", pack("n", -64434)));
+print_r(unpack("n", pack("n", -65535)));
+
+print_r(unpack("s", pack("s", 32767)));
+print_r(unpack("s", pack("s", 65535)));
+print_r(unpack("s", pack("s", 0)));
+print_r(unpack("s", pack("s", -1000)));
+print_r(unpack("s", pack("s", -64434)));
+print_r(unpack("s", pack("s", -65535)));
+
+print_r(unpack("v", pack("v", 65534)));
+print_r(unpack("v", pack("v", 65537)));
+print_r(unpack("v", pack("v", 0)));
+print_r(unpack("v", pack("v", -1000)));
+print_r(unpack("v", pack("v", -64434)));
+print_r(unpack("v", pack("v", -65535)));
+?>
+--EXPECT--
+Array
+(
+ [1] => h
+)
+Array
+(
+ [1] => hello world
+)
+"hello "
+Array
+(
+ [1] => 129
+)
+Array
+(
+ [1] => 127
+)
+Array
+(
+ [1] => 255
+)
+Array
+(
+ [1] => 127
+)
+Array
+(
+ [1] => 4
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -1000
+)
+Array
+(
+ [1] => -64434
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -2147483648
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -2147483646
+)
+Array
+(
+ [1] => -1
+)
+Array
+(
+ [1] => -2147483648
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -2147483646
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -2147483648
+)
+Array
+(
+ [1] => -30000
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 1
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => 64536
+)
+Array
+(
+ [1] => 1102
+)
+Array
+(
+ [1] => 1
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -2147483646
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -2147483648
+)
+Array
+(
+ [1] => h
+)
+Array
+(
+ [1] => hello world
+)
+Array
+(
+ [1] => -127
+)
+Array
+(
+ [1] => 127
+)
+Array
+(
+ [1] => -1
+)
+Array
+(
+ [1] => 127
+)
+Array
+(
+ [1] => 3
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -1000
+)
+Array
+(
+ [1] => -64434
+)
+Array
+(
+ [1] => -65535
+)
+Array
+(
+ [1] => -2147483647
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -2147483646
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -2147483648
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 1
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => 64536
+)
+Array
+(
+ [1] => 1102
+)
+Array
+(
+ [1] => 1
+)
+Array
+(
+ [1] => 32767
+)
+Array
+(
+ [1] => -1
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => -1000
+)
+Array
+(
+ [1] => 1102
+)
+Array
+(
+ [1] => 1
+)
+Array
+(
+ [1] => 65534
+)
+Array
+(
+ [1] => 1
+)
+Array
+(
+ [1] => 0
+)
+Array
+(
+ [1] => 64536
+)
+Array
+(
+ [1] => 1102
+)
+Array
+(
+ [1] => 1
+)