jtreg - building java and cpp test
peter.brunet at oracle.com
Thu Nov 19 21:08:34 UTC 2015
On 11/19/15 3:07 PM, Pete Brunet wrote:
> Thanks Jonathan, Is -native in use? I see some infrastructure for it
> but can't find (yet) that it's actually in use. -Pete
> On 11/19/15 12:44 PM, Jonathan Gibbons wrote:
>> On 11/19/2015 07:46 AM, Pete Brunet wrote:
>>> Hi, I need to build a regression test that has both Java and C++ code.
>>> I see some similar cases in the test tree and they include the exe of
>>> the cpp file. I also see a Makefile. If I run the test without the exe
>>> it is not built so what is the Makefile for? Documentation?
>>> The Makefile I used as a prototype has
>>> cl -o name.exe name.cpp name.lib name.lib
>>> but when I ran make at the command line cl was not found but at least at
>>> this point I don't see the need to look into the cl failure if the
>>> Makefile is just for documentation.
>> jtreg has no direct, complete solution for mixed code like this, and
>> is unlikely to support
>> it any time soon.
>> You can use Makefiles from a shell script, but that is unlikely to be
>> successful in a
>> broad multi-platform world, like OpenJDK. Not only is it problematic
>> to know what
>> compiler to use and where to find it, but at least in our internal
>> test infrastructure,
>> the test machines may not even have the native code compilers installed.
>> (i.e. it is common practice to build and test on different host systems.)
>> The compromise solution we adopted in conjunction with the Hotspot SQE
>> is to use the OpenJDK build process to compile the C/C++ code needed
>> for the tests.
>> The build has the info needed on how to do platform-specific
>> compilation of native
>> code. The build can then generate a bundle that can be passed to
>> jtreg with the
>> -nativepath option.
>> I cannot speak to the existence of Makefiles appearing in the
>> regression test suite.
>> Sometimes they are used manually to create native files that are
>> checked in to the
>> repo (uugh) and sometimes the tests are restricted to run on a limited
>> set of platforms
>> (e.g. Windows only, or Unix only.)
>> -- Jon
More information about the jtreg-use