| 591 | } |
| 592 | |
| 593 | fun validateZeroCompressedArchive(source: Path, destination: Path) { |
| 594 | ZipFile(source.toFile()).use { sourceZip -> |
| 595 | ZipFile(destination.toFile()).use { destinationZip -> |
| 596 | val sourceEntries = sourceZip.entries().asSequence().map { it.name }.toSet() |
| 597 | val destinationEntries = destinationZip.entries().asSequence().toList() |
| 598 | val destinationEntryNames = destinationEntries.map { it.name }.toSet() |
| 599 | |
| 600 | require(sourceEntries == destinationEntryNames) { |
| 601 | "Entry mismatch after zero-compressing $source" |
| 602 | } |
| 603 | |
| 604 | val compressedEntry = |
| 605 | destinationEntries.firstOrNull { !it.isDirectory && it.method != ZipEntry.STORED } |
| 606 | |
| 607 | require(compressedEntry == null) { |
| 608 | "Archive entry was not zero-compressed in $destination: ${compressedEntry?.name}" |
| 609 | } |
| 610 | } |
| 611 | } |
| 612 | } |