Attempt to sort directory files before zipping

Bug: b/299402277
Change-Id: I32ee6a3ea8e7376713c44214995a6b89c0512ce9
diff --git a/src/main/java/com/android/tools/r8/utils/ZipUtils.java b/src/main/java/com/android/tools/r8/utils/ZipUtils.java
index 5d74954..e02d3e0 100644
--- a/src/main/java/com/android/tools/r8/utils/ZipUtils.java
+++ b/src/main/java/com/android/tools/r8/utils/ZipUtils.java
@@ -149,6 +149,7 @@
     List<Path> files =
         Files.walk(inputDirectory)
             .filter(path -> !Files.isDirectory(path))
+            .sorted()
             .collect(Collectors.toList());
     zip(zipFile, inputDirectory, files);
   }
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversionTest.java
index fc8552b..0b6ff7e 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/customconversion/GenerateCustomConversionTest.java
@@ -7,6 +7,7 @@
 import static com.android.tools.r8.desugar.desugaredlibrary.DesugaredLibraryTestBase.getAllFilesWithSuffixInDirectory;
 import static com.android.tools.r8.utils.FileUtils.CLASS_EXTENSION;
 import static com.android.tools.r8.utils.FileUtils.JAVA_EXTENSION;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.JavaCompilerTool;
@@ -14,18 +15,16 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.TestRuntime;
-import com.android.tools.r8.TestRuntime.CfVm;
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.CustomConversionVersion;
-import com.google.common.collect.Sets;
-import com.google.common.collect.Sets.SetView;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Enumeration;
-import java.util.Set;
+import java.util.List;
 import java.util.stream.Stream;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
@@ -39,15 +38,13 @@
 @RunWith(Parameterized.class)
 public class GenerateCustomConversionTest extends TestBase {
 
-  private final TestParameters parameters;
-
   @Parameters(name = "{0}")
   public static TestParametersCollection data() {
-    return getTestParameters().withCfRuntime(CfVm.JDK11).build();
+    return getTestParameters().withNoneRuntime().build();
   }
 
   public GenerateCustomConversionTest(TestParameters parameters) {
-    this.parameters = parameters;
+    parameters.assertNoneRuntime();
   }
 
   @Test
@@ -70,7 +67,7 @@
       Path thirdPartyFile = ToolHelper.getDesugarLibConversions(version);
       uploadJarsToCloudStorageIfTestFails(
           (file1, file2) -> {
-            verifySameFilesInJar(file1, file2);
+            verifySameFilesInJarInSameOrder(file1, file2);
             assertProgramsEqual(file1, file2);
             return filesAreEqual(file1, file2);
           },
@@ -79,26 +76,22 @@
     }
   }
 
-  private static void verifySameFilesInJar(Path file1, Path file2) throws IOException {
+  private static void verifySameFilesInJarInSameOrder(Path file1, Path file2) throws IOException {
     try (ZipFile zipFile1 = new ZipFile(file1.toFile())) {
       try (ZipFile zipFile2 = new ZipFile(file2.toFile())) {
         Enumeration<? extends ZipEntry> entries1 = zipFile1.entries();
-        Enumeration<? extends ZipEntry> entries2 = zipFile2.entries();
-        Set<String> s1 = Sets.newHashSet();
+        List<String> s1 = new ArrayList<>();
         while (entries1.hasMoreElements()) {
           ZipEntry entry = entries1.nextElement();
           s1.add(entry.getName());
         }
-        Set<String> s2 = Sets.newHashSet();
+        Enumeration<? extends ZipEntry> entries2 = zipFile2.entries();
+        List<String> s2 = new ArrayList<>();
         while (entries2.hasMoreElements()) {
           ZipEntry entry = entries2.nextElement();
           s2.add(entry.getName());
         }
-        SetView<String> intersection = Sets.intersection(s1, s2);
-        Set<String> inter = Sets.newHashSet(intersection);
-        s1.removeAll(inter);
-        s2.removeAll(inter);
-        assert s1.isEmpty() && s2.isEmpty() : "Extra files in " + s1 + " or " + s2;
+        assertEquals(s1, s2);
       }
     }
   }