bug80384.phpt 664 B

12345678910111213141516171819202122232425262728
  1. --TEST--
  2. Bug #80384 large reads cause filters to internally buffer large amounts of memory
  3. --FILE--
  4. <?php
  5. /* First, create a file to read */
  6. $tmp_filename = __DIR__ . "/bug80384.tmp";
  7. $fp = fopen($tmp_filename, 'w');
  8. for ($i=0; $i<1024; $i++) {
  9. fwrite($fp, str_repeat('ABCDEFGH', 1024));
  10. }
  11. fclose($fp);
  12. /* Stream the file through a filter */
  13. $fp = fopen($tmp_filename, 'r');
  14. $filter = stream_filter_append($fp, "string.rot13");
  15. $mem_start = memory_get_usage();
  16. fread($fp, 8 * 1024 * 1024);
  17. $mem_final = memory_get_usage();
  18. fclose($fp);
  19. var_dump($mem_final - $mem_start < 32768);
  20. ?>
  21. --CLEAN--
  22. <?php
  23. unlink(__DIR__ . "/bug80384.tmp");
  24. ?>
  25. --EXPECT--
  26. bool(true)