23 24 /* 25 * @test 26 * @key nmt 27 * @summary Running with NMT detail should produce expected stack traces. 28 * @library /test/lib 29 * @modules java.base/jdk.internal.misc 30 * java.management 31 */ 32 33 import jdk.test.lib.Platform; 34 import jdk.test.lib.process.ProcessTools; 35 import jdk.test.lib.process.OutputAnalyzer; 36 import java.util.regex.Matcher; 37 import java.util.regex.Pattern; 38 39 public class CheckForProperDetailStackTrace { 40 /* The stack trace we look for by default. Note that :: has been replaced by .* 41 to make sure it maches even if the symbol is not unmangled. */ 42 public static String stackTraceDefault = 43 ".*ModuleEntryTable.*new_entry.*\n" + 44 ".*ModuleEntryTable.*locked_create_entry_or_null.*\n" + 45 ".*Modules.*define_module.*\n" + 46 ".*JVM_DefineModule.*\n"; 47 48 /* The stack trace we look for on Solaris and Windows slowdebug builds. For some 49 reason ALWAYSINLINE for AllocateHeap is ignored, so it appears in the stack strace. */ 50 public static String stackTraceAllocateHeap = 51 ".*AllocateHeap.*\n" + 52 ".*ModuleEntryTable.*new_entry.*\n" + 53 ".*ModuleEntryTable.*locked_create_entry_or_null.*\n" + 54 ".*Modules.*define_module.*\n"; 55 56 /* A symbol that should always be present in NMT detail output. */ 57 private static String expectedSymbol = 58 "locked_create_entry_or_null"; 59 60 public static void main(String args[]) throws Exception { 61 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( 62 "-XX:+UnlockDiagnosticVMOptions", 63 "-XX:NativeMemoryTracking=detail", 64 "-XX:+PrintNMTStatistics", 65 "-version"); 66 OutputAnalyzer output = new OutputAnalyzer(pb.start()); | 23 24 /* 25 * @test 26 * @key nmt 27 * @summary Running with NMT detail should produce expected stack traces. 28 * @library /test/lib 29 * @modules java.base/jdk.internal.misc 30 * java.management 31 */ 32 33 import jdk.test.lib.Platform; 34 import jdk.test.lib.process.ProcessTools; 35 import jdk.test.lib.process.OutputAnalyzer; 36 import java.util.regex.Matcher; 37 import java.util.regex.Pattern; 38 39 public class CheckForProperDetailStackTrace { 40 /* The stack trace we look for by default. Note that :: has been replaced by .* 41 to make sure it maches even if the symbol is not unmangled. */ 42 public static String stackTraceDefault = 43 ".*Hashtable.*allocate_new_entry.*\n" + 44 ".*ModuleEntryTable.*new_entry.*\n" + 45 ".*ModuleEntryTable.*locked_create_entry_or_null.*\n" + 46 ".*Modules.*define_module.*\n"; 47 48 /* The stack trace we look for on Solaris and Windows slowdebug builds. For some 49 reason ALWAYSINLINE for AllocateHeap is ignored, so it appears in the stack strace. */ 50 public static String stackTraceAllocateHeap = 51 ".*AllocateHeap.*\n" + 52 ".*ModuleEntryTable.*new_entry.*\n" + 53 ".*ModuleEntryTable.*locked_create_entry_or_null.*\n" + 54 ".*Modules.*define_module.*\n"; 55 56 /* A symbol that should always be present in NMT detail output. */ 57 private static String expectedSymbol = 58 "locked_create_entry_or_null"; 59 60 public static void main(String args[]) throws Exception { 61 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( 62 "-XX:+UnlockDiagnosticVMOptions", 63 "-XX:NativeMemoryTracking=detail", 64 "-XX:+PrintNMTStatistics", 65 "-version"); 66 OutputAnalyzer output = new OutputAnalyzer(pb.start()); |