diff --git a/compiler/test/dotty/tools/dotc/classpath/MultiReleaseJarTest.scala b/compiler/test/dotty/tools/dotc/classpath/MultiReleaseJarTest.scala index b79a34e1f2ab..79aeb87aed1d 100644 --- a/compiler/test/dotty/tools/dotc/classpath/MultiReleaseJarTest.scala +++ b/compiler/test/dotty/tools/dotc/classpath/MultiReleaseJarTest.scala @@ -2,18 +2,19 @@ package dotty.tools.dotc.classpath import dotty.tools.dotc.core.Contexts.Context -import java.io.ByteArrayOutputStream +import java.io.{ByteArrayOutputStream, IOException} import java.nio.file.{FileSystems, Files, Path} import java.util.jar.Attributes import java.util.jar.Attributes.Name -import org.junit.Test import org.junit.Assert._ +import org.junit.Test -import scala.util.Properties import scala.collection.JavaConverters._ +import scala.util.Properties class MultiReleaseJarTest extends dotty.tools.backend.jvm.DottyBytecodeTest { + @Test def mrJar(): Unit = { if (!Properties.isJavaAtLeast("9")) { println("skipping mrJar() on old JDK"); return } @@ -61,7 +62,10 @@ class MultiReleaseJarTest extends dotty.tools.backend.jvm.DottyBytecodeTest { if Properties.isJavaAtLeast("10") then assertEquals(Set("foo1", "foo2", "bar1", "bar2"), apiMethods(jar3, "10")) } finally - List(jar1, jar2, jar3).foreach(Files.deleteIfExists) + List(jar1, jar2, jar3).forall(path => + try Files.deleteIfExists(path) + catch case _: IOException => false + ) } @Test @@ -82,7 +86,6 @@ class MultiReleaseJarTest extends dotty.tools.backend.jvm.DottyBytecodeTest { assertTrue(classExists("java.lang.invoke.LambdaMetafactory", "9")) } - private def createManifest = { val manifest = new java.util.jar.Manifest() manifest.getMainAttributes.put(Name.MANIFEST_VERSION, "1.0") @@ -92,6 +95,7 @@ class MultiReleaseJarTest extends dotty.tools.backend.jvm.DottyBytecodeTest { val manifestBytes = os.toByteArray manifestBytes } + private def createZip(zipLocation: Path, content: List[(String, Array[Byte])]): Unit = { val env = new java.util.HashMap[String, String]() Files.deleteIfExists(zipLocation) @@ -113,4 +117,5 @@ class MultiReleaseJarTest extends dotty.tools.backend.jvm.DottyBytecodeTest { zipfs.close() } } + }