[KeepAnno] Refactor tests to a single parameterized test.

Bug: b/248408342
Change-Id: If75dfb7cc757b2f4348e7f0fa458739863e9c5ed
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java
new file mode 100644
index 0000000..fcdab96
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java
@@ -0,0 +1,218 @@
+// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.keepanno;
+
+import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assume.assumeTrue;
+
+import com.android.tools.r8.JavaCompilerTool;
+import com.android.tools.r8.TestBase;
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.keepanno.annotations.KeepConstants.Edge;
+import com.android.tools.r8.keepanno.asm.KeepEdgeReader;
+import com.android.tools.r8.keepanno.asm.KeepEdgeWriter;
+import com.android.tools.r8.keepanno.ast.KeepEdge;
+import com.android.tools.r8.keepanno.keeprules.KeepRuleExtractor;
+import com.android.tools.r8.keepanno.processor.KeepEdgeProcessor;
+import com.android.tools.r8.keepanno.testsource.KeepClassAndDefaultConstructorSource;
+import com.android.tools.r8.keepanno.testsource.KeepFieldSource;
+import com.android.tools.r8.keepanno.testsource.KeepSourceEdges;
+import com.android.tools.r8.references.ClassReference;
+import com.android.tools.r8.references.Reference;
+import com.android.tools.r8.transformers.ClassTransformer;
+import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.ZipUtils;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.google.common.collect.ImmutableList;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.objectweb.asm.AnnotationVisitor;
+
+@RunWith(Parameterized.class)
+public class KeepEdgeAnnotationsTest extends TestBase {
+
+  private static class ParamWrapper {
+    private final Class<?> clazz;
+    private final TestParameters params;
+
+    public ParamWrapper(Class<?> clazz, TestParameters params) {
+      this.clazz = clazz;
+      this.params = params;
+    }
+
+    @Override
+    public String toString() {
+      return clazz.getSimpleName() + ", " + params.toString();
+    }
+  }
+
+  private static final Path KEEP_ANNO_PATH =
+      Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "keepanno");
+
+  private static List<Class<?>> getTestClasses() {
+    return ImmutableList.of(KeepClassAndDefaultConstructorSource.class, KeepFieldSource.class);
+  }
+
+  private final TestParameters parameters;
+  private final Class<?> source;
+
+  @Parameterized.Parameters(name = "{0}")
+  public static List<ParamWrapper> data() {
+    TestParametersCollection params =
+        getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build();
+    return getTestClasses().stream()
+        .flatMap(c -> params.stream().map(p -> new ParamWrapper(c, p)))
+        .collect(Collectors.toList());
+  }
+
+  public KeepEdgeAnnotationsTest(ParamWrapper wrapper) {
+    this.parameters = wrapper.params;
+    this.source = wrapper.clazz;
+  }
+
+  private String getExpected() {
+    return KeepSourceEdges.getExpected(source);
+  }
+
+  @Test
+  public void testProcessorClassfiles() throws Exception {
+    assumeTrue(parameters.isCfRuntime());
+    Path out =
+        JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
+            .addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
+            .addClasspathFiles(KEEP_ANNO_PATH)
+            .addClassNames(Collections.singletonList(typeName(source)))
+            .addClasspathFiles(Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "test"))
+            .addClasspathFiles(ToolHelper.DEPS)
+            .compile();
+
+    CodeInspector inspector = new CodeInspector(out);
+    checkSynthesizedKeepEdgeClass(inspector, out);
+    // The source is added as a classpath name but not part of the compilation unit output.
+    assertThat(inspector.clazz(source), isAbsent());
+
+    testForJvm()
+        .addProgramClassesAndInnerClasses(source)
+        .addProgramFiles(out)
+        .run(parameters.getRuntime(), source)
+        .assertSuccessWithOutput(getExpected());
+  }
+
+  @Test
+  public void testProcessorJavaSource() throws Exception {
+    assumeTrue(parameters.isCfRuntime());
+    Path out =
+        JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
+            .addSourceFiles(ToolHelper.getSourceFileForTestClass(source))
+            .addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
+            .addClasspathFiles(KEEP_ANNO_PATH)
+            .addClasspathFiles(ToolHelper.DEPS)
+            .compile();
+    testForJvm()
+        .addProgramFiles(out)
+        .run(parameters.getRuntime(), source)
+        .assertSuccessWithOutput(getExpected())
+        .inspect(
+            inspector -> {
+              assertThat(inspector.clazz(source), isPresent());
+              checkSynthesizedKeepEdgeClass(inspector, out);
+            });
+  }
+
+  @Test
+  public void testAsmReader() throws Exception {
+    assumeTrue(parameters.isCfRuntime());
+    Set<KeepEdge> expectedEdges = KeepSourceEdges.getExpectedEdges(source);
+    ClassReference clazz = Reference.classFromClass(source);
+    // Original bytes of the test class.
+    byte[] original = ToolHelper.getClassAsBytes(source);
+    // Strip out all the annotations to ensure they are actually added again.
+    byte[] stripped =
+        transformer(source)
+            .addClassTransformer(
+                new ClassTransformer() {
+                  @Override
+                  public AnnotationVisitor visitAnnotation(String descriptor, boolean visible) {
+                    // Ignore all input annotations.
+                    return null;
+                  }
+                })
+            .transform();
+    // Manually add in the expected edges again.
+    byte[] readded =
+        transformer(stripped, clazz)
+            .addClassTransformer(
+                new ClassTransformer() {
+
+                  @Override
+                  public void visitEnd() {
+                    for (KeepEdge edge : expectedEdges) {
+                      KeepEdgeWriter.writeEdge(edge, super::visitAnnotation);
+                    }
+                    super.visitEnd();
+                  }
+                })
+            .transform();
+
+    // Read the edges from each version.
+    Set<KeepEdge> originalEdges = KeepEdgeReader.readKeepEdges(original);
+    Set<KeepEdge> strippedEdges = KeepEdgeReader.readKeepEdges(stripped);
+    Set<KeepEdge> readdedEdges = KeepEdgeReader.readKeepEdges(readded);
+
+    // The edges are compared to the "expected" ast to ensure we don't hide failures in reading or
+    // writing.
+    assertEquals(Collections.emptySet(), strippedEdges);
+    assertEquals(expectedEdges, originalEdges);
+    assertEquals(expectedEdges, readdedEdges);
+  }
+
+  @Test
+  public void testExtractAndRun() throws Exception {
+    List<String> rules = getKeepRulesForClass(source);
+    testForR8(parameters.getBackend())
+        .addClasspathFiles(KEEP_ANNO_PATH)
+        .addProgramClassesAndInnerClasses(source)
+        .addKeepRules(rules)
+        .addKeepMainRule(source)
+        .setMinApi(parameters.getApiLevel())
+        .run(parameters.getRuntime(), source)
+        .assertSuccessWithOutput(getExpected());
+  }
+
+  private List<String> getKeepRulesForClass(Class<?> clazz) throws IOException {
+    Set<KeepEdge> keepEdges = KeepEdgeReader.readKeepEdges(ToolHelper.getClassAsBytes(clazz));
+    List<String> rules = new ArrayList<>();
+    KeepRuleExtractor extractor = new KeepRuleExtractor(rules::add);
+    keepEdges.forEach(extractor::extract);
+    return rules;
+  }
+
+  private void checkSynthesizedKeepEdgeClass(CodeInspector inspector, Path data)
+      throws IOException {
+    String synthesizedEdgesClassName =
+        KeepEdgeProcessor.getClassTypeNameForSynthesizedEdges(source.getTypeName());
+    ClassSubject synthesizedEdgesClass = inspector.clazz(synthesizedEdgesClassName);
+    assertThat(synthesizedEdgesClass, isPresent());
+    assertThat(synthesizedEdgesClass.annotation(Edge.CLASS.getTypeName()), isPresent());
+    String entry = ZipUtils.zipEntryNameForClass(synthesizedEdgesClass.getFinalReference());
+    byte[] bytes = ZipUtils.readSingleEntry(data, entry);
+    Set<KeepEdge> keepEdges = KeepEdgeReader.readKeepEdges(bytes);
+    assertEquals(KeepSourceEdges.getExpectedEdges(source), keepEdges);
+  }
+}
diff --git a/src/test/java/com/android/tools/r8/keepanno/asm/KeepEdgeAsmTest.java b/src/test/java/com/android/tools/r8/keepanno/asm/KeepEdgeAsmTest.java
deleted file mode 100644
index b9ebfa2..0000000
--- a/src/test/java/com/android/tools/r8/keepanno/asm/KeepEdgeAsmTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.keepanno.asm;
-
-import static org.junit.Assert.assertEquals;
-
-import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.keepanno.ast.KeepEdge;
-import com.android.tools.r8.keepanno.testsource.KeepClassAndDefaultConstructorSource;
-import com.android.tools.r8.keepanno.testsource.KeepSourceEdges;
-import com.android.tools.r8.references.ClassReference;
-import com.android.tools.r8.references.Reference;
-import com.android.tools.r8.transformers.ClassTransformer;
-import java.util.Collections;
-import java.util.Set;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.objectweb.asm.AnnotationVisitor;
-
-@RunWith(Parameterized.class)
-public class KeepEdgeAsmTest extends TestBase {
-
-  private static final Class<?> SOURCE = KeepClassAndDefaultConstructorSource.class;
-
-  @Parameterized.Parameters(name = "{0}")
-  public static TestParametersCollection data() {
-    return getTestParameters().withNoneRuntime().build();
-  }
-
-  public KeepEdgeAsmTest(TestParameters parameters) {
-    parameters.assertNoneRuntime();
-  }
-
-  @Test
-  public void testAsmReader() throws Exception {
-    Set<KeepEdge> expectedEdges = KeepSourceEdges.getExpectedEdges(SOURCE);
-    ClassReference clazz = Reference.classFromClass(SOURCE);
-    // Original bytes of the test class.
-    byte[] original = ToolHelper.getClassAsBytes(SOURCE);
-    // Strip out all the annotations to ensure they are actually added again.
-    byte[] stripped =
-        transformer(SOURCE)
-            .addClassTransformer(
-                new ClassTransformer() {
-                  @Override
-                  public AnnotationVisitor visitAnnotation(String descriptor, boolean visible) {
-                    // Ignore all input annotations.
-                    return null;
-                  }
-                })
-            .transform();
-    // Manually add in the expected edges again.
-    byte[] readded =
-        transformer(stripped, clazz)
-            .addClassTransformer(
-                new ClassTransformer() {
-
-                  @Override
-                  public void visitEnd() {
-                    for (KeepEdge edge : expectedEdges) {
-                      KeepEdgeWriter.writeEdge(edge, super::visitAnnotation);
-                    }
-                    super.visitEnd();
-                  }
-                })
-            .transform();
-
-    // Read the edges from each version.
-    Set<KeepEdge> originalEdges = KeepEdgeReader.readKeepEdges(original);
-    Set<KeepEdge> strippedEdges = KeepEdgeReader.readKeepEdges(stripped);
-    Set<KeepEdge> readdedEdges = KeepEdgeReader.readKeepEdges(readded);
-
-    // The edges are compared to the "expected" ast to ensure we don't hide failures in reading or
-    // writing.
-    assertEquals(Collections.emptySet(), strippedEdges);
-    assertEquals(expectedEdges, originalEdges);
-    assertEquals(expectedEdges, readdedEdges);
-  }
-}
diff --git a/src/test/java/com/android/tools/r8/keepanno/keeprules/KeepRuleExtractorTest.java b/src/test/java/com/android/tools/r8/keepanno/keeprules/KeepRuleExtractorTest.java
deleted file mode 100644
index 4fa9b42..0000000
--- a/src/test/java/com/android/tools/r8/keepanno/keeprules/KeepRuleExtractorTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.keepanno.keeprules;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assume.assumeTrue;
-
-import com.android.tools.r8.JavaCompilerTool;
-import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.keepanno.asm.KeepEdgeReader;
-import com.android.tools.r8.keepanno.ast.KeepEdge;
-import com.android.tools.r8.keepanno.processor.KeepEdgeProcessor;
-import com.android.tools.r8.keepanno.testsource.KeepClassAndDefaultConstructorSource;
-import com.android.tools.r8.keepanno.testsource.KeepFieldSource;
-import com.android.tools.r8.keepanno.testsource.KeepSourceEdges;
-import com.android.tools.r8.references.Reference;
-import com.android.tools.r8.utils.AndroidApiLevel;
-import com.android.tools.r8.utils.ZipUtils;
-import com.google.common.collect.ImmutableList;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-@RunWith(Parameterized.class)
-public class KeepRuleExtractorTest extends TestBase {
-
-  private static class ParamWrapper {
-    private final Class<?> clazz;
-    private final TestParameters params;
-
-    public ParamWrapper(Class<?> clazz, TestParameters params) {
-      this.clazz = clazz;
-      this.params = params;
-    }
-
-    @Override
-    public String toString() {
-      return clazz.getSimpleName() + ", " + params.toString();
-    }
-  }
-
-  private static final Path KEEP_ANNO_PATH =
-      Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "keepanno");
-
-  private static List<Class<?>> getTestClasses() {
-    return ImmutableList.of(KeepClassAndDefaultConstructorSource.class, KeepFieldSource.class);
-  }
-
-  private final TestParameters parameters;
-  private final Class<?> source;
-
-  @Parameterized.Parameters(name = "{0}")
-  public static List<ParamWrapper> data() {
-    TestParametersCollection params =
-        getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build();
-    return getTestClasses().stream()
-        .flatMap(c -> params.stream().map(p -> new ParamWrapper(c, p)))
-        .collect(Collectors.toList());
-  }
-
-  public KeepRuleExtractorTest(ParamWrapper wrapper) {
-    this.parameters = wrapper.params;
-    this.source = wrapper.clazz;
-  }
-
-  @Test
-  public void testProcessor() throws Exception {
-    assumeTrue(parameters.isCfRuntime());
-    Path out =
-        JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
-            .addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
-            .addClasspathFiles(KEEP_ANNO_PATH)
-            .addClassNames(Collections.singletonList(typeName(source)))
-            .addClasspathFiles(Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "test"))
-            .addClasspathFiles(ToolHelper.DEPS)
-            .compile();
-
-    String synthesizedEdgesClassName =
-        KeepEdgeProcessor.getClassTypeNameForSynthesizedEdges(source.getTypeName());
-    String entry =
-        ZipUtils.zipEntryNameForClass(Reference.classFromTypeName(synthesizedEdgesClassName));
-    byte[] bytes = ZipUtils.readSingleEntry(out, entry);
-    Set<KeepEdge> keepEdges = KeepEdgeReader.readKeepEdges(bytes);
-    assertEquals(KeepSourceEdges.getExpectedEdges(source), keepEdges);
-  }
-
-  @Test
-  public void testExtract() throws Exception {
-    List<String> rules = getKeepRulesForClass(source);
-    testForR8(parameters.getBackend())
-        .addClasspathFiles(KEEP_ANNO_PATH)
-        .addProgramClassesAndInnerClasses(source)
-        .addKeepRules(rules)
-        .addKeepMainRule(source)
-        .setMinApi(parameters.getApiLevel())
-        .run(parameters.getRuntime(), source)
-        .assertSuccessWithOutput(KeepSourceEdges.getExpected(source));
-  }
-
-  private List<String> getKeepRulesForClass(Class<?> clazz) throws IOException {
-    Set<KeepEdge> keepEdges = KeepEdgeReader.readKeepEdges(ToolHelper.getClassAsBytes(clazz));
-    List<String> rules = new ArrayList<>();
-    KeepRuleExtractor extractor = new KeepRuleExtractor(rules::add);
-    keepEdges.forEach(extractor::extract);
-    return rules;
-  }
-}
diff --git a/src/test/java/com/android/tools/r8/keepanno/processor/KeepEdgeProcessorTest.java b/src/test/java/com/android/tools/r8/keepanno/processor/KeepEdgeProcessorTest.java
deleted file mode 100644
index 83f60a3..0000000
--- a/src/test/java/com/android/tools/r8/keepanno/processor/KeepEdgeProcessorTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.keepanno.processor;
-
-import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertEquals;
-
-import com.android.tools.r8.JavaCompilerTool;
-import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.keepanno.annotations.KeepConstants.Edge;
-import com.android.tools.r8.keepanno.asm.KeepEdgeReader;
-import com.android.tools.r8.keepanno.ast.KeepEdge;
-import com.android.tools.r8.keepanno.testsource.KeepClassAndDefaultConstructorSource;
-import com.android.tools.r8.keepanno.testsource.KeepSourceEdges;
-import com.android.tools.r8.utils.ZipUtils;
-import com.android.tools.r8.utils.codeinspector.ClassSubject;
-import com.android.tools.r8.utils.codeinspector.CodeInspector;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Collections;
-import java.util.Set;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-@RunWith(Parameterized.class)
-public class KeepEdgeProcessorTest extends TestBase {
-
-  private static final Path KEEP_ANNO_PATH =
-      Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "keepanno");
-  private static final Class<?> SOURCE = KeepClassAndDefaultConstructorSource.class;
-  private static final String EXPECTED = KeepSourceEdges.getExpected(SOURCE);
-
-  private final TestParameters parameters;
-
-  @Parameterized.Parameters(name = "{0}")
-  public static TestParametersCollection data() {
-    return getTestParameters().withDefaultCfRuntime().build();
-  }
-
-  public KeepEdgeProcessorTest(TestParameters parameters) {
-    this.parameters = parameters;
-  }
-
-  @Test
-  public void testClassfile() throws Exception {
-    Path out =
-        JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
-            .addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
-            .addClasspathFiles(KEEP_ANNO_PATH)
-            .addClassNames(Collections.singletonList(typeName(SOURCE)))
-            .addClasspathFiles(Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "test"))
-            .addClasspathFiles(ToolHelper.DEPS)
-            .compile();
-
-    CodeInspector inspector = new CodeInspector(out);
-    checkSynthesizedKeepEdgeClass(inspector, out);
-    // The source is added as a classpath name but not part of the compilation unit output.
-    assertThat(inspector.clazz(SOURCE), isAbsent());
-
-    testForJvm()
-        .addProgramClasses(SOURCE, KeepClassAndDefaultConstructorSource.A.class)
-        .addProgramFiles(out)
-        .run(parameters.getRuntime(), SOURCE)
-        .assertSuccessWithOutput(EXPECTED);
-  }
-
-  @Test
-  public void testJavaSource() throws Exception {
-    Path out =
-        JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
-            .addSourceFiles(ToolHelper.getSourceFileForTestClass(SOURCE))
-            .addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
-            .addClasspathFiles(KEEP_ANNO_PATH)
-            .addClasspathFiles(ToolHelper.DEPS)
-            .compile();
-
-    testForJvm()
-        .addProgramFiles(out)
-        .run(parameters.getRuntime(), SOURCE)
-        .assertSuccessWithOutput(EXPECTED)
-        .inspect(
-            inspector -> {
-              assertThat(inspector.clazz(SOURCE), isPresent());
-              checkSynthesizedKeepEdgeClass(inspector, out);
-            });
-  }
-
-  private void checkSynthesizedKeepEdgeClass(CodeInspector inspector, Path data)
-      throws IOException {
-    String synthesizedEdgesClassName =
-        KeepEdgeProcessor.getClassTypeNameForSynthesizedEdges(SOURCE.getTypeName());
-    ClassSubject synthesizedEdgesClass = inspector.clazz(synthesizedEdgesClassName);
-    assertThat(synthesizedEdgesClass, isPresent());
-    assertThat(synthesizedEdgesClass.annotation(Edge.CLASS.getTypeName()), isPresent());
-    String entry = ZipUtils.zipEntryNameForClass(synthesizedEdgesClass.getFinalReference());
-    byte[] bytes = ZipUtils.readSingleEntry(data, entry);
-    Set<KeepEdge> keepEdges = KeepEdgeReader.readKeepEdges(bytes);
-    assertEquals(KeepSourceEdges.getExpectedEdges(SOURCE), keepEdges);
-  }
-}