RFR: 8157325: gtest tests are not excluded for minimal builds
david.holmes at oracle.com
Thu May 19 12:24:36 UTC 2016
Thanks Erik - Erik H just explained that to me via IM.
I'm afraid I'm a still on unfamiliar ground with the new hotspot build.
On 19/05/2016 10:18 PM, Erik Joelsson wrote:
> 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 hotspot-dev