ftruncate_bug76422.phpt 667 B

123456789101112131415161718192021222324252627282930313233343536
  1. --TEST--
  2. Bug #76422 ftruncate fails on files > 2GB
  3. --SKIPIF--
  4. <?php
  5. if (PHP_INT_SIZE < 8) {
  6. die('skip.. only valid for 64-bit');
  7. }
  8. ?>
  9. --FILE--
  10. <?php
  11. $fn = dirname(__FILE__) . DIRECTORY_SEPARATOR . "test76422";
  12. $file_handle = fopen($fn,'cb');
  13. if (false === $file_handle) {
  14. die('Cannot open test file :/');
  15. }
  16. $truncate_offset = 4 * 1024 * 1024 * 1024 + 1;
  17. $ftruncate_result = ftruncate($file_handle, $truncate_offset);
  18. if (false === $ftruncate_result) {
  19. die('Truncate has failed :/');
  20. }
  21. fclose($file_handle);
  22. var_dump(filesize($fn) >= $truncate_offset);
  23. ?>
  24. --CLEAN--
  25. <?php
  26. $fn = dirname(__FILE__) . "/test76422";
  27. unlink($fn);
  28. ?>
  29. --EXPECT--
  30. bool(true)