< prev index next >

jdk/test/java/lang/StackTraceElement/ModuleFrames.java

Print this page

        

*** 25,34 **** --- 25,37 ---- * @test * @summary Stack trace should have module information * @run testng ModuleFrames */ + import java.nio.file.Files; + import java.nio.file.Path; + import java.nio.file.Paths; import java.util.Arrays; import org.testng.annotations.Test; import static org.testng.Assert.*;
*** 45,59 **** StackTraceElement thisFrame = findFrame(this.getClass().getName(), stack); assertEquals(topFrame.getModuleName(), "java.base", "Expected top frame to be in module java.base"); ! assertTrue(topFrame.toString().contains("java.base"), ! "Expected toString of top frame to include java.base"); assertNull(thisFrame.getModuleName(), "Expected frame for test not to have a module name"); } } private static StackTraceElement findFrame(String cn, StackTraceElement[] stack) { return Arrays.stream(stack) --- 48,78 ---- StackTraceElement thisFrame = findFrame(this.getClass().getName(), stack); assertEquals(topFrame.getModuleName(), "java.base", "Expected top frame to be in module java.base"); ! assertTrue(topFrame.toString().startsWith("java.base"), ! "Expected toString of top frame to omit loader name, start with module name: java.base"); ! ! assertTrue(!topFrame.toString().contains("@"), ! "Expected toString of top frame not to include module version ('@')"); ! ! Path home = Paths.get(System.getProperty("java.home")); ! boolean isImage = Files.exists(home.resolve("lib").resolve("modules")); ! if (isImage) { ! assertTrue(!topFrame.getModuleVersion().isEmpty(), ! "Expected non-empty STE.getModuleVersion() for top frame"); ! } assertNull(thisFrame.getModuleName(), "Expected frame for test not to have a module name"); + + assertTrue(thisFrame.toString().startsWith(this.getClass().getName()), + "Expected toString to start with class name (no loader or module name"); + + assertEquals(thisFrame.getClassLoaderName(), "app", + "Expect STE to have loader name of \"app\""); } } private static StackTraceElement findFrame(String cn, StackTraceElement[] stack) { return Arrays.stream(stack)
< prev index next >