fuzzer-tests-* bundle introduces
applications/fuzzer suite of jtregs.
This suite contains the bundles with pregenerated JavaFuzzer
tests, plus jtreg wrappers for them. These tests are verified to complete in reasonable
amount of time in both compiled and interpreted modes: tens of seconds and tens of minutes,
respectively. The tests verify workload output with golden output generated by interpreter
during bundle creation.
After mounting, it can be used as the regular OpenJDK suite. Note that the bundle reuses infrastructure code from the JDK tree, so it has to be mounted in the OpenJDK tree. Choose the bundle relevant to the JDK version. If there is no exact JDK version bundle, try the adjacent versions.
$ cd [openjdk-root] $ mkdir test/hotspot/jtreg/applications/fuzzer/ $ mount fuzzer-tests-*.sfs test/hotspot/jtreg/applications/fuzzer/ $ make run-test TEST=applications/fuzzer/ TEST_VM_OPTS="..."
JDK 8 is more complicated, because it needs the test suite alias in TEST.groups:
$ cd [openjdk-root] $ mkdir hotspot/test/fuzzer/ $ mount fuzzer-tests-*.sfs hotspot/test/fuzzer/ $ echo "hotspot_fuzzer = fuzzer/" >> hotspot/test/TEST.groups $ make test TEST=hotspot_fuzzer
Allocate a fair share of time to run these tests. It is a good idea to run them on heavily parallel machine if you want "real" times to stay reasonable. On TR 3970X, 10K tests in default configuration complete in:
real 18m24.201s user 837m33.980s sys 33m9.341s
|File Name ↓||File Size ↓||Date ↓|
|SHA1SUMS||666 B||2021-Jun-14 12:38|
|fuzzer-tests-100K-jdk11.sfs||377.7 MiB||2021-May-22 16:09|
|fuzzer-tests-100K-jdk8.sfs||377.7 MiB||2021-May-22 16:09|
|fuzzer-tests-100K-jdkX.sfs||377.7 MiB||2021-May-22 16:09|
|fuzzer-tests-10K-jdk11.sfs||37.7 MiB||2021-May-21 18:28|
|fuzzer-tests-10K-jdk8.sfs||37.7 MiB||2021-May-21 18:28|
|fuzzer-tests-10K-jdkX.sfs||37.7 MiB||2021-May-21 18:28|
|fuzzer-tests-1K-jdk11.sfs||3.8 MiB||2021-May-21 10:19|
|fuzzer-tests-1K-jdk8.sfs||3.8 MiB||2021-May-21 10:19|
|fuzzer-tests-1K-jdkX.sfs||3.8 MiB||2021-May-21 10:19|