提交 eb332e67 编写于 作者: M mseledtsov

8217744: [TESTBUG] JFR TestShutdownEvent fails on some systems due to process surviving SIGINT

Summary: changed handling of cases when child process suvives the signal
Reviewed-by: egahlin
上级 47c85a0b
...@@ -57,10 +57,9 @@ public class TestShutdownEvent { ...@@ -57,10 +57,9 @@ public class TestShutdownEvent {
new TestVMCrash(), new TestVMCrash(),
new TestUnhandledException(), new TestUnhandledException(),
new TestRuntimeHalt(), new TestRuntimeHalt(),
// exclude until JDK-8217744 is fixed new TestSig("TERM"),
// new TestSig("TERM"), new TestSig("HUP"),
// new TestSig("HUP"), new TestSig("INT")
// new TestSig("INT")
}; };
public static void main(String[] args) throws Throwable { public static void main(String[] args) throws Throwable {
...@@ -82,7 +81,8 @@ public class TestShutdownEvent { ...@@ -82,7 +81,8 @@ public class TestShutdownEvent {
String.valueOf(subTestIndex)); String.valueOf(subTestIndex));
OutputAnalyzer output = ProcessTools.executeProcess(pb); OutputAnalyzer output = ProcessTools.executeProcess(pb);
System.out.println(output.getOutput()); System.out.println(output.getOutput());
System.out.println("Exit code: " + output.getExitValue()); int exitCode = output.getExitValue();
System.out.println("Exit code: " + exitCode);
String recordingName = output.firstMatch("emergency jfr file: (.*.jfr)", 1); String recordingName = output.firstMatch("emergency jfr file: (.*.jfr)", 1);
if (recordingName == null) { if (recordingName == null) {
...@@ -97,7 +97,7 @@ public class TestShutdownEvent { ...@@ -97,7 +97,7 @@ public class TestShutdownEvent {
Asserts.assertEquals(filteredEvents.size(), 1); Asserts.assertEquals(filteredEvents.size(), 1);
RecordedEvent event = filteredEvents.get(0); RecordedEvent event = filteredEvents.get(0);
subTests[subTestIndex].verifyEvents(event); subTests[subTestIndex].verifyEvents(event, exitCode);
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
...@@ -114,7 +114,7 @@ public class TestShutdownEvent { ...@@ -114,7 +114,7 @@ public class TestShutdownEvent {
return true; return true;
} }
void runTest(); void runTest();
void verifyEvents(RecordedEvent event); void verifyEvents(RecordedEvent event, int exitCode);
} }
public static Unsafe getUnsafe() { public static Unsafe getUnsafe() {
...@@ -145,7 +145,7 @@ public class TestShutdownEvent { ...@@ -145,7 +145,7 @@ public class TestShutdownEvent {
} }
@Override @Override
public void verifyEvents(RecordedEvent event) { public void verifyEvents(RecordedEvent event, int exitCode) {
Events.assertField(event, "reason").equal("No remaining non-daemon Java threads"); Events.assertField(event, "reason").equal("No remaining non-daemon Java threads");
} }
} }
...@@ -158,7 +158,7 @@ public class TestShutdownEvent { ...@@ -158,7 +158,7 @@ public class TestShutdownEvent {
} }
@Override @Override
public void verifyEvents(RecordedEvent event) { public void verifyEvents(RecordedEvent event, int exitCode) {
Events.assertField(event, "reason").equal("Shutdown requested from Java"); Events.assertField(event, "reason").equal("Shutdown requested from Java");
validateStackTrace(event.getStackTrace()); validateStackTrace(event.getStackTrace());
} }
...@@ -173,7 +173,7 @@ public class TestShutdownEvent { ...@@ -173,7 +173,7 @@ public class TestShutdownEvent {
} }
@Override @Override
public void verifyEvents(RecordedEvent event) { public void verifyEvents(RecordedEvent event, int exitCode) {
Events.assertField(event, "reason").equal("VM Error"); Events.assertField(event, "reason").equal("VM Error");
validateStackTrace(event.getStackTrace()); validateStackTrace(event.getStackTrace());
} }
...@@ -186,7 +186,7 @@ public class TestShutdownEvent { ...@@ -186,7 +186,7 @@ public class TestShutdownEvent {
} }
@Override @Override
public void verifyEvents(RecordedEvent event) { public void verifyEvents(RecordedEvent event, int exitCode) {
Events.assertField(event, "reason").equal("No remaining non-daemon Java threads"); Events.assertField(event, "reason").equal("No remaining non-daemon Java threads");
} }
} }
...@@ -199,7 +199,7 @@ public class TestShutdownEvent { ...@@ -199,7 +199,7 @@ public class TestShutdownEvent {
} }
@Override @Override
public void verifyEvents(RecordedEvent event) { public void verifyEvents(RecordedEvent event, int exitCode) {
Events.assertField(event, "reason").equal("Shutdown requested from Java"); Events.assertField(event, "reason").equal("Shutdown requested from Java");
validateStackTrace(event.getStackTrace()); validateStackTrace(event.getStackTrace());
} }
...@@ -236,11 +236,15 @@ public class TestShutdownEvent { ...@@ -236,11 +236,15 @@ public class TestShutdownEvent {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
Asserts.fail("Process survived the SIG" + signalName + " signal!"); System.out.println("Process survived the SIG" + signalName + " signal!");
} }
@Override @Override
public void verifyEvents(RecordedEvent event) { public void verifyEvents(RecordedEvent event, int exitCode) {
if (exitCode == 0) {
System.out.println("Process exited normally with exit code 0, skipping the verification");
return;
}
Events.assertField(event, "reason").equal("Shutdown requested from Java"); Events.assertField(event, "reason").equal("Shutdown requested from Java");
Events.assertEventThread(event); Events.assertEventThread(event);
Asserts.assertEquals(event.getThread().getJavaName(), "SIG" + signalName + " handler"); Asserts.assertEquals(event.getThread().getJavaName(), "SIG" + signalName + " handler");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册