RFR: 8157325: gtest tests are not excluded for minimal builds
erik.joelsson at oracle.com
Thu May 19 12:18:46 UTC 2016
I will try to explain.
The GTEST_LIBJVM consists of 3 things:
1. All the objects of libjvm.so
2. The gtest framework
3. The actual test objects
This patch changes how the sources for 3 are found. Before this patch,
the tests were found by searching hotspot/test/native for test*.cpp,
which is very similar to how jtreg native files are found. There is
however a very significant difference between native jtreg tests and
gtest. The native jtreg tests are each linked into a separate lib or
executable, while the gtest tests are all linked together in one lib.
For this reason, there really is no point in putting a .cpp file in
hotspot/test/native if it's not to be included in GTEST_LIBJVM. There is
also no reason to name the files test*.cpp to signal that they contain
tests. The test framework does not care about the names of the objects.
My understanding is that the intention with hotspot/test/native is to
mimic the structure of hotspot/src/share/vm. This also means that the
same exclude/include patterns should apply. This patch replaces the find
and instead sets the SRC_DIR to hotspot/test/native and exclude
parameters to the same as for LIBJVM.
So for the minimal jvm case, we exclude gc/g1 when the jvm feature
all-gcs isn't enabled, and with this patch that also applies to the unit
On 2016-05-19 14:03, David Holmes wrote:
> Sorry Erik but I don't follow what this patch is doing - not familiar
> with how gtest actually works. Where does the minimal build come into
> what has been changed? This seems to be changing how GTEST_LIBJVM is
> built, not when it is built ??
> On 19/05/2016 8:44 PM, Erik Helin wrote:
>> Hi all,
>> this small patch ensures that the Makefiles correctly excludes gtest
>> unit tests for a minimal build. Right now, if you add a test to e.g.
>> hotspot/native/gc/g1, the test will be included in a minimal build,
>> which will fail.
>> Thanks to Erik Joelsson for helping out with this patch!
>> - JPRT (with test in hotspot/native/gc/g1)
>> - Locally on Linux x86-64, both with and without a test in
>> hotspot/native/gc/g1, both minimal and full build
More information about the build-dev