< prev index next >

test/jdk/java/lang/module/ModuleReader/ModuleReaderTest.java

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
+  * Copyright (c) 2015, 2026, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

@@ -29,11 +29,11 @@
   *          jdk.compiler
   *          jdk.jlink
   * @build ModuleReaderTest
   *        jdk.test.lib.compiler.CompilerUtils
   *        jdk.test.lib.util.JarUtils
-  * @run testng ModuleReaderTest
+  * @run junit ModuleReaderTest
   * @summary Basic tests for java.lang.module.ModuleReader
   */
  
  import java.io.File;
  import java.io.IOException;

@@ -46,26 +46,28 @@
  import java.net.URLConnection;
  import java.nio.ByteBuffer;
  import java.nio.file.Files;
  import java.nio.file.Path;
  import java.nio.file.Paths;
- import java.util.Arrays;
  import java.util.HashSet;
  import java.util.List;
  import java.util.Optional;
  import java.util.Set;
- import java.util.stream.Collectors;
  import java.util.spi.ToolProvider;
  import java.util.stream.Stream;
  
  import jdk.internal.module.ModulePath;
  import jdk.test.lib.compiler.CompilerUtils;
  import jdk.test.lib.util.JarUtils;
+ import org.junit.jupiter.api.BeforeAll;
+ import org.junit.jupiter.api.Test;
  
- import org.testng.annotations.BeforeTest;
- import org.testng.annotations.Test;
- import static org.testng.Assert.*;
+ import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+ import static org.junit.jupiter.api.Assertions.assertEquals;
+ import static org.junit.jupiter.api.Assertions.assertFalse;
+ import static org.junit.jupiter.api.Assertions.assertThrows;
+ import static org.junit.jupiter.api.Assertions.assertTrue;
  
  public class ModuleReaderTest {
      private static final String TEST_SRC = System.getProperty("test.src");
  
      private static final Path USER_DIR   = Paths.get(System.getProperty("user.dir"));

@@ -148,12 +150,12 @@
          "C:p",
          "C:\\p",
          "p\\Main.class"
      };
  
-     @BeforeTest
-     public void compileTestModule() throws Exception {
+     @BeforeAll
+     public static void compileTestModule() throws Exception {
          // javac -d mods/$TESTMODULE src/$TESTMODULE/**
          boolean compiled = CompilerUtils.compile(SRC_DIR.resolve(TEST_MODULE),
                                                   MODS_DIR.resolve(TEST_MODULE));
          assertTrue(compiled, "test module did not compile");
      }

@@ -185,55 +187,33 @@
              // test resources that may be in the base module
              for (String name : MAYBE_BASE_RESOURCES) {
                  Optional<URI> ouri = reader.find(name);
                  ouri.ifPresent(uri -> {
                      if (name.endsWith("/"))
-                         assertTrue(uri.toString().endsWith("/"));
+                         assertTrue(uri.toString().endsWith("/"),
+                                 "mismatched directory URI for '" + name + "': " + uri);
                  });
              }
  
              // test "not found" in java.base module
              for (String name : NOT_BASE_RESOURCES) {
-                 assertFalse(reader.find(name).isPresent());
-                 assertFalse(reader.open(name).isPresent());
-                 assertFalse(reader.read(name).isPresent());
+                 assertFalse(reader.find(name).isPresent(), "Unexpected resource found: " + name);
+                 assertFalse(reader.open(name).isPresent(), "Unexpected resource opened: " + name);
+                 assertFalse(reader.read(name).isPresent(), "Unexpected resource read: " + name);
              }
  
              // test nulls
-             try {
-                 reader.find(null);
-                 assertTrue(false);
-             } catch (NullPointerException expected) { }
- 
-             try {
-                 reader.open(null);
-                 assertTrue(false);
-             } catch (NullPointerException expected) { }
- 
-             try {
-                 reader.read(null);
-                 assertTrue(false);
-             } catch (NullPointerException expected) { }
- 
-             try {
-                 reader.release(null);
-                 assertTrue(false);
-             } catch (NullPointerException expected) { }
- 
+             assertThrows(NullPointerException.class, () -> reader.find(null));
+             assertThrows(NullPointerException.class, () -> reader.open(null));
+             assertThrows(NullPointerException.class, () -> reader.read(null));
+             assertThrows(NullPointerException.class, () -> reader.release(null));
          }
  
          // test closed ModuleReader
-         try {
-             reader.open(BASE_RESOURCES[0]);
-             assertTrue(false);
-         } catch (IOException expected) { }
- 
- 
-         try {
-             reader.read(BASE_RESOURCES[0]);
-             assertTrue(false);
-         } catch (IOException expected) { }
+         assertThrows(IOException.class, () -> reader.open(BASE_RESOURCES[0]));
+         assertThrows(IOException.class, () -> reader.read(BASE_RESOURCES[0]));
+         assertThrows(IOException.class, reader::list);
      }
  
      /**
       * Test ModuleReader with exploded module.
       */

@@ -266,14 +246,14 @@
          // jmod create --class-path mods/${TESTMODULE}  mlib/${TESTMODULE}.jmod
          String cp = MODS_DIR.resolve(TEST_MODULE).toString();
          String jmod = dir.resolve("m.jmod").toString();
          String[] args = { "create", "--class-path", cp, jmod };
          ToolProvider jmodTool = ToolProvider.findFirst("jmod")
-             .orElseThrow(() ->
-                 new RuntimeException("jmod tool not found")
-             );
-         assertEquals(jmodTool.run(System.out, System.out, args), 0);
+                 .orElseThrow(() ->
+                         new RuntimeException("jmod tool not found")
+                 );
+         assertEquals(0, jmodTool.run(System.out, System.out, args), "jmod tool failed");
  
          test(dir);
      }
  
      /**

@@ -305,79 +285,52 @@
              for (String name : MAYBE_TEST_RESOURCES) {
                  System.out.println("resource: " + name);
                  Optional<URI> ouri = reader.find(name);
                  ouri.ifPresent(uri -> {
                      if (name.endsWith("/"))
-                         assertTrue(uri.toString().endsWith("/"));
+                         assertTrue(uri.toString().endsWith("/"),
+                                 "mismatched directory URI for '" + name + "': " + uri);
                  });
              }
  
              // test "not found" in test module
              for (String name : NOT_TEST_RESOURCES) {
                  System.out.println("resource: " + name);
-                 assertFalse(reader.find(name).isPresent());
-                 assertFalse(reader.open(name).isPresent());
-                 assertFalse(reader.read(name).isPresent());
+                 assertFalse(reader.find(name).isPresent(), "Unexpected resource found: " + name);
+                 assertFalse(reader.open(name).isPresent(), "Unexpected resource open: " + name);
+                 assertFalse(reader.read(name).isPresent(), "Unexpected resource read: " + name);
              }
  
              // test nulls
-             try {
-                 reader.find(null);
-                 assertTrue(false);
-             } catch (NullPointerException expected) { }
- 
-             try {
-                 reader.open(null);
-                 assertTrue(false);
-             } catch (NullPointerException expected) { }
- 
-             try {
-                 reader.read(null);
-                 assertTrue(false);
-             } catch (NullPointerException expected) { }
- 
-             try {
-                 reader.release(null);
-                 throw new RuntimeException();
-             } catch (NullPointerException expected) { }
- 
+             assertThrows(NullPointerException.class, () -> reader.find(null));
+             assertThrows(NullPointerException.class, () -> reader.open(null));
+             assertThrows(NullPointerException.class, () -> reader.read(null));
+             assertThrows(NullPointerException.class, () -> reader.release(null));
          }
  
          // test closed ModuleReader
-         try {
-             reader.open(TEST_RESOURCES[0]);
-             assertTrue(false);
-         } catch (IOException expected) { }
- 
- 
-         try {
-             reader.read(TEST_RESOURCES[0]);
-             assertTrue(false);
-         } catch (IOException expected) { }
- 
-         try {
-             reader.list();
-             assertTrue(false);
-         } catch (IOException expected) { }
+         assertThrows(IOException.class, () -> reader.open(BASE_RESOURCES[0]));
+         assertThrows(IOException.class, () -> reader.read(BASE_RESOURCES[0]));
+         assertThrows(IOException.class, reader::list);
      }
  
      /**
       * Test ModuleReader#find
       */
      void testFind(ModuleReader reader, String name, byte[] expectedBytes)
          throws IOException
      {
          Optional<URI> ouri = reader.find(name);
-         assertTrue(ouri.isPresent());
+         assertTrue(ouri.isPresent(), "missing URI for: " + name);
  
          URL url = ouri.get().toURL();
          if (!url.getProtocol().equalsIgnoreCase("jmod")) {
              URLConnection uc = url.openConnection();
              uc.setUseCaches(false);
              try (InputStream in = uc.getInputStream()) {
                  byte[] bytes = in.readAllBytes();
-                 assertTrue(Arrays.equals(bytes, expectedBytes));
+                 assertArrayEquals(expectedBytes, bytes, "resource bytes differ for: " + name);
              }
          }
      }
  
      /**

@@ -385,16 +338,14 @@
       */
      void testOpen(ModuleReader reader, String name, byte[] expectedBytes)
          throws IOException
      {
          Optional<InputStream> oin = reader.open(name);
-         assertTrue(oin.isPresent());
- 
-         InputStream in = oin.get();
-         try (in) {
+         assertTrue(oin.isPresent(), "missing input stream for: " + name);
+         try (InputStream in = oin.get()) {
              byte[] bytes = in.readAllBytes();
-             assertTrue(Arrays.equals(bytes, expectedBytes));
+             assertArrayEquals(expectedBytes, bytes, "resource bytes differ for: " + name);
          }
      }
  
      /**
       * Test ModuleReader#read

@@ -406,14 +357,14 @@
          assertTrue(obb.isPresent());
  
          ByteBuffer bb = obb.get();
          try {
              int rem = bb.remaining();
-             assertTrue(rem == expectedBytes.length);
+             assertEquals(expectedBytes.length, rem, "resource lengths differ: " + name);
              byte[] bytes = new byte[rem];
              bb.get(bytes);
-             assertTrue(Arrays.equals(bytes, expectedBytes));
+             assertArrayEquals(expectedBytes, bytes, "resource bytes differ: " + name);
          } finally {
              reader.release(bb);
          }
      }
  

@@ -424,17 +375,17 @@
          final List<String> list;
          try (Stream<String> stream = reader.list()) {
              list = stream.toList();
          }
          Set<String> names = new HashSet<>(list);
-         assertTrue(names.size() == list.size()); // no duplicates
+         assertEquals(names.size(), list.size(), "resource list contains duplicates: " + list);
  
-         assertTrue(names.contains("module-info.class"));
-         assertTrue(names.contains(name));
+         assertTrue(names.contains("module-info.class"), "resource list did not contain 'module-info.class': " + list);
+         assertTrue(names.contains(name), "resource list did not contain '" + name + "'" + list);
  
          // all resources should be locatable via find
          for (String e : names) {
-             assertTrue(reader.find(e).isPresent());
+             assertTrue(reader.find(e).isPresent(), "resource not found: " + name);
          }
      }
  
  }
< prev index next >