diff --git a/SWCompression.xcodeproj/project.pbxproj b/SWCompression.xcodeproj/project.pbxproj index e77d1bb1..f75717e6 100644 --- a/SWCompression.xcodeproj/project.pbxproj +++ b/SWCompression.xcodeproj/project.pbxproj @@ -61,6 +61,7 @@ 06912BD21F5C8F3D0070BB60 /* Deflate+Lengths.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06912BD11F5C8F3D0070BB60 /* Deflate+Lengths.swift */; }; 0694A74D1F7C0DF00023BC99 /* BurrowsWheeler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0694A74C1F7C0DF00023BC99 /* BurrowsWheeler.swift */; }; 06955E491F65C761004D5D79 /* BZip2+Lengths.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06955E481F65C761004D5D79 /* BZip2+Lengths.swift */; }; + 0698B10B2104E11200A7C551 /* test_gnu_inc_format.tar in Resources */ = {isa = PBXBuildFile; fileRef = 0698B10A2104E11200A7C551 /* test_gnu_inc_format.tar */; }; 069AC20D1E02DB1D0041AC13 /* LZMA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 069AC20C1E02DB1D0041AC13 /* LZMA.swift */; }; 069D0FF01E0D6CB600D8AA87 /* LZMARangeDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 069D0FEF1E0D6CB600D8AA87 /* LZMARangeDecoder.swift */; }; 069D0FF51E0D6CD000D8AA87 /* LZMABitTreeDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 069D0FF41E0D6CD000D8AA87 /* LZMABitTreeDecoder.swift */; }; @@ -269,6 +270,7 @@ 06912BD11F5C8F3D0070BB60 /* Deflate+Lengths.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Deflate+Lengths.swift"; sourceTree = ""; }; 0694A74C1F7C0DF00023BC99 /* BurrowsWheeler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BurrowsWheeler.swift; sourceTree = ""; }; 06955E481F65C761004D5D79 /* BZip2+Lengths.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "BZip2+Lengths.swift"; sourceTree = ""; }; + 0698B10A2104E11200A7C551 /* test_gnu_inc_format.tar */ = {isa = PBXFileReference; lastKnownFileType = archive.tar; path = test_gnu_inc_format.tar; sourceTree = ""; }; 069AC20C1E02DB1D0041AC13 /* LZMA.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LZMA.swift; path = Sources/LZMA/LZMA.swift; sourceTree = SOURCE_ROOT; }; 069D0FEF1E0D6CB600D8AA87 /* LZMARangeDecoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LZMARangeDecoder.swift; sourceTree = ""; }; 069D0FF41E0D6CD000D8AA87 /* LZMABitTreeDecoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LZMABitTreeDecoder.swift; sourceTree = ""; }; @@ -756,6 +758,7 @@ 06F065F01FFB763300312A82 /* test_win.tar */, 064D01AB20FD077D00CAE058 /* test_unicode_pax.tar */, 064D01AA20FD077D00CAE058 /* test_unicode_ustar.tar */, + 0698B10A2104E11200A7C551 /* test_gnu_inc_format.tar */, ); path = TAR; sourceTree = ""; @@ -946,6 +949,7 @@ 06F066271FFB763400312A82 /* test6.answer in Resources */, 06F066321FFB763400312A82 /* test.zlib in Resources */, 06F066671FFB763400312A82 /* test2.7z in Resources */, + 0698B10B2104E11200A7C551 /* test_gnu_inc_format.tar in Resources */, 06F0661F1FFB763300312A82 /* test3.answer in Resources */, 06F066281FFB763400312A82 /* test5.gz in Resources */, 064D01AC20FD077D00CAE058 /* test_unicode_ustar.tar in Resources */, diff --git a/Tests/TarTests.swift b/Tests/TarTests.swift index db1b43f5..491d85a1 100644 --- a/Tests/TarTests.swift +++ b/Tests/TarTests.swift @@ -285,4 +285,24 @@ class TarTests: XCTestCase { XCTAssertEqual(entries[0].data, answerData) } + func testGnuIncrementalFormat() throws { + guard let testData = Constants.data(forTest: "test_gnu_inc_format", withType: TarTests.testType) else { + XCTFail("Unable to get test data.") + return + } + + let entries = try TarContainer.open(container: testData) + + XCTAssertEqual(entries.count, 3) + + for entry in entries { + XCTAssertEqual(entry.info.ownerID, 501) + XCTAssertEqual(entry.info.groupID, 20) + XCTAssertEqual(entry.info.ownerUserName, "timofeysolomko") + XCTAssertEqual(entry.info.ownerGroupName, "staff") + XCTAssertNotNil(entry.info.accessTime) + XCTAssertNotNil(entry.info.creationTime) + } + } + } diff --git a/Tests/Test Files b/Tests/Test Files index f7d8cea0..7792ed68 160000 --- a/Tests/Test Files +++ b/Tests/Test Files @@ -1 +1 @@ -Subproject commit f7d8cea03368795c3caa31a6817265224ff92f79 +Subproject commit 7792ed68446a2fc17e941641d7d0fe1246f436d5