RFR: 8310355: Move the stub test from initialize_final_stubs() to test/hotspot/gtest

Hao Sun haosun at openjdk.org
Tue Jul 18 06:02:20 UTC 2023


On Mon, 17 Jul 2023 17:15:20 GMT, Mikhailo Seledtsov <mseledtsov at openjdk.org> wrote:

>> Three groups of runtime routines, i.e. arraycopy, copy and fill, are tested inside function `initialize_final_stubs()`. The test runs every time the debug VM is started.
>> 
>> I think it's a usual convention that it's better not to run functional tests on startup. Hence, this patch proposes to move the stub test under `test/hotspot/gtest`.
>> 
>> It's one copy-paste patch, except the following two minor changes:
>> 
>> 1) Remove `ASSERT` condition check, and the gtest case will be run for release build as well.
>> 
>> 2) Use the gtest helper `ASSERT_TRUE()` to replace the `assert()`.
>> 
>> Note that the downside is that we won't catch stub implementation errors immediately on startup.
>> 
>> Test:
>> 
>> 1) Cross compilations on arm32/s390/ppc/riscv passed.
>> 
>> 2) tier1 test passed on Linux/AArch64, Linux/x86_64 and macOS/Apple silicon. Note that hotspot/gtest is run in tier1.
>> 
>> 3) VM builds with several different options (e.g., zero build, release build, fastdebug build, client variant, no C1/c2) passed on Linux/AArch64 and Linux/x86_64.
>> 
>> 4) I manually injected errors in arraycopy/copy/fill stubs and verified `make test TEST="gtest:StubRoutines"` fails or not. But this check only worked for array fill stub. For the remaining two stubs, VM build (`make images`) failed firstly before running the gtest, because the built VM with these "erroneous" stubs were executed to do something such as loading Java core library code.
>
> Changes look good to me. Thank you for doing this change.

Thanks for your reviews! @mseledts  and @lmesnik 
The GHA tests are clean. Let me integrate it.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/14765#issuecomment-1639535291


More information about the hotspot-dev mailing list