jtreg - building java and cpp test
Jonathan Gibbons
jonathan.gibbons at oracle.com
Thu Nov 19 18:44:09 UTC 2015
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.
>
> Pete
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 team
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
mailing list