8357914: TestEmptyBootstrapMethodsAttr.java fails when run with TEST_THREAD_FACTORY=Virtual

Reviewed-by: lmesnik, dholmes, sspitsyn, syan
This commit is contained in:
Patricio Chilano Mateo 2025-06-05 15:02:02 +00:00
parent 23f1d4f9a9
commit c59e44a7aa
2 changed files with 13 additions and 4 deletions

View File

@ -90,7 +90,6 @@ vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended002/TestDescription.ja
gc/arguments/TestNewSizeThreadIncrease.java 0000000 generic-all
gc/g1/TestSkipRebuildRemsetPhase.java 0000000 generic-all
runtime/classFileParserBug/TestEmptyBootstrapMethodsAttr.java 8346442 generic-all
runtime/ErrorHandling/MachCodeFramesInErrorFile.java 0000000 generic-all
runtime/Thread/AsyncExceptionOnMonitorEnter.java 0000000 generic-all
runtime/Thread/StopAtExit.java 0000000 generic-all

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2025, 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
@ -54,8 +54,13 @@ public class TestEmptyBootstrapMethodsAttr {
"-Duser.language=en", "-Duser.country=US", className);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldNotContain("java.lang.ClassFormatError");
output.shouldContain("Main method not found in class " + className);
output.shouldHaveExitValue(1);
boolean vthreadMode = pb.command().toString().contains("test.thread.factory=Virtual");
if (vthreadMode) {
output.shouldContain("java.lang.NoSuchMethodException: " + className + ".main");
} else {
output.shouldContain("Main method not found in class " + className);
}
// Test case #2:
// Try loading class with empty bootstrap_methods table where an
@ -69,7 +74,12 @@ public class TestEmptyBootstrapMethodsAttr {
"-Duser.language=en", "-Duser.country=US", className);
output = new OutputAnalyzer(pb.start());
output.shouldNotContain("java.lang.ClassFormatError");
output.shouldContain("Main method not found in class " + className);
output.shouldHaveExitValue(1);
vthreadMode = pb.command().toString().contains("test.thread.factory=Virtual");
if (vthreadMode) {
output.shouldContain("java.lang.NoSuchMethodException: " + className + ".main");
} else {
output.shouldContain("Main method not found in class " + className);
}
}
}