Return to fscanf_variation40.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test fscanf() function: usage variations - unsigned formats with float values 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: 12: /* 13: Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] ); 14: Description: Parses input from a file according to a format 15: */ 16: 17: /* Test fscanf() to scan float values using different unsigned format types */ 18: 19: $file_path = dirname(__FILE__); 20: 21: echo "*** Test fscanf(): different unsigned format types with float values ***\n"; 22: 23: // create a file 24: $filename = "$file_path/fscanf_variation40.tmp"; 25: $file_handle = fopen($filename, "w"); 26: if($file_handle == false) 27: exit("Error:failed to open file $filename"); 28: 29: // array of float type values 30: 31: $float_values = array ( 32: -2147483649, 33: 2147483648, 34: -0x80000001, // float value, beyond max negative int 35: 0x800000001, // float value, beyond max positive int 36: 020000000001, // float value, beyond max positive int 37: -020000000001, // float value, beyond max negative int 38: 0.0, 39: -0.1, 40: 1.0, 41: 1e5, 42: -1e6, 43: 1E8, 44: -1E9, 45: 10.0000000000000000005, 46: 10.5e+5 47: ); 48: 49: $unsigned_formats = array( "%u", "%hu", "%lu", "%Lu", " %u", "%u ", "% u", "\t%u", "\n%u", "%4u", "%30u", "%[0-9]", "%*u"); 50: 51: $counter = 1; 52: 53: // writing to the file 54: foreach($float_values as $value) { 55: @fprintf($file_handle, $value); 56: @fprintf($file_handle, "\n"); 57: } 58: // closing the file 59: fclose($file_handle); 60: 61: // opening the file for reading 62: $file_handle = fopen($filename, "r"); 63: if($file_handle == false) { 64: exit("Error:failed to open file $filename"); 65: } 66: 67: $counter = 1; 68: // reading the values from file using different unsigned formats 69: foreach($unsigned_formats as $unsigned_format) { 70: // rewind the file so that for every foreach iteration the file pointer starts from bof 71: rewind($file_handle); 72: echo "\n-- iteration $counter --\n"; 73: while( !feof($file_handle) ) { 74: var_dump( fscanf($file_handle,$unsigned_format) ); 75: } 76: $counter++; 77: } 78: 79: echo "\n*** Done ***"; 80: ?> 81: --CLEAN-- 82: <?php 83: $file_path = dirname(__FILE__); 84: $filename = "$file_path/fscanf_variation40.tmp"; 85: unlink($filename); 86: ?> 87: --EXPECTF-- 88: *** Test fscanf(): different unsigned format types with float values *** 89: 90: -- iteration 1 -- 91: array(1) { 92: [0]=> 93: int(2147483647) 94: } 95: array(1) { 96: [0]=> 97: string(10) "2147483648" 98: } 99: array(1) { 100: [0]=> 101: int(2147483647) 102: } 103: array(1) { 104: [0]=> 105: string(10) "4294967295" 106: } 107: array(1) { 108: [0]=> 109: string(10) "2147483649" 110: } 111: array(1) { 112: [0]=> 113: int(2147483647) 114: } 115: array(1) { 116: [0]=> 117: int(0) 118: } 119: array(1) { 120: [0]=> 121: int(0) 122: } 123: array(1) { 124: [0]=> 125: int(1) 126: } 127: array(1) { 128: [0]=> 129: int(100000) 130: } 131: array(1) { 132: [0]=> 133: string(10) "4293967296" 134: } 135: array(1) { 136: [0]=> 137: int(100000000) 138: } 139: array(1) { 140: [0]=> 141: string(10) "3294967296" 142: } 143: array(1) { 144: [0]=> 145: int(10) 146: } 147: array(1) { 148: [0]=> 149: int(1050000) 150: } 151: bool(false) 152: 153: -- iteration 2 -- 154: array(1) { 155: [0]=> 156: int(2147483647) 157: } 158: array(1) { 159: [0]=> 160: string(10) "2147483648" 161: } 162: array(1) { 163: [0]=> 164: int(2147483647) 165: } 166: array(1) { 167: [0]=> 168: string(10) "4294967295" 169: } 170: array(1) { 171: [0]=> 172: string(10) "2147483649" 173: } 174: array(1) { 175: [0]=> 176: int(2147483647) 177: } 178: array(1) { 179: [0]=> 180: int(0) 181: } 182: array(1) { 183: [0]=> 184: int(0) 185: } 186: array(1) { 187: [0]=> 188: int(1) 189: } 190: array(1) { 191: [0]=> 192: int(100000) 193: } 194: array(1) { 195: [0]=> 196: string(10) "4293967296" 197: } 198: array(1) { 199: [0]=> 200: int(100000000) 201: } 202: array(1) { 203: [0]=> 204: string(10) "3294967296" 205: } 206: array(1) { 207: [0]=> 208: int(10) 209: } 210: array(1) { 211: [0]=> 212: int(1050000) 213: } 214: bool(false) 215: 216: -- iteration 3 -- 217: array(1) { 218: [0]=> 219: int(2147483647) 220: } 221: array(1) { 222: [0]=> 223: string(10) "2147483648" 224: } 225: array(1) { 226: [0]=> 227: int(2147483647) 228: } 229: array(1) { 230: [0]=> 231: string(10) "4294967295" 232: } 233: array(1) { 234: [0]=> 235: string(10) "2147483649" 236: } 237: array(1) { 238: [0]=> 239: int(2147483647) 240: } 241: array(1) { 242: [0]=> 243: int(0) 244: } 245: array(1) { 246: [0]=> 247: int(0) 248: } 249: array(1) { 250: [0]=> 251: int(1) 252: } 253: array(1) { 254: [0]=> 255: int(100000) 256: } 257: array(1) { 258: [0]=> 259: string(10) "4293967296" 260: } 261: array(1) { 262: [0]=> 263: int(100000000) 264: } 265: array(1) { 266: [0]=> 267: string(10) "3294967296" 268: } 269: array(1) { 270: [0]=> 271: int(10) 272: } 273: array(1) { 274: [0]=> 275: int(1050000) 276: } 277: bool(false) 278: 279: -- iteration 4 -- 280: array(1) { 281: [0]=> 282: int(2147483647) 283: } 284: array(1) { 285: [0]=> 286: string(10) "2147483648" 287: } 288: array(1) { 289: [0]=> 290: int(2147483647) 291: } 292: array(1) { 293: [0]=> 294: string(10) "4294967295" 295: } 296: array(1) { 297: [0]=> 298: string(10) "2147483649" 299: } 300: array(1) { 301: [0]=> 302: int(2147483647) 303: } 304: array(1) { 305: [0]=> 306: int(0) 307: } 308: array(1) { 309: [0]=> 310: int(0) 311: } 312: array(1) { 313: [0]=> 314: int(1) 315: } 316: array(1) { 317: [0]=> 318: int(100000) 319: } 320: array(1) { 321: [0]=> 322: string(10) "4293967296" 323: } 324: array(1) { 325: [0]=> 326: int(100000000) 327: } 328: array(1) { 329: [0]=> 330: string(10) "3294967296" 331: } 332: array(1) { 333: [0]=> 334: int(10) 335: } 336: array(1) { 337: [0]=> 338: int(1050000) 339: } 340: bool(false) 341: 342: -- iteration 5 -- 343: array(1) { 344: [0]=> 345: int(2147483647) 346: } 347: array(1) { 348: [0]=> 349: string(10) "2147483648" 350: } 351: array(1) { 352: [0]=> 353: int(2147483647) 354: } 355: array(1) { 356: [0]=> 357: string(10) "4294967295" 358: } 359: array(1) { 360: [0]=> 361: string(10) "2147483649" 362: } 363: array(1) { 364: [0]=> 365: int(2147483647) 366: } 367: array(1) { 368: [0]=> 369: int(0) 370: } 371: array(1) { 372: [0]=> 373: int(0) 374: } 375: array(1) { 376: [0]=> 377: int(1) 378: } 379: array(1) { 380: [0]=> 381: int(100000) 382: } 383: array(1) { 384: [0]=> 385: string(10) "4293967296" 386: } 387: array(1) { 388: [0]=> 389: int(100000000) 390: } 391: array(1) { 392: [0]=> 393: string(10) "3294967296" 394: } 395: array(1) { 396: [0]=> 397: int(10) 398: } 399: array(1) { 400: [0]=> 401: int(1050000) 402: } 403: bool(false) 404: 405: -- iteration 6 -- 406: array(1) { 407: [0]=> 408: int(2147483647) 409: } 410: array(1) { 411: [0]=> 412: string(10) "2147483648" 413: } 414: array(1) { 415: [0]=> 416: int(2147483647) 417: } 418: array(1) { 419: [0]=> 420: string(10) "4294967295" 421: } 422: array(1) { 423: [0]=> 424: string(10) "2147483649" 425: } 426: array(1) { 427: [0]=> 428: int(2147483647) 429: } 430: array(1) { 431: [0]=> 432: int(0) 433: } 434: array(1) { 435: [0]=> 436: int(0) 437: } 438: array(1) { 439: [0]=> 440: int(1) 441: } 442: array(1) { 443: [0]=> 444: int(100000) 445: } 446: array(1) { 447: [0]=> 448: string(10) "4293967296" 449: } 450: array(1) { 451: [0]=> 452: int(100000000) 453: } 454: array(1) { 455: [0]=> 456: string(10) "3294967296" 457: } 458: array(1) { 459: [0]=> 460: int(10) 461: } 462: array(1) { 463: [0]=> 464: int(1050000) 465: } 466: bool(false) 467: 468: -- iteration 7 -- 469: 470: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 471: NULL 472: 473: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 474: NULL 475: 476: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 477: NULL 478: 479: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 480: NULL 481: 482: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 483: NULL 484: 485: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 486: NULL 487: 488: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 489: NULL 490: 491: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 492: NULL 493: 494: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 495: NULL 496: 497: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 498: NULL 499: 500: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 501: NULL 502: 503: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 504: NULL 505: 506: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 507: NULL 508: 509: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 510: NULL 511: 512: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 513: NULL 514: bool(false) 515: 516: -- iteration 8 -- 517: array(1) { 518: [0]=> 519: int(2147483647) 520: } 521: array(1) { 522: [0]=> 523: string(10) "2147483648" 524: } 525: array(1) { 526: [0]=> 527: int(2147483647) 528: } 529: array(1) { 530: [0]=> 531: string(10) "4294967295" 532: } 533: array(1) { 534: [0]=> 535: string(10) "2147483649" 536: } 537: array(1) { 538: [0]=> 539: int(2147483647) 540: } 541: array(1) { 542: [0]=> 543: int(0) 544: } 545: array(1) { 546: [0]=> 547: int(0) 548: } 549: array(1) { 550: [0]=> 551: int(1) 552: } 553: array(1) { 554: [0]=> 555: int(100000) 556: } 557: array(1) { 558: [0]=> 559: string(10) "4293967296" 560: } 561: array(1) { 562: [0]=> 563: int(100000000) 564: } 565: array(1) { 566: [0]=> 567: string(10) "3294967296" 568: } 569: array(1) { 570: [0]=> 571: int(10) 572: } 573: array(1) { 574: [0]=> 575: int(1050000) 576: } 577: bool(false) 578: 579: -- iteration 9 -- 580: array(1) { 581: [0]=> 582: int(2147483647) 583: } 584: array(1) { 585: [0]=> 586: string(10) "2147483648" 587: } 588: array(1) { 589: [0]=> 590: int(2147483647) 591: } 592: array(1) { 593: [0]=> 594: string(10) "4294967295" 595: } 596: array(1) { 597: [0]=> 598: string(10) "2147483649" 599: } 600: array(1) { 601: [0]=> 602: int(2147483647) 603: } 604: array(1) { 605: [0]=> 606: int(0) 607: } 608: array(1) { 609: [0]=> 610: int(0) 611: } 612: array(1) { 613: [0]=> 614: int(1) 615: } 616: array(1) { 617: [0]=> 618: int(100000) 619: } 620: array(1) { 621: [0]=> 622: string(10) "4293967296" 623: } 624: array(1) { 625: [0]=> 626: int(100000000) 627: } 628: array(1) { 629: [0]=> 630: string(10) "3294967296" 631: } 632: array(1) { 633: [0]=> 634: int(10) 635: } 636: array(1) { 637: [0]=> 638: int(1050000) 639: } 640: bool(false) 641: 642: -- iteration 10 -- 643: array(1) { 644: [0]=> 645: string(10) "4294967082" 646: } 647: array(1) { 648: [0]=> 649: int(2147) 650: } 651: array(1) { 652: [0]=> 653: string(10) "4294967082" 654: } 655: array(1) { 656: [0]=> 657: int(3435) 658: } 659: array(1) { 660: [0]=> 661: int(2147) 662: } 663: array(1) { 664: [0]=> 665: string(10) "4294967082" 666: } 667: array(1) { 668: [0]=> 669: int(0) 670: } 671: array(1) { 672: [0]=> 673: int(0) 674: } 675: array(1) { 676: [0]=> 677: int(1) 678: } 679: array(1) { 680: [0]=> 681: int(1000) 682: } 683: array(1) { 684: [0]=> 685: string(10) "4294967196" 686: } 687: array(1) { 688: [0]=> 689: int(1000) 690: } 691: array(1) { 692: [0]=> 693: string(10) "4294967196" 694: } 695: array(1) { 696: [0]=> 697: int(10) 698: } 699: array(1) { 700: [0]=> 701: int(1050) 702: } 703: bool(false) 704: 705: -- iteration 11 -- 706: array(1) { 707: [0]=> 708: int(2147483647) 709: } 710: array(1) { 711: [0]=> 712: string(10) "2147483648" 713: } 714: array(1) { 715: [0]=> 716: int(2147483647) 717: } 718: array(1) { 719: [0]=> 720: string(10) "4294967295" 721: } 722: array(1) { 723: [0]=> 724: string(10) "2147483649" 725: } 726: array(1) { 727: [0]=> 728: int(2147483647) 729: } 730: array(1) { 731: [0]=> 732: int(0) 733: } 734: array(1) { 735: [0]=> 736: int(0) 737: } 738: array(1) { 739: [0]=> 740: int(1) 741: } 742: array(1) { 743: [0]=> 744: int(100000) 745: } 746: array(1) { 747: [0]=> 748: string(10) "4293967296" 749: } 750: array(1) { 751: [0]=> 752: int(100000000) 753: } 754: array(1) { 755: [0]=> 756: string(10) "3294967296" 757: } 758: array(1) { 759: [0]=> 760: int(10) 761: } 762: array(1) { 763: [0]=> 764: int(1050000) 765: } 766: bool(false) 767: 768: -- iteration 12 -- 769: array(1) { 770: [0]=> 771: NULL 772: } 773: array(1) { 774: [0]=> 775: string(10) "2147483648" 776: } 777: array(1) { 778: [0]=> 779: NULL 780: } 781: array(1) { 782: [0]=> 783: string(11) "34359738369" 784: } 785: array(1) { 786: [0]=> 787: string(10) "2147483649" 788: } 789: array(1) { 790: [0]=> 791: NULL 792: } 793: array(1) { 794: [0]=> 795: string(1) "0" 796: } 797: array(1) { 798: [0]=> 799: NULL 800: } 801: array(1) { 802: [0]=> 803: string(1) "1" 804: } 805: array(1) { 806: [0]=> 807: string(6) "100000" 808: } 809: array(1) { 810: [0]=> 811: NULL 812: } 813: array(1) { 814: [0]=> 815: string(9) "100000000" 816: } 817: array(1) { 818: [0]=> 819: NULL 820: } 821: array(1) { 822: [0]=> 823: string(2) "10" 824: } 825: array(1) { 826: [0]=> 827: string(7) "1050000" 828: } 829: bool(false) 830: 831: -- iteration 13 -- 832: array(0) { 833: } 834: array(0) { 835: } 836: array(0) { 837: } 838: array(0) { 839: } 840: array(0) { 841: } 842: array(0) { 843: } 844: array(0) { 845: } 846: array(0) { 847: } 848: array(0) { 849: } 850: array(0) { 851: } 852: array(0) { 853: } 854: array(0) { 855: } 856: array(0) { 857: } 858: array(0) { 859: } 860: array(0) { 861: } 862: bool(false) 863: 864: *** Done *** 865: