@@ -393,4 +393,65 @@ class SevenZipTests: XCTestCase {
393393 XCTAssertEqual ( entries [ 0 ] . data, answerData)
394394 }
395395
396+ func testFormatMinorVersions( ) throws {
397+ let answerData = try Constants . data ( forAnswer: " test2 " )
398+
399+ var testData = try Constants . data ( forTest: " test_minor_version_2 " , withType: SevenZipTests . testType)
400+ var entries = try SevenZipContainer . open ( container: testData)
401+
402+ XCTAssertEqual ( entries. count, 1 )
403+ XCTAssertEqual ( entries [ 0 ] . info. name, " test2.answer " )
404+ XCTAssertEqual ( entries [ 0 ] . info. type, . regular)
405+ XCTAssertEqual ( entries [ 0 ] . info. size, answerData. count)
406+ XCTAssertEqual ( entries [ 0 ] . info. permissions, Permissions ( rawValue: 0 ) )
407+ XCTAssertEqual ( entries [ 0 ] . info. dosAttributes, DosAttributes ( rawValue: 0x20 ) )
408+ // Checking times' values is a bit difficult since they are extremely precise.
409+ XCTAssertNotNil ( entries [ 0 ] . info. modificationTime)
410+ XCTAssertNil ( entries [ 0 ] . info. accessTime)
411+ XCTAssertNil ( entries [ 0 ] . info. creationTime)
412+ XCTAssertEqual ( entries [ 0 ] . info. hasStream, true )
413+ XCTAssertEqual ( entries [ 0 ] . info. isEmpty, false )
414+ XCTAssertEqual ( entries [ 0 ] . info. isAnti, false )
415+ XCTAssertEqual ( entries [ 0 ] . info. crc, 4168830779 )
416+ XCTAssertEqual ( entries [ 0 ] . data, answerData)
417+
418+ testData = try Constants . data ( forTest: " test_minor_version_3 " , withType: SevenZipTests . testType)
419+ entries = try SevenZipContainer . open ( container: testData)
420+
421+ XCTAssertEqual ( entries. count, 1 )
422+ XCTAssertEqual ( entries [ 0 ] . info. name, " test2.answer " )
423+ XCTAssertEqual ( entries [ 0 ] . info. type, . regular)
424+ XCTAssertEqual ( entries [ 0 ] . info. size, answerData. count)
425+ XCTAssertEqual ( entries [ 0 ] . info. permissions, Permissions ( rawValue: 420 ) )
426+ XCTAssertEqual ( entries [ 0 ] . info. dosAttributes, DosAttributes ( rawValue: 0x20 ) )
427+ // Checking times' values is a bit difficult since they are extremely precise.
428+ XCTAssertNotNil ( entries [ 0 ] . info. modificationTime)
429+ XCTAssertNotNil ( entries [ 0 ] . info. accessTime)
430+ XCTAssertNotNil ( entries [ 0 ] . info. creationTime)
431+ XCTAssertEqual ( entries [ 0 ] . info. hasStream, true )
432+ XCTAssertEqual ( entries [ 0 ] . info. isEmpty, false )
433+ XCTAssertEqual ( entries [ 0 ] . info. isAnti, false )
434+ XCTAssertEqual ( entries [ 0 ] . info. crc, 4168830779 )
435+ XCTAssertEqual ( entries [ 0 ] . data, answerData)
436+
437+ testData = try Constants . data ( forTest: " test_minor_version_4 " , withType: SevenZipTests . testType)
438+ entries = try SevenZipContainer . open ( container: testData)
439+
440+ XCTAssertEqual ( entries. count, 1 )
441+ XCTAssertEqual ( entries [ 0 ] . info. name, " test2.answer " )
442+ XCTAssertEqual ( entries [ 0 ] . info. type, . regular)
443+ XCTAssertEqual ( entries [ 0 ] . info. size, answerData. count)
444+ XCTAssertEqual ( entries [ 0 ] . info. permissions, Permissions ( rawValue: 420 ) )
445+ XCTAssertEqual ( entries [ 0 ] . info. dosAttributes, DosAttributes ( rawValue: 0x20 ) )
446+ // Checking times' values is a bit difficult since they are extremely precise.
447+ XCTAssertNotNil ( entries [ 0 ] . info. modificationTime)
448+ XCTAssertNotNil ( entries [ 0 ] . info. accessTime)
449+ XCTAssertNotNil ( entries [ 0 ] . info. creationTime)
450+ XCTAssertEqual ( entries [ 0 ] . info. hasStream, true )
451+ XCTAssertEqual ( entries [ 0 ] . info. isEmpty, false )
452+ XCTAssertEqual ( entries [ 0 ] . info. isAnti, false )
453+ XCTAssertEqual ( entries [ 0 ] . info. crc, 4168830779 )
454+ XCTAssertEqual ( entries [ 0 ] . data, answerData)
455+ }
456+
396457}
0 commit comments