bug71317-duplicate-filename.phpt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. --TEST--
  2. Bug #71317: regression in opening tar based phar files
  3. --EXTENSIONS--
  4. phar
  5. zlib
  6. --FILE--
  7. <?php
  8. include __DIR__ . '/files/tarmaker.php.inc';
  9. $testDirectory = __DIR__ . '/files/test_bug71317';
  10. $testTarFilename = __DIR__ . '/files/test_bug71317.tar';
  11. $tar = new tarmaker($testTarFilename, 'none');
  12. $tar->init();
  13. $tar->addFile('file1.txt', 'file1');
  14. $tar->addFile('file2.txt', 'file2');
  15. $tar->addFile('file3.txt', 'file3');
  16. $tar->addFile('file4.txt', 'file4');
  17. $tar->addFile('file5.txt', 'file5');
  18. $tar->addFile('file2.txt', 'file2a');
  19. $tar->close();
  20. $fname = str_replace('\\', '/', $testTarFilename);
  21. try {
  22. mkdir($testDirectory);
  23. $tar = new PharData($fname);
  24. $tar->extractTo($testDirectory);
  25. $fileContent = file_get_contents($testDirectory . '/file2.txt');
  26. $expectedContent = 'file2a';
  27. if ($fileContent !== $expectedContent) {
  28. throw new Exception(sprintf('Contents of file2.txt ("%s") is invalid, expected "%s"', $fileContent, $expectedContent));
  29. }
  30. } catch(Exception $e) {
  31. echo $e->getMessage() . "\n";
  32. }
  33. ?>
  34. ===DONE===
  35. --CLEAN--
  36. <?php
  37. $testDirectory = __DIR__ . '/files/test_bug71317';
  38. $testTarFilename = __DIR__ . '/files/test_bug71317.tar';
  39. unlink($testTarFilename);
  40. array_map('unlink', glob($testDirectory . "/*.txt"));
  41. rmdir($testDirectory);
  42. ?>
  43. --EXPECT--
  44. ===DONE===