Add jar sorting to zip2zip
Jars have a strange sorting order; the META-INF/ directory should
come first, then META-INF/MANIFEST.MF, then any other files in
META-INF/, and then any files outside META-INF. Add a -j argument
to zip2zip that sorts using jar ordering.
Test: zip2zip_test
Change-Id: I80e2bc7e284ef74f6561c26cb6541298834db1bc
diff --git a/cmd/zip2zip/zip2zip_test.go b/cmd/zip2zip/zip2zip_test.go
index 7f2e31a..2b5b562 100644
--- a/cmd/zip2zip/zip2zip_test.go
+++ b/cmd/zip2zip/zip2zip_test.go
@@ -28,6 +28,7 @@
inputFiles []string
sortGlobs bool
+ sortJava bool
args []string
outputFiles []string
@@ -116,6 +117,35 @@
},
},
{
+ name: "sort jar",
+
+ inputFiles: []string{
+ "MANIFEST.MF",
+ "META-INF/MANIFEST.MF",
+ "META-INF/aaa/",
+ "META-INF/aaa/aaa",
+ "META-INF/AAA",
+ "META-INF.txt",
+ "META-INF/",
+ "AAA",
+ "aaa",
+ },
+ sortJava: true,
+ args: nil,
+
+ outputFiles: []string{
+ "META-INF/",
+ "META-INF/MANIFEST.MF",
+ "META-INF/AAA",
+ "META-INF/aaa/",
+ "META-INF/aaa/aaa",
+ "AAA",
+ "MANIFEST.MF",
+ "META-INF.txt",
+ "aaa",
+ },
+ },
+ {
name: "double input",
inputFiles: []string{
@@ -161,7 +191,7 @@
}
outputWriter := zip.NewWriter(outputBuf)
- err = zip2zip(inputReader, outputWriter, testCase.sortGlobs, false, testCase.args)
+ err = zip2zip(inputReader, outputWriter, testCase.sortGlobs, testCase.sortJava, false, testCase.args)
if errorString(testCase.err) != errorString(err) {
t.Fatalf("Unexpected error:\n got: %q\nwant: %q", errorString(err), errorString(testCase.err))
}