HTTP/2 301
server: AkamaiGHost
content-length: 0
location: https://openjdk.org/jtreg/
date: Sun, 12 Oct 2025 13:10:26 GMT
HTTP/2 200
content-type: text/html
last-modified: Tue, 09 Sep 2025 21:30:24 GMT
vary: Accept-Encoding
etag: "68c09c70-2a9e"
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: Sun, 12 Oct 2025 13:10:27 GMT
content-length: 3098
set-cookie: _abck=47D4BD3F4D73A4C8DC8630CA4AF0F1BD~-1~YAAQNAHARRCFN5SZAQAA/DyL2A5l7keOaYaC94AEzfk18r4ocHY8XEkGELpDHvLC1je7hp4L1Wr7igolSJ+BgpZwLYULKHFINv58+UarpdRj5F1IWZEeXIC7tMDyYqTbtE8hV7HQvRuY+FwGIjiIAwMH2mfoQfbBS7Fz0G5GHSV9W1EGAZFOhV8WqFm6CYA95zEQYFpdoJ3CkyY5tqisRRksFgi2Kl0CXITCTFDBoDqZudzsXZklPLHs0SgBC7utrbpX4xSmE/5+eJ05jqeFM0TQOvesTplu62WIVGpRgJyH7BY4COdiMUqk0ivOTz+0FKU4pTvVObp7pwRfwThS0pIvEUW0KxnYi+xv6Uj85LIZou96tVYi2CW8qE8CumUs97SnSjAVtCRhGDyMA3F676jnnti+qvPg9FjjdA6bTzMP9oLPxaJXBMxIcfdwxtD7s+R22X+aBuSG~-1~-1~-1~-1~-1; Domain=.openjdk.org; Path=/; Expires=Mon, 12 Oct 2026 13:10:27 GMT; Max-Age=31536000; Secure
set-cookie: bm_sz=319FCC0A6481B8E44354B400B9698A1D~YAAQNAHARRGFN5SZAQAA/DyL2B1iBlEnaDmeO0d1N1SAXk5dwWTcnx/y+x4vaWM/p6iEtLYw90cq8nMuEMYWY7YD1aat9ACJvlwZ5r5oqK0oFoVErdGg7F7ddxPosE7kA6WhVu4kjGvlVodrgGr/xHrYQkMQzUGoMOaFV4AvTNGIUK9ua12qt2suV9kZrvqq+hj9AtdXqi+Iw4l+qeY1e3Kum+XySj0fSdygLavnY9pemx4SOQ8Kby12pEZH8tWOh28pCyj6yOjsLpPD/B7r2RkYBXS+92wWsFBMGVnTTfCviFq1Z226sqBPi2kaWUvCBBGrmNbyTNCS9dHTkAjyjN6XlnXW9pZ9KN5z1tmUKB8YhVlsHCVh3Mk=~3158850~3425857; Domain=.openjdk.org; Path=/; Expires=Sun, 12 Oct 2025 17:10:26 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