bug77022.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. --TEST--
  2. Phar: Bug #77022: PharData always creates new files with mode 0666
  3. --EXTENSIONS--
  4. phar
  5. --SKIPIF--
  6. <?php
  7. if (defined("PHP_WINDOWS_VERSION_MAJOR")) die("skip not for Windows")
  8. ?>
  9. --FILE--
  10. <?php
  11. umask(022);
  12. var_dump(decoct(umask()));
  13. $sFile = tempnam(__DIR__, 'test77022');
  14. var_dump(decoct(stat($sFile)['mode']));
  15. foreach([Phar::TAR => 'tar', Phar::ZIP => 'zip'] as $format => $ext) {
  16. clearstatcache();
  17. $phar = new PharData(__DIR__ . '/test77022.' . $ext, format: $format);
  18. $phar->addFile($sFile, 'test-file-phar');
  19. $phar->addFromString("test-from-string", 'test-file-phar');
  20. $phar->extractTo(__DIR__);
  21. var_dump(decoct(stat(__DIR__ . '/test-file-phar')['mode']));
  22. var_dump(decoct(stat(__DIR__ . '/test-from-string')['mode']));
  23. unlink(__DIR__ . '/test-file-phar');
  24. unlink(__DIR__ . '/test-from-string');
  25. unlink(__DIR__ . '/test77022.' . $ext);
  26. }
  27. unlink($sFile);
  28. ?>
  29. --EXPECT--
  30. string(2) "22"
  31. string(6) "100600"
  32. string(6) "100600"
  33. string(6) "100644"
  34. string(6) "100600"
  35. string(6) "100644"