HTTP/2 301
server: AkamaiGHost
content-length: 0
location: https://openjdk.org/jtreg/
date: Thu, 24 Jul 2025 23:25:54 GMT
HTTP/2 200
content-type: text/html
last-modified: Thu, 05 Jun 2025 17:17:23 GMT
vary: Accept-Encoding
etag: "6841d123-2ad9"
content-security-policy-report-only: default-src 'self' *.openjdk.java.net feedburner.google.com; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' feeds.feedburner.com *.statcounter.com statcounter.com; img-src 'self' data: *.statcounter.com *.openjdk.java.net feedburner.google.com; frame-ancestors 'none'; report-uri https://openjdk.report-uri.io/r/default/csp/reportOnly
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
accept-ranges: bytes
x-akamai-transformed: 0 - 0 -
content-encoding: gzip
date: Thu, 24 Jul 2025 23:25:55 GMT
content-length: 3101
set-cookie: _abck=DC0AB3A6DA029B39F581B287AE362218~-1~YAAQNAHARdBcHj2YAQAApfTBPg79ztbBt/HKp1QYsgmLatDm5kTTVHaBwl6Izc6t5srLjNDCEOFZxI+Q3ZCdK68IZ+RS0IBbSAem7mCmYqoAF0tMw+Xbou8xu27dQPj36g8HpTX24BWsZCJRuqh0bMwPs+wjprvqdv1WJjZb/4m1IFKhagA394qnfSgkGCfp3pxaFVJqqg61rnxJdRda0oudY1NwCsMWQeD1pFYOLWuc+GZ40ZahYbiib1HuwRe9CyZbw5DVy05I3evhZe/UH+vnpQ16b4zaj0TWjrszkoI80CzDQgyP6u8qs5OTvq+5AU79RKvbPKFMPFpGEOroPWFVC8muOhDTHbt2AaxJamogm5ZKL5NZ1UlW/Tpbq0xEgztwUudjrJQ45Nkqm5Ew6o+kwuYPolPniCTebCyDBaIFA/qbxBgH7qPf1/8JWuTkqwqEglQ=~-1~-1~-1; Domain=.openjdk.org; Path=/; Expires=Fri, 24 Jul 2026 23:25:55 GMT; Max-Age=31536000; Secure
set-cookie: bm_sz=BB9565B7644378C11BAF72135029252E~YAAQNAHARdFcHj2YAQAApfTBPhyLzRRWuskQ4OH1BpsdUvSQZ993D0VYmK6ibeWjenFTrU4ITdqjcW0QCwuAlaJJTM+6IHIr+sqBPrEt5gL7+5PCzGgH50lEzpv2QktCkLb3CmqmwT+HzzRuA1PI0aEURFe/w7SLopQvlmeHWcmAY23Z8sAzV3IjNrKLNn4sTXcIcBtXAx94aPz7oHa+gHEq5sOcxn+QVVZP8Q3pXRbzKwm97Tw//YMCzept9gsPFUMokueSc2MFz6g4vEvVvx+HHPQQoNmE1Ub6sotQqkAYqE0VCI0tfT53SpSp8ifbfSF4AXEEZYHlOCCsDYsk4l7v38dKF1uj3UNYfzjsgJpsWano0wX+3h4=~4408889~4536625; Domain=.openjdk.org; Path=/; Expires=Fri, 25 Jul 2025 03:25:54 GMT; Max-Age=14399
Regression Test Harness for the JDK: jtreg
jtreg
is the test harness used by the JDK test
framework. This framework is intended primarily for regression
tests. It can also be used for unit tests, functional tests, and
even simple product tests -- in other words, just about any type of
test except a conformance test, which belong in a TCK.
As well as API tests, jtreg is designed to be well suited for
running both positive and negative compiler tests, simple manual
GUI tests, and (when necessary) tests written in shell script.
jtreg also takes care of compiling tests as well as executing them,
so there is no need to precompile any test classes.
For a more detailed introduction to jtreg, see An Introduction to
jtreg.
- Building jtreg
-
A guide to building jtreg using GNU Make.
- Running tests using jtreg
-
A guide to using jtreg to run OpenJDK jtreg tests.
- Testing the
JDK
-
The OpenJDK Developers' Guide section on running tests.
- Using JVM and javac options with
jtreg
-
A detailed guide explaining how JVM and javac options on the
command line affect how tests are run.
- Command Line Options
-
A listing of all jtreg command line options.
- Writing jtreg tests
-
A guide to writing OpenJDK jtreg tests.
- Shell Tests in jtreg
-
Information on writing shell tests in jtreg.
- Tag specification
-
The specification of the tag language used in jtreg tests.
- FAQ
-
Frequently asked questions.
- jtreg plugin for IntelliJ
IDE
-
This is a convenience plugin which adds jtreg capabilities to
the IntelliJ IDE. With this plugin, OpenJDK developers can write,
run, and debug jtreg tests without the need of leaving their IDE
environment.
- jtreg
project
-
Primarily for developers working on the implementation of
jtreg.
Community