8336485: jdk/jfr/jcmd/TestJcmdView.java RuntimeException: 'Invoked Concurrent' missing from stdout/stderr
Reviewed-by: mgronlun
This commit is contained in:
parent
332df83e7c
commit
aa15b895c9
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -47,6 +47,7 @@ public class TestJcmdView {
|
|||||||
public static void main(String... args) throws Throwable {
|
public static void main(String... args) throws Throwable {
|
||||||
CountDownLatch jvmInformation = new CountDownLatch(1);
|
CountDownLatch jvmInformation = new CountDownLatch(1);
|
||||||
CountDownLatch systemGC = new CountDownLatch(1);
|
CountDownLatch systemGC = new CountDownLatch(1);
|
||||||
|
CountDownLatch threadSleep = new CountDownLatch(1);
|
||||||
CountDownLatch gcHeapSummary = new CountDownLatch(1);
|
CountDownLatch gcHeapSummary = new CountDownLatch(1);
|
||||||
CountDownLatch oldCollection = new CountDownLatch(1);
|
CountDownLatch oldCollection = new CountDownLatch(1);
|
||||||
CountDownLatch garbageCollection = new CountDownLatch(1);
|
CountDownLatch garbageCollection = new CountDownLatch(1);
|
||||||
@ -56,6 +57,7 @@ public class TestJcmdView {
|
|||||||
rs.setMaxSize(Long.MAX_VALUE);
|
rs.setMaxSize(Long.MAX_VALUE);
|
||||||
rs.enable("jdk.JVMInformation").with("period", "beginChunk");
|
rs.enable("jdk.JVMInformation").with("period", "beginChunk");
|
||||||
rs.enable("jdk.SystemGC");
|
rs.enable("jdk.SystemGC");
|
||||||
|
rs.enable("jdk.ThreadSleep").withoutThreshold().withStackTrace();
|
||||||
rs.enable("jdk.GCHeapSummary");
|
rs.enable("jdk.GCHeapSummary");
|
||||||
rs.enable("jdk.GarbageCollection");
|
rs.enable("jdk.GarbageCollection");
|
||||||
rs.enable("jdk.OldGarbageCollection");
|
rs.enable("jdk.OldGarbageCollection");
|
||||||
@ -70,6 +72,11 @@ public class TestJcmdView {
|
|||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
storeLastTimestamp(e);
|
storeLastTimestamp(e);
|
||||||
});
|
});
|
||||||
|
rs.onEvent("jdk.ThreadSleep", e -> {
|
||||||
|
threadSleep.countDown();
|
||||||
|
System.out.println(e);
|
||||||
|
storeLastTimestamp(e);
|
||||||
|
});
|
||||||
rs.onEvent("jdk.GCHeapSummary", e -> {
|
rs.onEvent("jdk.GCHeapSummary", e -> {
|
||||||
gcHeapSummary.countDown();
|
gcHeapSummary.countDown();
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
@ -90,9 +97,12 @@ public class TestJcmdView {
|
|||||||
System.gc();
|
System.gc();
|
||||||
System.gc();
|
System.gc();
|
||||||
System.gc();
|
System.gc();
|
||||||
|
// Emit thread sleep event
|
||||||
|
Thread.sleep(1);
|
||||||
// Wait for them being in the repository
|
// Wait for them being in the repository
|
||||||
jvmInformation.await();
|
jvmInformation.await();
|
||||||
systemGC.await();
|
systemGC.await();
|
||||||
|
threadSleep.await();
|
||||||
gcHeapSummary.await();
|
gcHeapSummary.await();
|
||||||
oldCollection.await();
|
oldCollection.await();
|
||||||
// Wait for Instant.now() to advance 1 s past the last event timestamp.
|
// Wait for Instant.now() to advance 1 s past the last event timestamp.
|
||||||
@ -160,13 +170,13 @@ public class TestJcmdView {
|
|||||||
|
|
||||||
private static void testEventType() throws Throwable {
|
private static void testEventType() throws Throwable {
|
||||||
OutputAnalyzer output = JcmdHelper.jcmd(
|
OutputAnalyzer output = JcmdHelper.jcmd(
|
||||||
"JFR.view", "verbose=true", "width=300", "cell-height=100", "SystemGC");
|
"JFR.view", "verbose=true", "width=300", "cell-height=100", "ThreadSleep");
|
||||||
// Verify title
|
// Verify title
|
||||||
output.shouldContain("System GC");
|
output.shouldContain("Thread Sleep");
|
||||||
// Verify headings
|
// Verify headings
|
||||||
output.shouldContain("Invoked Concurrent");
|
output.shouldContain("Sleep Time");
|
||||||
// Verify verbose headings
|
// Verify verbose headings
|
||||||
output.shouldContain("invokedConcurrent");
|
output.shouldContain("time");
|
||||||
// Verify thread value
|
// Verify thread value
|
||||||
output.shouldContain(Thread.currentThread().getName());
|
output.shouldContain(Thread.currentThread().getName());
|
||||||
// Verify stack frame
|
// Verify stack frame
|
||||||
|
Loading…
x
Reference in New Issue
Block a user