pack.phpt 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. --TEST--
  2. Generic pack()/unpack() tests
  3. --SKIPIF--
  4. <?php
  5. if (PHP_INT_MAX > 2147483647) {
  6. die("skip 32bit test only");
  7. }
  8. ?>
  9. --FILE--
  10. <?php
  11. print_r(unpack("A", pack("A", "hello world")));
  12. print_r(unpack("A*", pack("A*", "hello world")));
  13. echo '"'.pack("A9", "hello").'"';
  14. echo "\n";
  15. print_r(unpack("C", pack("C", -127)));
  16. print_r(unpack("C", pack("C", 127)));
  17. print_r(unpack("C", pack("C", 255)));
  18. print_r(unpack("C", pack("C", -129)));
  19. print_r(unpack("H", pack("H", 0x04)));
  20. print_r(unpack("I", pack("I", 65534)));
  21. print_r(unpack("I", pack("I", 0)));
  22. print_r(unpack("I", pack("I", -1000)));
  23. print_r(unpack("I", pack("I", -64434)));
  24. print_r(unpack("I", pack("I", 4294967296)));
  25. print_r(unpack("I", pack("I", -4294967296)));
  26. print_r(unpack("L", pack("L", 65534)));
  27. print_r(unpack("L", pack("L", 0)));
  28. print_r(unpack("L", pack("L", 2147483650)));
  29. print_r(unpack("L", pack("L", 4294967295)));
  30. print_r(unpack("L", pack("L", -2147483648)));
  31. print_r(unpack("N", pack("N", 65534)));
  32. print_r(unpack("N", pack("N", 0)));
  33. print_r(unpack("N", pack("N", 2147483650)));
  34. print_r(unpack("N", pack("N", 4294967296)));
  35. print_r(unpack("N", pack("N", -2147483648)));
  36. print_r(unpack("N", pack("N", -30000)));
  37. print_r(unpack("S", pack("S", 65534)));
  38. print_r(unpack("S", pack("S", 65537)));
  39. print_r(unpack("S", pack("S", 0)));
  40. print_r(unpack("S", pack("S", -1000)));
  41. print_r(unpack("S", pack("S", -64434)));
  42. print_r(unpack("S", pack("S", -65535)));
  43. print_r(unpack("V", pack("V", 65534)));
  44. print_r(unpack("V", pack("V", 0)));
  45. print_r(unpack("V", pack("V", 2147483650)));
  46. print_r(unpack("V", pack("V", 4294967296)));
  47. print_r(unpack("V", pack("V", -2147483648)));
  48. print_r(unpack("a", pack("a", "hello world")));
  49. print_r(unpack("a*", pack("a*", "hello world")));
  50. print_r(unpack("c", pack("c", -127)));
  51. print_r(unpack("c", pack("c", 127)));
  52. print_r(unpack("c", pack("c", 255)));
  53. print_r(unpack("c", pack("c", -129)));
  54. print_r(unpack("h", pack("h", 3000000)));
  55. print_r(unpack("i", pack("i", 65534)));
  56. print_r(unpack("i", pack("i", 0)));
  57. print_r(unpack("i", pack("i", -1000)));
  58. print_r(unpack("i", pack("i", -64434)));
  59. print_r(unpack("i", pack("i", -65535)));
  60. print_r(unpack("i", pack("i", -2147483647)));
  61. print_r(unpack("l", pack("l", 65534)));
  62. print_r(unpack("l", pack("l", 0)));
  63. print_r(unpack("l", pack("l", 2147483650)));
  64. print_r(unpack("l", pack("l", 4294967296)));
  65. print_r(unpack("l", pack("l", -2147483648)));
  66. print_r(unpack("n", pack("n", 65534)));
  67. print_r(unpack("n", pack("n", 65537)));
  68. print_r(unpack("n", pack("n", 0)));
  69. print_r(unpack("n", pack("n", -1000)));
  70. print_r(unpack("n", pack("n", -64434)));
  71. print_r(unpack("n", pack("n", -65535)));
  72. print_r(unpack("s", pack("s", 32767)));
  73. print_r(unpack("s", pack("s", 65535)));
  74. print_r(unpack("s", pack("s", 0)));
  75. print_r(unpack("s", pack("s", -1000)));
  76. print_r(unpack("s", pack("s", -64434)));
  77. print_r(unpack("s", pack("s", -65535)));
  78. print_r(unpack("v", pack("v", 65534)));
  79. print_r(unpack("v", pack("v", 65537)));
  80. print_r(unpack("v", pack("v", 0)));
  81. print_r(unpack("v", pack("v", -1000)));
  82. print_r(unpack("v", pack("v", -64434)));
  83. print_r(unpack("v", pack("v", -65535)));
  84. ?>
  85. --EXPECT--
  86. Array
  87. (
  88. [1] => h
  89. )
  90. Array
  91. (
  92. [1] => hello world
  93. )
  94. "hello "
  95. Array
  96. (
  97. [1] => 129
  98. )
  99. Array
  100. (
  101. [1] => 127
  102. )
  103. Array
  104. (
  105. [1] => 255
  106. )
  107. Array
  108. (
  109. [1] => 127
  110. )
  111. Array
  112. (
  113. [1] => 4
  114. )
  115. Array
  116. (
  117. [1] => 65534
  118. )
  119. Array
  120. (
  121. [1] => 0
  122. )
  123. Array
  124. (
  125. [1] => -1000
  126. )
  127. Array
  128. (
  129. [1] => -64434
  130. )
  131. Array
  132. (
  133. [1] => 0
  134. )
  135. Array
  136. (
  137. [1] => 0
  138. )
  139. Array
  140. (
  141. [1] => 65534
  142. )
  143. Array
  144. (
  145. [1] => 0
  146. )
  147. Array
  148. (
  149. [1] => -2147483646
  150. )
  151. Array
  152. (
  153. [1] => -1
  154. )
  155. Array
  156. (
  157. [1] => -2147483648
  158. )
  159. Array
  160. (
  161. [1] => 65534
  162. )
  163. Array
  164. (
  165. [1] => 0
  166. )
  167. Array
  168. (
  169. [1] => -2147483646
  170. )
  171. Array
  172. (
  173. [1] => 0
  174. )
  175. Array
  176. (
  177. [1] => -2147483648
  178. )
  179. Array
  180. (
  181. [1] => -30000
  182. )
  183. Array
  184. (
  185. [1] => 65534
  186. )
  187. Array
  188. (
  189. [1] => 1
  190. )
  191. Array
  192. (
  193. [1] => 0
  194. )
  195. Array
  196. (
  197. [1] => 64536
  198. )
  199. Array
  200. (
  201. [1] => 1102
  202. )
  203. Array
  204. (
  205. [1] => 1
  206. )
  207. Array
  208. (
  209. [1] => 65534
  210. )
  211. Array
  212. (
  213. [1] => 0
  214. )
  215. Array
  216. (
  217. [1] => -2147483646
  218. )
  219. Array
  220. (
  221. [1] => 0
  222. )
  223. Array
  224. (
  225. [1] => -2147483648
  226. )
  227. Array
  228. (
  229. [1] => h
  230. )
  231. Array
  232. (
  233. [1] => hello world
  234. )
  235. Array
  236. (
  237. [1] => -127
  238. )
  239. Array
  240. (
  241. [1] => 127
  242. )
  243. Array
  244. (
  245. [1] => -1
  246. )
  247. Array
  248. (
  249. [1] => 127
  250. )
  251. Array
  252. (
  253. [1] => 3
  254. )
  255. Array
  256. (
  257. [1] => 65534
  258. )
  259. Array
  260. (
  261. [1] => 0
  262. )
  263. Array
  264. (
  265. [1] => -1000
  266. )
  267. Array
  268. (
  269. [1] => -64434
  270. )
  271. Array
  272. (
  273. [1] => -65535
  274. )
  275. Array
  276. (
  277. [1] => -2147483647
  278. )
  279. Array
  280. (
  281. [1] => 65534
  282. )
  283. Array
  284. (
  285. [1] => 0
  286. )
  287. Array
  288. (
  289. [1] => -2147483646
  290. )
  291. Array
  292. (
  293. [1] => 0
  294. )
  295. Array
  296. (
  297. [1] => -2147483648
  298. )
  299. Array
  300. (
  301. [1] => 65534
  302. )
  303. Array
  304. (
  305. [1] => 1
  306. )
  307. Array
  308. (
  309. [1] => 0
  310. )
  311. Array
  312. (
  313. [1] => 64536
  314. )
  315. Array
  316. (
  317. [1] => 1102
  318. )
  319. Array
  320. (
  321. [1] => 1
  322. )
  323. Array
  324. (
  325. [1] => 32767
  326. )
  327. Array
  328. (
  329. [1] => -1
  330. )
  331. Array
  332. (
  333. [1] => 0
  334. )
  335. Array
  336. (
  337. [1] => -1000
  338. )
  339. Array
  340. (
  341. [1] => 1102
  342. )
  343. Array
  344. (
  345. [1] => 1
  346. )
  347. Array
  348. (
  349. [1] => 65534
  350. )
  351. Array
  352. (
  353. [1] => 1
  354. )
  355. Array
  356. (
  357. [1] => 0
  358. )
  359. Array
  360. (
  361. [1] => 64536
  362. )
  363. Array
  364. (
  365. [1] => 1102
  366. )
  367. Array
  368. (
  369. [1] => 1
  370. )