How to use JTReg… - Java Regression Test Harness ?
What is JTReg ?
JTReg stands for Java Regression Test suite, also see http://openjdk.java.net/jtreg/.
How to use JTReg ?
Try out the below make
commands to run tests on the individual components:
$ cd $HOME/sources/jdk8_tl/test
$ make jdk_core &> openJDK_jdk_core_Test_Results.logs
$ make jdk_default &> openJDK_jdk_default_Test_Results.logs
$ make jdk_all &> openJDK_jdk_all_Test_Results.logs
(the necessary environement variables need to be in place before the make test
command work on the above components, for a bigger list see link.
Prerequisites:
1)TEST.ROOT
must exist in the folder where the below commands will be executed
2) jdk images must be present as a result of themake images
ormake clean images
commandKnown issue:
“Cannot determine the version of java”, solution:unset JT_JAVA in .bashrc
Method 1 to run jtreg
from the CLI
$ java -jar $HOME/jtreg/lib/jtreg.jar -verbose:fail -jdk: <jdk8-path> $1
Method 2 to run jtreg
from the CLI
$ $HOME/jtreg/linux/bin/jtreg -verbose:fail -jdk: <jdk8-path> $1
jdk8-path
- same as $PRODUCT_HOME
(for eg. $SOURCE_CODE/jdk8/build/macosx-x64-normal-server-release/images/j2sdk-image
, this may differ on your system)
Replace the $1
with a file or a folder name, below are few examples:
$ cd $SOURCE_CODE/jdk8_tl/jdk/test
$ java -jar $HOME/jtreg/lib/jtreg.jar -verbose:all -jdk:$HOME/sources/jdk8_tl/build/linux-x86_64-normal-server-release/images/j2sdk-image/ ./
$ java -jar $HOME/jtreg/lib/jtreg.jar -verbose:all -jdk:$HOME/sources/jdk8_tl/build/linux-x86_64-normal-server-release/images/j2sdk-image/ javax
(the above will run all the tests in the jdk/test/javax sub-folder)
$ $HOME/jtreg/linux/bin/jtreg -verbose:all -jdk:$HOME/sources/jdk8_tl/build/linux-x86_64-normal-server-release/images/j2sdk-image/ java/lang/invoke/AccessControlTest.java
(the above will run all the tests in the above mentioned test class)
The results can be found in the JTreport
and JTwork
folders.
/test/ folders in the $HOME/sources/jdk8 or $HOME/sources/jdk9 tree
Run the below to find out the repos or packages that have a test folder in it hence supports jtreg
tests, meaning you can go into these folders and run make test
or the jtreg
CLI or binary file commands to run the respective tests:
$ tree -fL 5 | grep "/test/" | more
Our search gave us the below:
./hotspot/test
./jdk/test
./langtools/test
./nashorn/test
./test/
For example cd into
$SOURCES/dev/jdk9/jdk/test or $SOURCES/dev/jdk9/hotspot/test
Then run: jtreg -verbose:arg .
To run individual tests, specify a subfolder as the argument to jtreg, or cd into that subfolder before running jtreg.
Plenty to learn and know about OpenJDK hence we look at the tests to lear about the implementation code behind. them...