inflate_get_status.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. --TEST--
  2. inflate_get_status()
  3. --SKIPIF--
  4. <?php if (!extension_loaded("zlib")) print "skip"; ?>
  5. --FILE--
  6. <?php
  7. $uncompressed = "Hello world.";
  8. $random_junk = str_repeat("qebsouesl", 128);
  9. $compressed = zlib_encode($uncompressed, ZLIB_ENCODING_DEFLATE);
  10. $compressed_len = strlen($compressed);
  11. $compressed .= $random_junk;
  12. $ctx = inflate_init(ZLIB_ENCODING_DEFLATE);
  13. $status = inflate_get_status($ctx);
  14. $buf = '';
  15. for ($i = 0; $status == ZLIB_OK; ++$i)
  16. {
  17. $buf .= inflate_add($ctx, substr($compressed, $i, 1));
  18. echo '$i = ' . $i . ', ';
  19. $status = inflate_get_status($ctx);
  20. echo 'Status: ' . $status;
  21. echo "\n";
  22. }
  23. echo '$buf = ' . $buf;
  24. echo "\n\n";
  25. echo "Adding more data should reset the stream and result in a Z_OK (ZLIB_OK) status.\n";
  26. inflate_add($ctx, substr($compressed, 0, 12));
  27. echo 'Status: ' . inflate_get_status($ctx);
  28. ?>
  29. --EXPECT--
  30. $i = 0, Status: 0
  31. $i = 1, Status: 0
  32. $i = 2, Status: 0
  33. $i = 3, Status: 0
  34. $i = 4, Status: 0
  35. $i = 5, Status: 0
  36. $i = 6, Status: 0
  37. $i = 7, Status: 0
  38. $i = 8, Status: 0
  39. $i = 9, Status: 0
  40. $i = 10, Status: 0
  41. $i = 11, Status: 0
  42. $i = 12, Status: 0
  43. $i = 13, Status: 0
  44. $i = 14, Status: 0
  45. $i = 15, Status: 0
  46. $i = 16, Status: 0
  47. $i = 17, Status: 0
  48. $i = 18, Status: 0
  49. $i = 19, Status: 1
  50. $buf = Hello world.
  51. Adding more data should reset the stream and result in a Z_OK (ZLIB_OK) status.
  52. Status: 0