Annotation of embedaddon/php/ext/standard/tests/serialize/serialization_miscTypes_001.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test serialize() & unserialize() functions: many types
! 3: --SKIPIF--
! 4: <?php
! 5: if (PHP_INT_SIZE != 4) {
! 6: die("skip this test is for 32bit platform only");
! 7: }
! 8: ?>
! 9: --FILE--
! 10: <?php
! 11: /* Prototype : proto string serialize(mixed variable)
! 12: * Description: Returns a string representation of variable (which can later be unserialized)
! 13: * Source code: ext/standard/var.c
! 14: * Alias to functions:
! 15: */
! 16: /* Prototype : proto mixed unserialize(string variable_representation)
! 17: * Description: Takes a string representation of variable and recreates it
! 18: * Source code: ext/standard/var.c
! 19: * Alias to functions:
! 20: */
! 21:
! 22:
! 23: echo "--- Testing Various Types ---\n";
! 24:
! 25: /* unset variable */
! 26: $unset_var = 10;
! 27: unset($unset_var);
! 28: /* array declaration */
! 29: $arr_var = array(0, 1, -2, 3.333333, "a", array(), array(NULL));
! 30:
! 31: $Variation_arr = array(
! 32: /* Integers */
! 33: 2147483647,
! 34: -2147483647,
! 35: 2147483648,
! 36: -2147483648,
! 37:
! 38: 0xFF00123, // hex integers
! 39: -0xFF00123,
! 40: 0x7FFFFFFF,
! 41: -0x7FFFFFFF,
! 42: 0x80000000,
! 43: -0x80000000,
! 44:
! 45: 01234567, // octal integers
! 46: -01234567,
! 47:
! 48: /* arrays */
! 49: array(), // zero elements
! 50: array(1, 2, 3, 12345666, -2344),
! 51: array(0, 1, 2, 3.333, -4, -5.555, TRUE, FALSE, NULL, "", '', " ",
! 52: array(), array(1,2,array()), "string", new stdclass
! 53: ),
! 54: &$arr_var, // Reference to an array
! 55:
! 56: /* nulls */
! 57: NULL,
! 58: null,
! 59:
! 60: /* strings */
! 61: "",
! 62: '',
! 63: " ",
! 64: ' ',
! 65: "a",
! 66: "string",
! 67: 'string',
! 68: "hello\0",
! 69: 'hello\0',
! 70: "123",
! 71: '123',
! 72: '\t',
! 73: "\t",
! 74:
! 75: /* booleans */
! 76: TRUE,
! 77: true,
! 78: FALSE,
! 79: false,
! 80:
! 81: /* Mixed types */
! 82: @TRUE123,
! 83: "123string",
! 84: "string123",
! 85: "NULLstring",
! 86:
! 87: /* unset/undefined vars */
! 88: @$unset_var,
! 89: @$undefined_var,
! 90: );
! 91:
! 92: /* Loop through to test each element in the above array */
! 93: for( $i = 0; $i < count($Variation_arr); $i++ ) {
! 94:
! 95: echo "\n-- Iteration $i --\n";
! 96: echo "after serialization => ";
! 97: $serialize_data = serialize($Variation_arr[$i]);
! 98: var_dump( $serialize_data );
! 99:
! 100: echo "after unserialization => ";
! 101: $unserialize_data = unserialize($serialize_data);
! 102: var_dump( $unserialize_data );
! 103: }
! 104:
! 105: echo "\nDone";
! 106: ?>
! 107: --EXPECTF--
! 108: --- Testing Various Types ---
! 109:
! 110: -- Iteration 0 --
! 111: after serialization => string(13) "i:2147483647;"
! 112: after unserialization => int(2147483647)
! 113:
! 114: -- Iteration 1 --
! 115: after serialization => string(14) "i:-2147483647;"
! 116: after unserialization => int(-2147483647)
! 117:
! 118: -- Iteration 2 --
! 119: after serialization => string(13) "d:2147483648;"
! 120: after unserialization => float(2147483648)
! 121:
! 122: -- Iteration 3 --
! 123: after serialization => string(14) "d:-2147483648;"
! 124: after unserialization => float(-2147483648)
! 125:
! 126: -- Iteration 4 --
! 127: after serialization => string(12) "i:267387171;"
! 128: after unserialization => int(267387171)
! 129:
! 130: -- Iteration 5 --
! 131: after serialization => string(13) "i:-267387171;"
! 132: after unserialization => int(-267387171)
! 133:
! 134: -- Iteration 6 --
! 135: after serialization => string(13) "i:2147483647;"
! 136: after unserialization => int(2147483647)
! 137:
! 138: -- Iteration 7 --
! 139: after serialization => string(14) "i:-2147483647;"
! 140: after unserialization => int(-2147483647)
! 141:
! 142: -- Iteration 8 --
! 143: after serialization => string(13) "d:2147483648;"
! 144: after unserialization => float(2147483648)
! 145:
! 146: -- Iteration 9 --
! 147: after serialization => string(14) "d:-2147483648;"
! 148: after unserialization => float(-2147483648)
! 149:
! 150: -- Iteration 10 --
! 151: after serialization => string(9) "i:342391;"
! 152: after unserialization => int(342391)
! 153:
! 154: -- Iteration 11 --
! 155: after serialization => string(10) "i:-342391;"
! 156: after unserialization => int(-342391)
! 157:
! 158: -- Iteration 12 --
! 159: after serialization => string(6) "a:0:{}"
! 160: after unserialization => array(0) {
! 161: }
! 162:
! 163: -- Iteration 13 --
! 164: after serialization => string(57) "a:5:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:12345666;i:4;i:-2344;}"
! 165: after unserialization => array(5) {
! 166: [0]=>
! 167: int(1)
! 168: [1]=>
! 169: int(2)
! 170: [2]=>
! 171: int(3)
! 172: [3]=>
! 173: int(12345666)
! 174: [4]=>
! 175: int(-2344)
! 176: }
! 177:
! 178: -- Iteration 14 --
! 179: after serialization => string(239) "a:16:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;d:3.3330000000000002;i:4;i:-4;i:5;d:-5.5549999999999997;i:6;b:1;i:7;b:0;i:8;N;i:9;s:0:"";i:10;s:0:"";i:11;s:1:" ";i:12;a:0:{}i:13;a:3:{i:0;i:1;i:1;i:2;i:2;a:0:{}}i:14;s:6:"string";i:15;O:8:"stdClass":0:{}}"
! 180: after unserialization => array(16) {
! 181: [0]=>
! 182: int(0)
! 183: [1]=>
! 184: int(1)
! 185: [2]=>
! 186: int(2)
! 187: [3]=>
! 188: float(3.333)
! 189: [4]=>
! 190: int(-4)
! 191: [5]=>
! 192: float(-5.555)
! 193: [6]=>
! 194: bool(true)
! 195: [7]=>
! 196: bool(false)
! 197: [8]=>
! 198: NULL
! 199: [9]=>
! 200: string(0) ""
! 201: [10]=>
! 202: string(0) ""
! 203: [11]=>
! 204: string(1) " "
! 205: [12]=>
! 206: array(0) {
! 207: }
! 208: [13]=>
! 209: array(3) {
! 210: [0]=>
! 211: int(1)
! 212: [1]=>
! 213: int(2)
! 214: [2]=>
! 215: array(0) {
! 216: }
! 217: }
! 218: [14]=>
! 219: string(6) "string"
! 220: [15]=>
! 221: object(stdClass)#2 (0) {
! 222: }
! 223: }
! 224:
! 225: -- Iteration 15 --
! 226: after serialization => string(94) "a:7:{i:0;i:0;i:1;i:1;i:2;i:-2;i:3;d:3.3333330000000001;i:4;s:1:"a";i:5;a:0:{}i:6;a:1:{i:0;N;}}"
! 227: after unserialization => array(7) {
! 228: [0]=>
! 229: int(0)
! 230: [1]=>
! 231: int(1)
! 232: [2]=>
! 233: int(-2)
! 234: [3]=>
! 235: float(3.333333)
! 236: [4]=>
! 237: string(1) "a"
! 238: [5]=>
! 239: array(0) {
! 240: }
! 241: [6]=>
! 242: array(1) {
! 243: [0]=>
! 244: NULL
! 245: }
! 246: }
! 247:
! 248: -- Iteration 16 --
! 249: after serialization => string(2) "N;"
! 250: after unserialization => NULL
! 251:
! 252: -- Iteration 17 --
! 253: after serialization => string(2) "N;"
! 254: after unserialization => NULL
! 255:
! 256: -- Iteration 18 --
! 257: after serialization => string(7) "s:0:"";"
! 258: after unserialization => string(0) ""
! 259:
! 260: -- Iteration 19 --
! 261: after serialization => string(7) "s:0:"";"
! 262: after unserialization => string(0) ""
! 263:
! 264: -- Iteration 20 --
! 265: after serialization => string(8) "s:1:" ";"
! 266: after unserialization => string(1) " "
! 267:
! 268: -- Iteration 21 --
! 269: after serialization => string(8) "s:1:" ";"
! 270: after unserialization => string(1) " "
! 271:
! 272: -- Iteration 22 --
! 273: after serialization => string(8) "s:1:"a";"
! 274: after unserialization => string(1) "a"
! 275:
! 276: -- Iteration 23 --
! 277: after serialization => string(13) "s:6:"string";"
! 278: after unserialization => string(6) "string"
! 279:
! 280: -- Iteration 24 --
! 281: after serialization => string(13) "s:6:"string";"
! 282: after unserialization => string(6) "string"
! 283:
! 284: -- Iteration 25 --
! 285: after serialization => string(13) "s:6:"hello ";"
! 286: after unserialization => string(6) "hello "
! 287:
! 288: -- Iteration 26 --
! 289: after serialization => string(14) "s:7:"hello\0";"
! 290: after unserialization => string(7) "hello\0"
! 291:
! 292: -- Iteration 27 --
! 293: after serialization => string(10) "s:3:"123";"
! 294: after unserialization => string(3) "123"
! 295:
! 296: -- Iteration 28 --
! 297: after serialization => string(10) "s:3:"123";"
! 298: after unserialization => string(3) "123"
! 299:
! 300: -- Iteration 29 --
! 301: after serialization => string(9) "s:2:"\t";"
! 302: after unserialization => string(2) "\t"
! 303:
! 304: -- Iteration 30 --
! 305: after serialization => string(8) "s:1:" ";"
! 306: after unserialization => string(1) " "
! 307:
! 308: -- Iteration 31 --
! 309: after serialization => string(4) "b:1;"
! 310: after unserialization => bool(true)
! 311:
! 312: -- Iteration 32 --
! 313: after serialization => string(4) "b:1;"
! 314: after unserialization => bool(true)
! 315:
! 316: -- Iteration 33 --
! 317: after serialization => string(4) "b:0;"
! 318: after unserialization => bool(false)
! 319:
! 320: -- Iteration 34 --
! 321: after serialization => string(4) "b:0;"
! 322: after unserialization => bool(false)
! 323:
! 324: -- Iteration 35 --
! 325: after serialization => string(14) "s:7:"TRUE123";"
! 326: after unserialization => string(7) "TRUE123"
! 327:
! 328: -- Iteration 36 --
! 329: after serialization => string(16) "s:9:"123string";"
! 330: after unserialization => string(9) "123string"
! 331:
! 332: -- Iteration 37 --
! 333: after serialization => string(16) "s:9:"string123";"
! 334: after unserialization => string(9) "string123"
! 335:
! 336: -- Iteration 38 --
! 337: after serialization => string(18) "s:10:"NULLstring";"
! 338: after unserialization => string(10) "NULLstring"
! 339:
! 340: -- Iteration 39 --
! 341: after serialization => string(2) "N;"
! 342: after unserialization => NULL
! 343:
! 344: -- Iteration 40 --
! 345: after serialization => string(2) "N;"
! 346: after unserialization => NULL
! 347:
! 348: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>