Version in base suite: 17.0.7+7-1~deb11u1 Base version: openjdk-17_17.0.7+7-1~deb11u1 Target version: openjdk-17_17.0.9+9-1~deb11u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/o/openjdk-17/openjdk-17_17.0.7+7-1~deb11u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/o/openjdk-17/openjdk-17_17.0.9+9-1~deb11u1.dsc /srv/release.debian.org/tmp/pmxrMRzUdJ/openjdk-17-17.0.9+9/test/jdk/java/awt/Icon/IconChangingTest/java-icon16.png |binary /srv/release.debian.org/tmp/pmxrMRzUdJ/openjdk-17-17.0.9+9/test/jdk/java/awt/Icon/IconShowingTest/java-icon16.png |binary /srv/release.debian.org/tmp/pmxrMRzUdJ/openjdk-17-17.0.9+9/test/jdk/java/awt/event/FocusEvent/OppositeSerialization/old.ser |binary /srv/release.debian.org/tmp/pmxrMRzUdJ/openjdk-17-17.0.9+9/test/jdk/java/security/KeyRep/RSA.pre.1.5.key |binary /srv/release.debian.org/tmp/pmxrMRzUdJ/openjdk-17-17.0.9+9/test/jdk/java/util/jar/JarFile/thawjar.jar |binary /srv/release.debian.org/tmp/pmxrMRzUdJ/openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/4170447/swing.small.gif |binary openjdk-17-17.0.9+9/.gitignore | 2 openjdk-17-17.0.9+9/.jcheck/conf | 2 openjdk-17-17.0.9+9/bin/jib.sh | 9 openjdk-17-17.0.9+9/debian/changelog | 131 openjdk-17-17.0.9+9/debian/compat | 2 openjdk-17-17.0.9+9/debian/control | 28 openjdk-17-17.0.9+9/debian/control.in | 10 openjdk-17-17.0.9+9/debian/copyright | 35 openjdk-17-17.0.9+9/debian/patches/8314491-jexec.patch | 108 openjdk-17-17.0.9+9/debian/patches/8315020.diff | 31 openjdk-17-17.0.9+9/debian/patches/build_gtest.patch | 8 openjdk-17-17.0.9+9/debian/patches/disable-thumb-assertion.patch | 16 openjdk-17-17.0.9+9/debian/patches/exclude-broken-tests.patch | 104 openjdk-17-17.0.9+9/debian/patches/loong64-autoconf-config.diff | 12 openjdk-17-17.0.9+9/debian/patches/reproducible-properties-timestamp.diff | 23 openjdk-17-17.0.9+9/debian/patches/riscv64.diff | 69 openjdk-17-17.0.9+9/debian/patches/s390x-opt.diff | 2 openjdk-17-17.0.9+9/debian/patches/series | 6 openjdk-17-17.0.9+9/debian/rules | 112 openjdk-17-17.0.9+9/debian/tests/jtreg-autopkgtest.in | 5 openjdk-17-17.0.9+9/debian/tests/jtreg-autopkgtest.sh | 5 openjdk-17-17.0.9+9/debian/tests/problems-armhf.txt | 21 openjdk-17-17.0.9+9/debian/tests/problems-hotspot.txt | 18 openjdk-17-17.0.9+9/debian/tests/problems-i386.txt | 3 openjdk-17-17.0.9+9/debian/tests/problems-jdk.txt | 46 openjdk-17-17.0.9+9/debian/watch | 9 openjdk-17-17.0.9+9/doc/building.html | 4 openjdk-17-17.0.9+9/doc/building.md | 4 openjdk-17-17.0.9+9/doc/testing.html | 31 openjdk-17-17.0.9+9/doc/testing.md | 35 openjdk-17-17.0.9+9/googletest/.clang-format | 4 openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml | 53 openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml | 33 openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/config.yml | 5 openjdk-17-17.0.9+9/googletest/.github/workflows/gtest-ci.yml | 43 openjdk-17-17.0.9+9/googletest/.gitignore | 88 openjdk-17-17.0.9+9/googletest/BUILD.bazel | 219 openjdk-17-17.0.9+9/googletest/CMakeLists.txt | 27 openjdk-17-17.0.9+9/googletest/CONTRIBUTING.md | 141 openjdk-17-17.0.9+9/googletest/CONTRIBUTORS | 65 openjdk-17-17.0.9+9/googletest/LICENSE | 28 openjdk-17-17.0.9+9/googletest/README.md | 146 openjdk-17-17.0.9+9/googletest/WORKSPACE | 27 openjdk-17-17.0.9+9/googletest/ci/linux-presubmit.sh | 137 openjdk-17-17.0.9+9/googletest/ci/macos-presubmit.sh | 76 openjdk-17-17.0.9+9/googletest/ci/windows-presubmit.bat | 58 openjdk-17-17.0.9+9/googletest/docs/_config.yml | 1 openjdk-17-17.0.9+9/googletest/docs/_data/navigation.yml | 43 openjdk-17-17.0.9+9/googletest/docs/_layouts/default.html | 58 openjdk-17-17.0.9+9/googletest/docs/_sass/main.scss | 200 openjdk-17-17.0.9+9/googletest/docs/advanced.md | 2436 openjdk-17-17.0.9+9/googletest/docs/assets/css/style.scss | 5 openjdk-17-17.0.9+9/googletest/docs/community_created_documentation.md | 7 openjdk-17-17.0.9+9/googletest/docs/faq.md | 692 openjdk-17-17.0.9+9/googletest/docs/gmock_cheat_sheet.md | 241 openjdk-17-17.0.9+9/googletest/docs/gmock_cook_book.md | 4344 openjdk-17-17.0.9+9/googletest/docs/gmock_faq.md | 390 openjdk-17-17.0.9+9/googletest/docs/gmock_for_dummies.md | 700 openjdk-17-17.0.9+9/googletest/docs/index.md | 22 openjdk-17-17.0.9+9/googletest/docs/pkgconfig.md | 144 openjdk-17-17.0.9+9/googletest/docs/platforms.md | 8 openjdk-17-17.0.9+9/googletest/docs/primer.md | 483 openjdk-17-17.0.9+9/googletest/docs/quickstart-bazel.md | 153 openjdk-17-17.0.9+9/googletest/docs/quickstart-cmake.md | 157 openjdk-17-17.0.9+9/googletest/docs/reference/actions.md | 115 openjdk-17-17.0.9+9/googletest/docs/reference/assertions.md | 633 openjdk-17-17.0.9+9/googletest/docs/reference/matchers.md | 302 openjdk-17-17.0.9+9/googletest/docs/reference/mocking.md | 589 openjdk-17-17.0.9+9/googletest/docs/reference/testing.md | 1432 openjdk-17-17.0.9+9/googletest/docs/samples.md | 22 openjdk-17-17.0.9+9/googletest/googlemock/CMakeLists.txt | 209 openjdk-17-17.0.9+9/googletest/googlemock/README.md | 40 openjdk-17-17.0.9+9/googletest/googlemock/cmake/gmock.pc.in | 10 openjdk-17-17.0.9+9/googletest/googlemock/cmake/gmock_main.pc.in | 10 openjdk-17-17.0.9+9/googletest/googlemock/docs/README.md | 4 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock-actions.h | 2297 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock-cardinalities.h | 159 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock-function-mocker.h | 518 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock-matchers.h | 5623 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock-more-actions.h | 658 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock-more-matchers.h | 120 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock-nice-strict.h | 277 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock-spec-builders.h | 2148 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/gmock.h | 96 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/internal/custom/README.md | 18 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h | 7 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h | 37 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/internal/custom/gmock-port.h | 40 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h | 487 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/internal/gmock-port.h | 139 openjdk-17-17.0.9+9/googletest/googlemock/include/gmock/internal/gmock-pp.h | 279 openjdk-17-17.0.9+9/googletest/googlemock/src/gmock-all.cc | 46 openjdk-17-17.0.9+9/googletest/googlemock/src/gmock-cardinalities.cc | 155 openjdk-17-17.0.9+9/googletest/googlemock/src/gmock-internal-utils.cc | 257 openjdk-17-17.0.9+9/googletest/googlemock/src/gmock-matchers.cc | 479 openjdk-17-17.0.9+9/googletest/googlemock/src/gmock-spec-builders.cc | 791 openjdk-17-17.0.9+9/googletest/googlemock/src/gmock.cc | 225 openjdk-17-17.0.9+9/googletest/googlemock/src/gmock_main.cc | 73 openjdk-17-17.0.9+9/googletest/googlemock/test/BUILD.bazel | 118 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-actions_test.cc | 2169 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-cardinalities_test.cc | 424 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-function-mocker_test.cc | 998 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-internal-utils_test.cc | 766 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-matchers-arithmetic_test.cc | 1516 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-matchers-comparisons_test.cc | 2361 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-matchers-containers_test.cc | 3137 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-matchers-misc_test.cc | 1823 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-matchers_test.h | 192 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-more-actions_test.cc | 1550 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-nice-strict_test.cc | 541 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-port_test.cc | 42 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-pp-string_test.cc | 205 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-pp_test.cc | 83 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock-spec-builders_test.cc | 2600 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_all_test.cc | 49 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_ex_test.cc | 80 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_leak_test.py | 113 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_leak_test_.cc | 99 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_link2_test.cc | 38 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_link_test.cc | 38 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_link_test.h | 684 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_output_test.py | 190 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_output_test_.cc | 286 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_output_test_golden.txt | 335 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_stress_test.cc | 227 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_test.cc | 179 openjdk-17-17.0.9+9/googletest/googlemock/test/gmock_test_utils.py | 91 openjdk-17-17.0.9+9/googletest/googletest/CMakeLists.txt | 330 openjdk-17-17.0.9+9/googletest/googletest/README.md | 231 openjdk-17-17.0.9+9/googletest/googletest/cmake/Config.cmake.in | 9 openjdk-17-17.0.9+9/googletest/googletest/cmake/gtest.pc.in | 9 openjdk-17-17.0.9+9/googletest/googletest/cmake/gtest_main.pc.in | 10 openjdk-17-17.0.9+9/googletest/googletest/cmake/internal_utils.cmake | 332 openjdk-17-17.0.9+9/googletest/googletest/cmake/libgtest.la.in | 21 openjdk-17-17.0.9+9/googletest/googletest/docs/README.md | 4 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-assertion-result.h | 237 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-death-test.h | 345 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-matchers.h | 923 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-message.h | 252 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-param-test.h | 546 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-printers.h | 1161 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-spi.h | 250 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-test-part.h | 192 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest-typed-test.h | 331 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest.h | 2321 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest_pred_impl.h | 279 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/gtest_prod.h | 60 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/custom/README.md | 44 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/custom/gtest-port.h | 37 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/custom/gtest-printers.h | 42 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/custom/gtest.h | 37 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h | 307 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/gtest-filepath.h | 227 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/gtest-internal.h | 1560 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/gtest-param-util.h | 1026 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/gtest-port-arch.h | 122 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/gtest-port.h | 2481 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/gtest-string.h | 178 openjdk-17-17.0.9+9/googletest/googletest/include/gtest/internal/gtest-type-util.h | 220 openjdk-17-17.0.9+9/googletest/googletest/samples/prime_tables.h | 125 openjdk-17-17.0.9+9/googletest/googletest/samples/sample1.cc | 66 openjdk-17-17.0.9+9/googletest/googletest/samples/sample1.h | 41 openjdk-17-17.0.9+9/googletest/googletest/samples/sample10_unittest.cc | 138 openjdk-17-17.0.9+9/googletest/googletest/samples/sample1_unittest.cc | 148 openjdk-17-17.0.9+9/googletest/googletest/samples/sample2.cc | 54 openjdk-17-17.0.9+9/googletest/googletest/samples/sample2.h | 79 openjdk-17-17.0.9+9/googletest/googletest/samples/sample2_unittest.cc | 107 openjdk-17-17.0.9+9/googletest/googletest/samples/sample3-inl.h | 171 openjdk-17-17.0.9+9/googletest/googletest/samples/sample3_unittest.cc | 146 openjdk-17-17.0.9+9/googletest/googletest/samples/sample4.cc | 50 openjdk-17-17.0.9+9/googletest/googletest/samples/sample4.h | 53 openjdk-17-17.0.9+9/googletest/googletest/samples/sample4_unittest.cc | 53 openjdk-17-17.0.9+9/googletest/googletest/samples/sample5_unittest.cc | 189 openjdk-17-17.0.9+9/googletest/googletest/samples/sample6_unittest.cc | 214 openjdk-17-17.0.9+9/googletest/googletest/samples/sample7_unittest.cc | 113 openjdk-17-17.0.9+9/googletest/googletest/samples/sample8_unittest.cc | 154 openjdk-17-17.0.9+9/googletest/googletest/samples/sample9_unittest.cc | 148 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-all.cc | 49 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-assertion-result.cc | 77 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-death-test.cc | 1585 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-filepath.cc | 414 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-internal-inl.h | 1218 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-matchers.cc | 98 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-port.cc | 1392 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-printers.cc | 555 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-test-part.cc | 106 openjdk-17-17.0.9+9/googletest/googletest/src/gtest-typed-test.cc | 108 openjdk-17-17.0.9+9/googletest/googletest/src/gtest.cc | 6906 + openjdk-17-17.0.9+9/googletest/googletest/src/gtest_main.cc | 66 openjdk-17-17.0.9+9/googletest/googletest/test/BUILD.bazel | 595 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-break-on-failure-unittest.py | 195 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-break-on-failure-unittest_.cc | 83 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-catch-exceptions-test.py | 315 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-catch-exceptions-test_.cc | 289 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-color-test.py | 129 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-color-test_.cc | 60 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-death-test-test.cc | 1508 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-death-test_ex_test.cc | 91 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-env-var-test.py | 120 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-env-var-test_.cc | 130 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-failfast-unittest.py | 461 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-failfast-unittest_.cc | 166 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-filepath-test.cc | 671 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-filter-unittest.py | 746 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-filter-unittest_.cc | 106 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-global-environment-unittest.py | 141 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-global-environment-unittest_.cc | 58 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-json-outfiles-test.py | 180 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-json-output-unittest.py | 820 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-list-tests-unittest.py | 225 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-list-tests-unittest_.cc | 143 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-listener-test.cc | 509 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-message-test.cc | 184 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-options-test.cc | 222 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-output-test-golden-lin.txt | 1206 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-output-test.py | 385 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-output-test_.cc | 1058 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-param-test-invalid-name1-test.py | 63 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc | 46 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-param-test-invalid-name2-test.py | 63 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc | 52 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-param-test-test.cc | 1173 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-param-test-test.h | 49 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-param-test2-test.cc | 58 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-port-test.cc | 1301 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-printers-test.cc | 2018 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-setuptestsuite-test.py | 58 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-setuptestsuite-test_.cc | 44 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-shuffle-test.py | 378 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-shuffle-test_.cc | 99 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-test-part-test.cc | 220 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-throw-on-failure-test.py | 166 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-throw-on-failure-test_.cc | 71 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-uninitialized-test.py | 70 openjdk-17-17.0.9+9/googletest/googletest/test/googletest-uninitialized-test_.cc | 39 openjdk-17-17.0.9+9/googletest/googletest/test/gtest-typed-test2_test.cc | 39 openjdk-17-17.0.9+9/googletest/googletest/test/gtest-typed-test_test.cc | 423 openjdk-17-17.0.9+9/googletest/googletest/test/gtest-typed-test_test.h | 57 openjdk-17-17.0.9+9/googletest/googletest/test/gtest-unittest-api_test.cc | 328 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_all_test.cc | 46 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_assert_by_exception_test.cc | 112 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_dirs_test.cc | 101 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_environment_test.cc | 179 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_help_test.py | 201 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_help_test_.cc | 44 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_json_test_utils.py | 64 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_list_output_unittest.py | 289 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_list_output_unittest_.cc | 77 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_main_unittest.cc | 42 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_no_test_unittest.cc | 54 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_pred_impl_unittest.cc | 2070 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_premature_exit_test.cc | 128 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_prod_test.cc | 56 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_repeat_test.cc | 222 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_skip_check_output_test.py | 60 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_skip_environment_check_output_test.py | 55 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc | 50 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_skip_test.cc | 51 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_sole_header_test.cc | 54 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_stress_test.cc | 245 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc | 89 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_test_utils.py | 262 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_testbridge_test.py | 63 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_testbridge_test_.cc | 42 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc | 90 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_unittest.cc | 7783 + openjdk-17-17.0.9+9/googletest/googletest/test/gtest_xml_outfile1_test_.cc | 43 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_xml_outfile2_test_.cc | 77 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_xml_outfiles_test.py | 147 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_xml_output_unittest.py | 469 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_xml_output_unittest_.cc | 197 openjdk-17-17.0.9+9/googletest/googletest/test/gtest_xml_test_utils.py | 242 openjdk-17-17.0.9+9/googletest/googletest/test/production.cc | 35 openjdk-17-17.0.9+9/googletest/googletest/test/production.h | 55 openjdk-17-17.0.9+9/googletest/googletest_deps.bzl | 22 openjdk-17-17.0.9+9/make/GenerateLinkOptData.gmk | 7 openjdk-17-17.0.9+9/make/Init.gmk | 7 openjdk-17-17.0.9+9/make/ReleaseFile.gmk | 1 openjdk-17-17.0.9+9/make/autoconf/basic.m4 | 1 openjdk-17-17.0.9+9/make/autoconf/basic_tools.m4 | 40 openjdk-17-17.0.9+9/make/autoconf/build-aux/config.sub | 10 openjdk-17-17.0.9+9/make/autoconf/configure.ac | 1 openjdk-17-17.0.9+9/make/autoconf/flags-cflags.m4 | 6 openjdk-17-17.0.9+9/make/autoconf/jdk-options.m4 | 2 openjdk-17-17.0.9+9/make/autoconf/jvm-features.m4 | 15 openjdk-17-17.0.9+9/make/autoconf/lib-bundled.m4 | 4 openjdk-17-17.0.9+9/make/autoconf/libraries.m4 | 10 openjdk-17-17.0.9+9/make/autoconf/platform.m4 | 9 openjdk-17-17.0.9+9/make/autoconf/toolchain.m4 | 20 openjdk-17-17.0.9+9/make/common/NativeCompilation.gmk | 9 openjdk-17-17.0.9+9/make/conf/jib-profiles.js | 10 openjdk-17-17.0.9+9/make/conf/version-numbers.conf | 4 openjdk-17-17.0.9+9/make/data/cacerts/certignarootca | 43 openjdk-17-17.0.9+9/make/data/cacerts/gtsrootcar1 | 38 openjdk-17-17.0.9+9/make/data/cacerts/gtsrootcar2 | 38 openjdk-17-17.0.9+9/make/data/cacerts/gtsrootecccar3 | 20 openjdk-17-17.0.9+9/make/data/cacerts/gtsrootecccar4 | 20 openjdk-17-17.0.9+9/make/data/cacerts/microsoftecc2017 | 22 openjdk-17-17.0.9+9/make/data/cacerts/microsoftrsa2017 | 40 openjdk-17-17.0.9+9/make/data/cacerts/secomscrootca1 | 27 openjdk-17-17.0.9+9/make/data/cacerts/twcaglobalrootca | 38 openjdk-17-17.0.9+9/make/data/charsetmapping/GB18030.map |63491 ---------- openjdk-17-17.0.9+9/make/data/charsetmapping/charsets | 12 openjdk-17-17.0.9+9/make/data/charsetmapping/stdcs-aix | 1 openjdk-17-17.0.9+9/make/data/charsetmapping/stdcs-linux | 1 openjdk-17-17.0.9+9/make/data/charsetmapping/stdcs-solaris | 26 openjdk-17-17.0.9+9/make/data/charsetmapping/stdcs-windows | 1 openjdk-17-17.0.9+9/make/data/currency/CurrencyData.properties | 4 openjdk-17-17.0.9+9/make/data/hotspot-symbols/symbols-unix | 1 openjdk-17-17.0.9+9/make/data/publicsuffixlist/VERSION | 4 openjdk-17-17.0.9+9/make/data/publicsuffixlist/public_suffix_list.dat | 1596 openjdk-17-17.0.9+9/make/data/tzdata/VERSION | 2 openjdk-17-17.0.9+9/make/data/tzdata/africa | 71 openjdk-17-17.0.9+9/make/data/tzdata/antarctica | 2 openjdk-17-17.0.9+9/make/data/tzdata/asia | 166 openjdk-17-17.0.9+9/make/data/tzdata/australasia | 44 openjdk-17-17.0.9+9/make/data/tzdata/backward | 1 openjdk-17-17.0.9+9/make/data/tzdata/europe | 59 openjdk-17-17.0.9+9/make/data/tzdata/iso3166.tab | 2 openjdk-17-17.0.9+9/make/data/tzdata/leapseconds | 8 openjdk-17-17.0.9+9/make/data/tzdata/northamerica | 32 openjdk-17-17.0.9+9/make/data/tzdata/southamerica | 2 openjdk-17-17.0.9+9/make/data/tzdata/zone.tab | 29 openjdk-17-17.0.9+9/make/devkit/Tools.gmk | 13 openjdk-17-17.0.9+9/make/devkit/createJMHBundle.sh | 6 openjdk-17-17.0.9+9/make/hotspot/gensrc/GensrcAdlc.gmk | 9 openjdk-17-17.0.9+9/make/hotspot/lib/CompileGtest.gmk | 4 openjdk-17-17.0.9+9/make/jdk/src/classes/build/tools/charsetmapping/SPI.java | 38 openjdk-17-17.0.9+9/make/jdk/src/classes/build/tools/classlist/SortClasslist.java | 79 openjdk-17-17.0.9+9/make/jdk/src/classes/build/tools/cldrconverter/Bundle.java | 4 openjdk-17-17.0.9+9/make/modules/java.base/lib/CoreLibraries.gmk | 1 openjdk-17-17.0.9+9/make/modules/java.desktop/lib/Awt2dLibraries.gmk | 14 openjdk-17-17.0.9+9/make/modules/jdk.internal.vm.ci/Java.gmk | 8 openjdk-17-17.0.9+9/make/scripts/compare.sh | 4 openjdk-17-17.0.9+9/make/scripts/fixpath.sh | 11 openjdk-17-17.0.9+9/make/test/JtregNativeHotspot.gmk | 3 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/aarch64.ad | 481 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/aarch64_ad.m4 | 86 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/assembler_aarch64.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/atomic_aarch64.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp | 29 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/frame_aarch64.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/jvmciCodeInstaller_aarch64.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp | 231 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp | 15 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/matcher_aarch64.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp | 32 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp | 9 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp | 142 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp | 12 openjdk-17-17.0.9+9/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp | 50 openjdk-17-17.0.9+9/src/hotspot/cpu/arm/arm.ad | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp | 21 openjdk-17-17.0.9+9/src/hotspot/cpu/arm/c2_MacroAssembler_arm.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/cpu/arm/frame_arm.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/cpu/arm/sharedRuntime_arm.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/arm/stubGenerator_arm.cpp | 49 openjdk-17-17.0.9+9/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp | 29 openjdk-17-17.0.9+9/src/hotspot/cpu/ppc/frame_ppc.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/cpu/ppc/ppc.ad | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/cpu/ppc/stubGenerator_ppc.cpp | 47 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/abstractInterpreter_riscv.cpp | 177 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/assembler_riscv.cpp | 78 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/assembler_riscv.hpp | 2776 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/assembler_riscv.inline.hpp | 49 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/bytes_riscv.hpp | 169 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_CodeStubs_riscv.cpp | 357 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_Defs_riscv.hpp | 84 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_FpuStackSim_riscv.cpp | 30 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_FpuStackSim_riscv.hpp | 32 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_FrameMap_riscv.cpp | 388 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_FrameMap_riscv.hpp | 148 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LIRAssembler_arith_riscv.cpp | 281 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LIRAssembler_arith_riscv.hpp | 37 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LIRAssembler_arraycopy_riscv.cpp | 387 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LIRAssembler_arraycopy_riscv.hpp | 52 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp | 2263 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.hpp | 130 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LIRGenerator_riscv.cpp | 1086 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LIR_riscv.cpp | 55 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LinearScan_riscv.cpp | 33 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_LinearScan_riscv.hpp | 83 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_MacroAssembler_riscv.cpp | 451 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_MacroAssembler_riscv.hpp | 121 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_Runtime1_riscv.cpp | 1179 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c1_globals_riscv.hpp | 65 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp | 1658 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.hpp | 193 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c2_globals_riscv.hpp | 85 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c2_init_riscv.cpp | 38 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/c2_safepointPollStubTable_riscv.cpp | 48 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/codeBuffer_riscv.hpp | 36 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/compiledIC_riscv.cpp | 149 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/copy_riscv.hpp | 143 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/disassembler_riscv.hpp | 50 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/foreign_globals_riscv.cpp | 44 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/foreign_globals_riscv.hpp | 32 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/frame_riscv.cpp | 688 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/frame_riscv.hpp | 204 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/frame_riscv.inline.hpp | 246 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.cpp | 478 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.hpp | 78 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/g1/g1Globals_riscv.hpp | 31 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.cpp | 298 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.hpp | 79 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shared/barrierSetNMethod_riscv.cpp | 171 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shared/cardTableBarrierSetAssembler_riscv.cpp | 107 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shared/cardTableBarrierSetAssembler_riscv.hpp | 42 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shared/modRefBarrierSetAssembler_riscv.cpp | 54 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shared/modRefBarrierSetAssembler_riscv.hpp | 55 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shenandoah/c1/shenandoahBarrierSetC1_riscv.cpp | 117 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.cpp | 714 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.hpp | 88 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/shenandoah/shenandoah_riscv64.ad | 285 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp | 445 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.hpp | 102 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/z/zGlobals_riscv.cpp | 212 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/z/zGlobals_riscv.hpp | 36 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/gc/z/z_riscv64.ad | 233 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/globalDefinitions_riscv.hpp | 52 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/globals_riscv.hpp | 101 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/icBuffer_riscv.cpp | 79 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/icache_riscv.cpp | 59 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/icache_riscv.hpp | 42 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/interp_masm_riscv.cpp | 1950 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/interp_masm_riscv.hpp | 285 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/interpreterRT_riscv.cpp | 295 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/interpreterRT_riscv.hpp | 68 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/javaFrameAnchor_riscv.hpp | 86 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp | 221 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/jniTypes_riscv.hpp | 106 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp | 4392 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp | 1310 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/macroAssembler_riscv.inline.hpp | 31 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/matcher_riscv.hpp | 169 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/methodHandles_riscv.cpp | 455 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/methodHandles_riscv.hpp | 57 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/nativeInst_riscv.cpp | 441 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/nativeInst_riscv.hpp | 554 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/registerMap_riscv.cpp | 45 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/registerMap_riscv.hpp | 43 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/register_definitions_riscv.cpp | 193 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/register_riscv.cpp | 69 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/register_riscv.hpp | 385 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/relocInfo_riscv.cpp | 113 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/relocInfo_riscv.hpp | 44 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/riscv.ad |10645 + openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/riscv_b.ad | 575 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/riscv_v.ad | 2054 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp | 2965 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/stubGenerator_riscv.cpp | 3912 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/stubRoutines_riscv.cpp | 58 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/stubRoutines_riscv.hpp | 161 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp | 1760 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/templateTable_riscv.cpp | 3949 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/templateTable_riscv.hpp | 42 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/universalNativeInvoker_riscv.cpp | 33 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/universalUpcallHandle_riscv.cpp | 42 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vmStructs_riscv.hpp | 42 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vm_version_ext_riscv.cpp | 87 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vm_version_ext_riscv.hpp | 55 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vm_version_riscv.cpp | 225 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vm_version_riscv.hpp | 82 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vmreg_riscv.cpp | 64 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vmreg_riscv.hpp | 68 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vmreg_riscv.inline.hpp | 46 openjdk-17-17.0.9+9/src/hotspot/cpu/riscv/vtableStubs_riscv.cpp | 260 openjdk-17-17.0.9+9/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp | 23 openjdk-17-17.0.9+9/src/hotspot/cpu/s390/s390.ad | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/s390/sharedRuntime_s390.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/cpu/s390/stubGenerator_s390.cpp | 42 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/assembler_x86.cpp | 46 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/assembler_x86.hpp | 14 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp | 30 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp | 14 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/crc32c.h | 10 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/frame_x86.cpp | 9 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/macroAssembler_x86.cpp | 19 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/macroAssembler_x86.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/macroAssembler_x86_aes.cpp | 59 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/macroAssembler_x86_md5.cpp | 21 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp | 9 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp | 42 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp | 97 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/stubRoutines_x86.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/stubRoutines_x86.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/x86_32.ad | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/x86/x86_64.ad | 1 openjdk-17-17.0.9+9/src/hotspot/cpu/zero/stubGenerator_zero.cpp | 72 openjdk-17-17.0.9+9/src/hotspot/os/aix/os_aix.cpp | 59 openjdk-17-17.0.9+9/src/hotspot/os/aix/os_aix.inline.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/os/bsd/os_bsd.cpp | 32 openjdk-17-17.0.9+9/src/hotspot/os/bsd/os_bsd.inline.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp | 34 openjdk-17-17.0.9+9/src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp | 15 openjdk-17-17.0.9+9/src/hotspot/os/linux/gc/z/zPhysicalMemoryBacking_linux.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/os/linux/globals_linux.hpp | 14 openjdk-17-17.0.9+9/src/hotspot/os/linux/os_linux.cpp | 170 openjdk-17-17.0.9+9/src/hotspot/os/linux/os_linux.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/os/linux/os_linux.inline.hpp | 9 openjdk-17-17.0.9+9/src/hotspot/os/linux/trimCHeapDCmd.cpp | 67 openjdk-17-17.0.9+9/src/hotspot/os/posix/os_posix.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/os/posix/safefetch_sigjmp.cpp | 106 openjdk-17-17.0.9+9/src/hotspot/os/posix/safefetch_sigjmp.hpp | 44 openjdk-17-17.0.9+9/src/hotspot/os/posix/safefetch_static_posix.cpp | 65 openjdk-17-17.0.9+9/src/hotspot/os/posix/signals_posix.cpp | 61 openjdk-17-17.0.9+9/src/hotspot/os/posix/vmError_posix.cpp | 24 openjdk-17-17.0.9+9/src/hotspot/os/windows/os_windows.cpp | 72 openjdk-17-17.0.9+9/src/hotspot/os/windows/os_windows.inline.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/os/windows/safefetch_windows.hpp | 53 openjdk-17-17.0.9+9/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp | 17 openjdk-17-17.0.9+9/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp | 16 openjdk-17-17.0.9+9/src/hotspot/os_cpu/bsd_aarch64/safefetch_bsd_aarch64.S | 71 openjdk-17-17.0.9+9/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp | 16 openjdk-17-17.0.9+9/src/hotspot/os_cpu/bsd_x86/safefetch_bsd_x86_64.S | 67 openjdk-17-17.0.9+9/src/hotspot/os_cpu/bsd_zero/os_bsd_zero.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.S | 22 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp | 24 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_aarch64/globals_linux_aarch64.hpp | 14 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp | 25 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_aarch64/safefetch_linux_aarch64.S | 55 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_arm/os_linux_arm.cpp | 18 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_arm/safefetch_linux_arm.S | 41 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp | 13 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_ppc/safefetch_linux_ppc.S | 57 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/assembler_linux_riscv.cpp | 26 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/atomic_linux_riscv.hpp | 151 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/bytes_linux_riscv.hpp | 45 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/copy_linux_riscv.hpp | 31 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/gc/z/zSyscall_linux_riscv.hpp | 42 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/globals_linux_riscv.hpp | 43 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/orderAccess_linux_riscv.hpp | 59 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/os_linux_riscv.cpp | 478 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/os_linux_riscv.hpp | 40 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/prefetch_linux_riscv.inline.hpp | 38 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/safefetch_linux_riscv.S | 57 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/thread_linux_riscv.cpp | 92 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/thread_linux_riscv.hpp | 48 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/vmStructs_linux_riscv.hpp | 55 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_riscv/vm_version_linux_riscv.cpp | 137 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp | 13 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_s390/safefetch_linux_s390.S | 57 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp | 14 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_x86/safefetch_linux_x86_32.S | 43 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_x86/safefetch_linux_x86_64.S | 58 openjdk-17-17.0.9+9/src/hotspot/os_cpu/linux_zero/os_linux_zero.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/os_cpu/windows_aarch64/os_windows_aarch64.cpp | 13 openjdk-17-17.0.9+9/src/hotspot/os_cpu/windows_x86/os_windows_x86.cpp | 23 openjdk-17-17.0.9+9/src/hotspot/os_cpu/windows_x86/os_windows_x86.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/adlc/formssel.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/adlc/output_c.cpp | 22 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_Compilation.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_Compiler.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_Instruction.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_LIR.cpp | 139 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_LIR.hpp | 244 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_LIRAssembler.cpp | 15 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_LIRAssembler.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_LIRGenerator.cpp | 23 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_LIRGenerator.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_LinearScan.cpp | 28 openjdk-17-17.0.9+9/src/hotspot/share/c1/c1_RangeCheckElimination.cpp | 37 openjdk-17-17.0.9+9/src/hotspot/share/cds/filemap.cpp | 34 openjdk-17-17.0.9+9/src/hotspot/share/ci/ciReplay.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/classfile/altHashing.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/classfile/classLoaderData.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/classfile/classLoaderDataGraph.inline.hpp | 19 openjdk-17-17.0.9+9/src/hotspot/share/classfile/javaClasses.cpp | 73 openjdk-17-17.0.9+9/src/hotspot/share/classfile/javaClasses.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/classfile/javaClasses.inline.hpp | 11 openjdk-17-17.0.9+9/src/hotspot/share/classfile/stringTable.cpp | 57 openjdk-17-17.0.9+9/src/hotspot/share/classfile/stringTable.hpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/classfile/symbolTable.cpp | 50 openjdk-17-17.0.9+9/src/hotspot/share/classfile/symbolTable.hpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/classfile/verifier.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/classfile/verifier.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/classfile/vmIntrinsics.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/classfile/vmIntrinsics.hpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/code/codeBlob.cpp | 7 openjdk-17-17.0.9+9/src/hotspot/share/code/codeCache.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/code/codeHeapState.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/code/compiledIC.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/code/icBuffer.cpp | 14 openjdk-17-17.0.9+9/src/hotspot/share/code/icBuffer.hpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/code/nmethod.cpp | 20 openjdk-17-17.0.9+9/src/hotspot/share/compiler/compilationPolicy.hpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/compiler/compileBroker.cpp | 187 openjdk-17-17.0.9+9/src/hotspot/share/compiler/compilerDefinitions.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/compiler/compilerOracle.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/compiler/disassembler.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/epsilon/epsilonHeap.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1BarrierSet.cpp | 15 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1BarrierSet.hpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1BarrierSet.inline.hpp | 39 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1CollectedHeap.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1CollectedHeap.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1ConcurrentMarkThread.cpp | 26 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1FullCollector.cpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1FullGCMarker.hpp | 12 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp | 46 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1MonitoringSupport.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1ServiceThread.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1VMOperations.cpp | 19 openjdk-17-17.0.9+9/src/hotspot/share/gc/g1/g1VMOperations.hpp | 33 openjdk-17-17.0.9+9/src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/parallel/psParallelCompact.cpp | 7 openjdk-17-17.0.9+9/src/hotspot/share/gc/parallel/psScavenge.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/parallel/spaceCounters.cpp | 28 openjdk-17-17.0.9+9/src/hotspot/share/gc/parallel/spaceCounters.hpp | 17 openjdk-17-17.0.9+9/src/hotspot/share/gc/serial/cSpaceCounters.cpp | 32 openjdk-17-17.0.9+9/src/hotspot/share/gc/serial/cSpaceCounters.hpp | 17 openjdk-17-17.0.9+9/src/hotspot/share/gc/serial/defNewGeneration.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/serial/genMarkSweep.cpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/gc/serial/serialHeap.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/collectedHeap.cpp | 23 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/collectedHeap.hpp | 24 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/gcTrace.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/gcTrace.hpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/gcVMOperations.cpp | 11 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/genCollectedHeap.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/memAllocator.cpp | 28 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/memAllocator.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/oopStorage.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp | 141 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/mode/shenandoahIUMode.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/mode/shenandoahSATBMode.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp | 17 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahBarrierSetClone.inline.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp | 14 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp | 15 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahControlThread.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp | 42 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp | 23 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp | 122 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahMark.cpp | 41 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahMark.hpp | 18 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahMark.inline.hpp | 45 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahNumberSeq.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahNumberSeq.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp | 17 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp | 17 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahSTWMark.cpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.inline.hpp | 15 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoahVMOperations.cpp | 14 openjdk-17-17.0.9+9/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/z/c1/zBarrierSetC1.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/gc/z/zCollectedHeap.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/z/zCollectedHeap.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/z/zHeap.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/z/zHeap.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/z/zHeapIterator.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/gc/z/zServiceability.cpp | 9 openjdk-17-17.0.9+9/src/hotspot/share/gc/z/zServiceability.hpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/include/jvm.h | 5 openjdk-17-17.0.9+9/src/hotspot/share/interpreter/oopMapCache.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp | 17 openjdk-17-17.0.9+9/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp | 15 openjdk-17-17.0.9+9/src/hotspot/share/jfr/jni/jfrJniMethod.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/jfr/jni/jfrJniMethod.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.cpp | 19 openjdk-17-17.0.9+9/src/hotspot/share/jfr/leakprofiler/chains/edgeStore.cpp | 99 openjdk-17-17.0.9+9/src/hotspot/share/jfr/leakprofiler/chains/edgeStore.hpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/jfr/leakprofiler/checkpoint/eventEmitter.cpp | 19 openjdk-17-17.0.9+9/src/hotspot/share/jfr/metadata/metadata.xml | 14 openjdk-17-17.0.9+9/src/hotspot/share/jfr/periodic/jfrOSInterface.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp | 26 openjdk-17-17.0.9+9/src/hotspot/share/jfr/recorder/service/jfrRecorderThread.cpp | 33 openjdk-17-17.0.9+9/src/hotspot/share/jfr/recorder/storage/jfrStorageUtils.hpp | 7 openjdk-17-17.0.9+9/src/hotspot/share/jfr/recorder/storage/jfrStorageUtils.inline.hpp | 9 openjdk-17-17.0.9+9/src/hotspot/share/jfr/recorder/stringpool/jfrStringPool.cpp | 41 openjdk-17-17.0.9+9/src/hotspot/share/jfr/recorder/stringpool/jfrStringPool.hpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/jfr/support/jfrThreadLocal.cpp | 18 openjdk-17-17.0.9+9/src/hotspot/share/jfr/support/jfrThreadLocal.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/jfr/utilities/jfrBigEndian.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/logging/logAsyncWriter.cpp | 7 openjdk-17-17.0.9+9/src/hotspot/share/logging/logAsyncWriter.hpp | 18 openjdk-17-17.0.9+9/src/hotspot/share/logging/logFileOutput.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/logging/logFileOutput.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/logging/logFileStreamOutput.cpp | 35 openjdk-17-17.0.9+9/src/hotspot/share/logging/logFileStreamOutput.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/logging/logTag.hpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/memory/allocation.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/memory/arena.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/memory/heapInspection.cpp | 36 openjdk-17-17.0.9+9/src/hotspot/share/memory/heapInspection.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/memory/metaspace.cpp | 38 openjdk-17-17.0.9+9/src/hotspot/share/memory/resourceArea.hpp | 34 openjdk-17-17.0.9+9/src/hotspot/share/oops/constantPool.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/oops/instanceKlass.cpp | 12 openjdk-17-17.0.9+9/src/hotspot/share/oops/klass.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/oops/klass.hpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/oops/oop.hpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/oops/oop.inline.hpp | 14 openjdk-17-17.0.9+9/src/hotspot/share/oops/oopHandle.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/oops/symbol.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/oops/typeArrayKlass.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/oops/typeArrayOop.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/oops/typeArrayOop.inline.hpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/opto/addnode.cpp | 108 openjdk-17-17.0.9+9/src/hotspot/share/opto/arraycopynode.cpp | 84 openjdk-17-17.0.9+9/src/hotspot/share/opto/arraycopynode.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/opto/block.cpp | 64 openjdk-17-17.0.9+9/src/hotspot/share/opto/block.hpp | 44 openjdk-17-17.0.9+9/src/hotspot/share/opto/buildOopMap.cpp | 38 openjdk-17-17.0.9+9/src/hotspot/share/opto/bytecodeInfo.cpp | 64 openjdk-17-17.0.9+9/src/hotspot/share/opto/c2_globals.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/opto/c2compiler.cpp | 7 openjdk-17-17.0.9+9/src/hotspot/share/opto/callGenerator.cpp | 108 openjdk-17-17.0.9+9/src/hotspot/share/opto/callGenerator.hpp | 14 openjdk-17-17.0.9+9/src/hotspot/share/opto/callnode.cpp | 315 openjdk-17-17.0.9+9/src/hotspot/share/opto/callnode.hpp | 64 openjdk-17-17.0.9+9/src/hotspot/share/opto/castnode.cpp | 56 openjdk-17-17.0.9+9/src/hotspot/share/opto/castnode.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/cfgnode.cpp | 467 openjdk-17-17.0.9+9/src/hotspot/share/opto/cfgnode.hpp | 47 openjdk-17-17.0.9+9/src/hotspot/share/opto/chaitin.cpp | 60 openjdk-17-17.0.9+9/src/hotspot/share/opto/chaitin.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/classes.hpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/opto/coalesce.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/opto/compile.cpp | 507 openjdk-17-17.0.9+9/src/hotspot/share/opto/compile.hpp | 55 openjdk-17-17.0.9+9/src/hotspot/share/opto/connode.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/connode.hpp | 16 openjdk-17-17.0.9+9/src/hotspot/share/opto/constantTable.cpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/convertnode.cpp | 28 openjdk-17-17.0.9+9/src/hotspot/share/opto/divnode.cpp | 96 openjdk-17-17.0.9+9/src/hotspot/share/opto/divnode.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/doCall.cpp | 142 openjdk-17-17.0.9+9/src/hotspot/share/opto/domgraph.cpp | 52 openjdk-17-17.0.9+9/src/hotspot/share/opto/escape.cpp | 334 openjdk-17-17.0.9+9/src/hotspot/share/opto/escape.hpp | 30 openjdk-17-17.0.9+9/src/hotspot/share/opto/gcm.cpp | 142 openjdk-17-17.0.9+9/src/hotspot/share/opto/generateOptoStub.cpp | 12 openjdk-17-17.0.9+9/src/hotspot/share/opto/graphKit.cpp | 443 openjdk-17-17.0.9+9/src/hotspot/share/opto/graphKit.hpp | 84 openjdk-17-17.0.9+9/src/hotspot/share/opto/idealGraphPrinter.cpp | 82 openjdk-17-17.0.9+9/src/hotspot/share/opto/idealGraphPrinter.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/idealKit.cpp | 52 openjdk-17-17.0.9+9/src/hotspot/share/opto/idealKit.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/ifg.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/ifnode.cpp | 339 openjdk-17-17.0.9+9/src/hotspot/share/opto/indexSet.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/indexSet.hpp | 12 openjdk-17-17.0.9+9/src/hotspot/share/opto/intrinsicnode.cpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/lcm.cpp | 72 openjdk-17-17.0.9+9/src/hotspot/share/opto/library_call.cpp | 905 openjdk-17-17.0.9+9/src/hotspot/share/opto/library_call.hpp | 31 openjdk-17-17.0.9+9/src/hotspot/share/opto/live.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/opto/live.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/locknode.cpp | 14 openjdk-17-17.0.9+9/src/hotspot/share/opto/locknode.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/opto/loopPredicate.cpp | 230 openjdk-17-17.0.9+9/src/hotspot/share/opto/loopTransform.cpp | 325 openjdk-17-17.0.9+9/src/hotspot/share/opto/loopUnswitch.cpp | 26 openjdk-17-17.0.9+9/src/hotspot/share/opto/loopnode.cpp | 580 openjdk-17-17.0.9+9/src/hotspot/share/opto/loopnode.hpp | 124 openjdk-17-17.0.9+9/src/hotspot/share/opto/loopopts.cpp | 334 openjdk-17-17.0.9+9/src/hotspot/share/opto/machnode.cpp | 66 openjdk-17-17.0.9+9/src/hotspot/share/opto/machnode.hpp | 40 openjdk-17-17.0.9+9/src/hotspot/share/opto/macro.cpp | 320 openjdk-17-17.0.9+9/src/hotspot/share/opto/macro.hpp | 18 openjdk-17-17.0.9+9/src/hotspot/share/opto/macroArrayCopy.cpp | 184 openjdk-17-17.0.9+9/src/hotspot/share/opto/matcher.cpp | 284 openjdk-17-17.0.9+9/src/hotspot/share/opto/matcher.hpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/opto/mathexactnode.cpp | 12 openjdk-17-17.0.9+9/src/hotspot/share/opto/memnode.cpp | 682 openjdk-17-17.0.9+9/src/hotspot/share/opto/memnode.hpp | 63 openjdk-17-17.0.9+9/src/hotspot/share/opto/movenode.cpp | 62 openjdk-17-17.0.9+9/src/hotspot/share/opto/movenode.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/opto/mulnode.cpp | 50 openjdk-17-17.0.9+9/src/hotspot/share/opto/mulnode.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/opto/multnode.cpp | 48 openjdk-17-17.0.9+9/src/hotspot/share/opto/multnode.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/opto/narrowptrnode.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/opto/node.cpp | 342 openjdk-17-17.0.9+9/src/hotspot/share/opto/node.hpp | 117 openjdk-17-17.0.9+9/src/hotspot/share/opto/opaquenode.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/opaquenode.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/output.cpp | 204 openjdk-17-17.0.9+9/src/hotspot/share/opto/output.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/parse.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/parse1.cpp | 160 openjdk-17-17.0.9+9/src/hotspot/share/opto/parse2.cpp | 132 openjdk-17-17.0.9+9/src/hotspot/share/opto/parse3.cpp | 36 openjdk-17-17.0.9+9/src/hotspot/share/opto/parseHelper.cpp | 18 openjdk-17-17.0.9+9/src/hotspot/share/opto/phase.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/phaseX.cpp | 182 openjdk-17-17.0.9+9/src/hotspot/share/opto/phaseX.hpp | 41 openjdk-17-17.0.9+9/src/hotspot/share/opto/phasetype.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/postaloc.cpp | 56 openjdk-17-17.0.9+9/src/hotspot/share/opto/reg_split.cpp | 54 openjdk-17-17.0.9+9/src/hotspot/share/opto/regmask.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/opto/replacednodes.cpp | 16 openjdk-17-17.0.9+9/src/hotspot/share/opto/replacednodes.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/opto/rootnode.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/opto/runtime.cpp | 96 openjdk-17-17.0.9+9/src/hotspot/share/opto/runtime.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/split_if.cpp | 29 openjdk-17-17.0.9+9/src/hotspot/share/opto/stringopts.cpp | 134 openjdk-17-17.0.9+9/src/hotspot/share/opto/subnode.cpp | 133 openjdk-17-17.0.9+9/src/hotspot/share/opto/subnode.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/subtypenode.cpp | 35 openjdk-17-17.0.9+9/src/hotspot/share/opto/superword.cpp | 398 openjdk-17-17.0.9+9/src/hotspot/share/opto/superword.hpp | 34 openjdk-17-17.0.9+9/src/hotspot/share/opto/type.cpp | 350 openjdk-17-17.0.9+9/src/hotspot/share/opto/type.hpp | 132 openjdk-17-17.0.9+9/src/hotspot/share/opto/vector.cpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/opto/vectorIntrinsics.cpp | 166 openjdk-17-17.0.9+9/src/hotspot/share/opto/vectornode.cpp | 38 openjdk-17-17.0.9+9/src/hotspot/share/opto/vectornode.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/prims/forte.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/prims/jni.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/prims/jniCheck.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/prims/jniCheck.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/prims/jvm.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/prims/jvmtiEnv.cpp | 29 openjdk-17-17.0.9+9/src/hotspot/share/prims/jvmtiExport.cpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/prims/jvmtiImpl.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/prims/jvmtiRedefineClasses.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/prims/resolvedMethodTable.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/prims/unsafe.cpp | 29 openjdk-17-17.0.9+9/src/hotspot/share/prims/whitebox.cpp | 33 openjdk-17-17.0.9+9/src/hotspot/share/runtime/abstract_vm_version.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/runtime/abstract_vm_version.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/runtime/flags/jvmFlagLimit.cpp | 1 openjdk-17-17.0.9+9/src/hotspot/share/runtime/frame.cpp | 9 openjdk-17-17.0.9+9/src/hotspot/share/runtime/frame.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/runtime/globals.hpp | 47 openjdk-17-17.0.9+9/src/hotspot/share/runtime/interfaceSupport.inline.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/runtime/java.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/runtime/monitorDeflationThread.cpp | 62 openjdk-17-17.0.9+9/src/hotspot/share/runtime/monitorDeflationThread.hpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/runtime/nonJavaThread.cpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/runtime/notificationThread.cpp | 26 openjdk-17-17.0.9+9/src/hotspot/share/runtime/notificationThread.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/runtime/objectMonitor.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/runtime/os.cpp | 33 openjdk-17-17.0.9+9/src/hotspot/share/runtime/os.hpp | 15 openjdk-17-17.0.9+9/src/hotspot/share/runtime/relocator.cpp | 19 openjdk-17-17.0.9+9/src/hotspot/share/runtime/safefetch.hpp | 58 openjdk-17-17.0.9+9/src/hotspot/share/runtime/safefetch.inline.hpp | 74 openjdk-17-17.0.9+9/src/hotspot/share/runtime/safefetch_static.hpp | 43 openjdk-17-17.0.9+9/src/hotspot/share/runtime/safepoint.cpp | 91 openjdk-17-17.0.9+9/src/hotspot/share/runtime/safepoint.hpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/runtime/serviceThread.cpp | 27 openjdk-17-17.0.9+9/src/hotspot/share/runtime/serviceThread.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/runtime/sharedRuntime.cpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/runtime/stubRoutines.cpp | 9 openjdk-17-17.0.9+9/src/hotspot/share/runtime/stubRoutines.hpp | 36 openjdk-17-17.0.9+9/src/hotspot/share/runtime/synchronizer.cpp | 65 openjdk-17-17.0.9+9/src/hotspot/share/runtime/thread.cpp | 82 openjdk-17-17.0.9+9/src/hotspot/share/runtime/thread.hpp | 39 openjdk-17-17.0.9+9/src/hotspot/share/runtime/thread.inline.hpp | 6 openjdk-17-17.0.9+9/src/hotspot/share/runtime/threadSMR.cpp | 29 openjdk-17-17.0.9+9/src/hotspot/share/runtime/threadSMR.hpp | 23 openjdk-17-17.0.9+9/src/hotspot/share/runtime/trimNativeHeap.cpp | 275 openjdk-17-17.0.9+9/src/hotspot/share/runtime/trimNativeHeap.hpp | 69 openjdk-17-17.0.9+9/src/hotspot/share/runtime/vmOperation.hpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/runtime/vmStructs.cpp | 2 openjdk-17-17.0.9+9/src/hotspot/share/services/attachListener.cpp | 18 openjdk-17-17.0.9+9/src/hotspot/share/services/diagnosticCommand.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/services/heapDumperCompression.cpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/services/memReporter.cpp | 8 openjdk-17-17.0.9+9/src/hotspot/share/services/memoryManager.cpp | 12 openjdk-17-17.0.9+9/src/hotspot/share/services/memoryManager.hpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/services/memoryService.cpp | 20 openjdk-17-17.0.9+9/src/hotspot/share/services/memoryService.hpp | 23 openjdk-17-17.0.9+9/src/hotspot/share/services/threadIdTable.cpp | 5 openjdk-17-17.0.9+9/src/hotspot/share/utilities/compilerWarnings.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/utilities/compilerWarnings_gcc.hpp | 10 openjdk-17-17.0.9+9/src/hotspot/share/utilities/concurrentHashTable.inline.hpp | 12 openjdk-17-17.0.9+9/src/hotspot/share/utilities/debug.cpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/utilities/globalDefinitions.hpp | 3 openjdk-17-17.0.9+9/src/hotspot/share/utilities/macros.hpp | 26 openjdk-17-17.0.9+9/src/hotspot/share/utilities/nativeCallStack.hpp | 4 openjdk-17-17.0.9+9/src/hotspot/share/utilities/vmError.cpp | 351 openjdk-17-17.0.9+9/src/hotspot/share/utilities/vmError.hpp | 19 openjdk-17-17.0.9+9/src/java.base/linux/classes/jdk/internal/platform/CgroupV1Metrics.java | 20 openjdk-17-17.0.9+9/src/java.base/linux/classes/jdk/internal/platform/CgroupV1MetricsImpl.java | 10 openjdk-17-17.0.9+9/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/CgroupV1Subsystem.java | 8 openjdk-17-17.0.9+9/src/java.base/macosx/classes/apple/security/KeychainStore.java | 47 openjdk-17-17.0.9+9/src/java.base/macosx/native/libjava/ProcessHandleImpl_macosx.c | 4 openjdk-17-17.0.9+9/src/java.base/macosx/native/libosxsecurity/KeystoreImpl.m | 135 openjdk-17-17.0.9+9/src/java.base/share/classes/com/sun/crypto/provider/DESKey.java | 27 openjdk-17-17.0.9+9/src/java.base/share/classes/com/sun/crypto/provider/DESedeKey.java | 29 openjdk-17-17.0.9+9/src/java.base/share/classes/com/sun/crypto/provider/DHPrivateKey.java | 34 openjdk-17-17.0.9+9/src/java.base/share/classes/com/sun/crypto/provider/DHPublicKey.java | 34 openjdk-17-17.0.9+9/src/java.base/share/classes/com/sun/crypto/provider/PBEKey.java | 39 openjdk-17-17.0.9+9/src/java.base/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java | 44 openjdk-17-17.0.9+9/src/java.base/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java | 27 openjdk-17-17.0.9+9/src/java.base/share/classes/java/io/DataInputStream.java | 42 openjdk-17-17.0.9+9/src/java.base/share/classes/java/lang/ClassLoader.java | 5 openjdk-17-17.0.9+9/src/java.base/share/classes/java/lang/String.java | 44 openjdk-17-17.0.9+9/src/java.base/share/classes/java/lang/System.java | 4 openjdk-17-17.0.9+9/src/java.base/share/classes/java/lang/Thread.java | 15 openjdk-17-17.0.9+9/src/java.base/share/classes/java/lang/reflect/Proxy.java | 2 openjdk-17-17.0.9+9/src/java.base/share/classes/java/net/URI.java | 38 openjdk-17-17.0.9+9/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template | 9 openjdk-17-17.0.9+9/src/java.base/share/classes/java/security/CodeSigner.java | 15 openjdk-17-17.0.9+9/src/java.base/share/classes/java/security/Provider.java | 29 openjdk-17-17.0.9+9/src/java.base/share/classes/java/security/cert/CertPathHelperImpl.java | 11 openjdk-17-17.0.9+9/src/java.base/share/classes/java/security/cert/X509CertSelector.java | 14 openjdk-17-17.0.9+9/src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java | 20 openjdk-17-17.0.9+9/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java | 20 openjdk-17-17.0.9+9/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java | 4 openjdk-17-17.0.9+9/src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java | 4 openjdk-17-17.0.9+9/src/java.base/share/classes/java/util/jar/JarFile.java | 12 openjdk-17-17.0.9+9/src/java.base/share/classes/java/util/zip/ZipFile.java | 164 openjdk-17-17.0.9+9/src/java.base/share/classes/javax/crypto/JceSecurity.java.template | 6 openjdk-17-17.0.9+9/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java | 27 openjdk-17-17.0.9+9/src/java.base/share/classes/javax/security/auth/callback/ChoiceCallback.java | 53 openjdk-17-17.0.9+9/src/java.base/share/classes/javax/security/auth/callback/ConfirmationCallback.java | 47 openjdk-17-17.0.9+9/src/java.base/share/classes/javax/security/auth/callback/PasswordCallback.java | 65 openjdk-17-17.0.9+9/src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java | 6 openjdk-17-17.0.9+9/src/java.base/share/classes/jdk/internal/event/SecurityProviderServiceEvent.java | 45 openjdk-17-17.0.9+9/src/java.base/share/classes/jdk/internal/icu/text/BidiBase.java | 2 openjdk-17-17.0.9+9/src/java.base/share/classes/jdk/internal/misc/Unsafe.java | 6 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/launcher/LauncherHelper.java | 5 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/net/util/SocketExceptions.java | 13 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/net/www/HeaderParser.java | 16 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/net/www/http/HttpClient.java | 20 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/net/www/http/KeepAliveCache.java | 2 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java | 9 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java | 13 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java | 16 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/net/www/protocol/http/Negotiator.java | 2 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/nio/ch/NioSocketImpl.java | 7 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/nio/ch/SelChImpl.java | 8 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/nio/cs/GB18030.java |12839 ++ openjdk-17-17.0.9+9/src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template | 11 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/pkcs/PKCS7.java | 26 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/DSAPublicKeyImpl.java | 27 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/PolicyFile.java | 31 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/SecureRandom.java | 54 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/certpath/CertPathHelper.java | 14 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/certpath/ForwardBuilder.java | 65 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/certpath/ForwardState.java | 50 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/certpath/OCSP.java | 27 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/certpath/SunCertPathBuilder.java | 109 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/provider/certpath/X509CertPath.java | 23 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java | 22 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java | 29 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/rsa/RSAPublicKeyImpl.java | 24 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/ssl/DHKeyExchange.java | 35 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java | 29 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/security/x509/X509CertImpl.java | 30 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java | 34 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java | 16 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java | 49 openjdk-17-17.0.9+9/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java | 6 openjdk-17-17.0.9+9/src/java.base/share/conf/security/java.security | 3 openjdk-17-17.0.9+9/src/java.base/share/legal/public_suffix.md | 2 openjdk-17-17.0.9+9/src/java.base/share/native/libjava/Thread.c | 3 openjdk-17-17.0.9+9/src/java.base/share/native/libjava/jni_util.c | 12 openjdk-17-17.0.9+9/src/java.base/share/native/libjava/jni_util.h | 3 openjdk-17-17.0.9+9/src/java.base/unix/classes/sun/nio/fs/UnixUriUtils.java | 8 openjdk-17-17.0.9+9/src/java.base/unix/native/libnio/MappedMemoryUtils.c | 8 openjdk-17-17.0.9+9/src/java.base/unix/native/libnio/ch/Net.c | 84 openjdk-17-17.0.9+9/src/java.base/windows/native/libnet/DefaultProxySelector.c | 2 openjdk-17-17.0.9+9/src/java.desktop/macosx/classes/com/apple/eio/FileManager.java | 17 openjdk-17-17.0.9+9/src/java.desktop/macosx/classes/com/apple/laf/AquaFileView.java | 7 openjdk-17-17.0.9+9/src/java.desktop/macosx/classes/com/apple/laf/ScreenMenu.java | 7 openjdk-17-17.0.9+9/src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessibility.java | 8 openjdk-17-17.0.9+9/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java | 97 openjdk-17-17.0.9+9/src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java | 21 openjdk-17-17.0.9+9/src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m | 42 openjdk-17-17.0.9+9/src/java.desktop/macosx/native/libawt_lwawt/awt/CRobot.m | 6 openjdk-17-17.0.9+9/src/java.desktop/macosx/native/libawt_lwawt/awt/QuartzSurfaceData.h | 10 openjdk-17-17.0.9+9/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java | 6 openjdk-17-17.0.9+9/src/java.desktop/share/classes/com/sun/media/sound/DirectAudioDevice.java | 5 openjdk-17-17.0.9+9/src/java.desktop/share/classes/java/awt/EventQueue.java | 22 openjdk-17-17.0.9+9/src/java.desktop/share/classes/java/awt/Font.java | 6 openjdk-17-17.0.9+9/src/java.desktop/share/classes/java/beans/Introspector.java | 13 openjdk-17-17.0.9+9/src/java.desktop/share/classes/javax/print/DocFlavor.java | 8 openjdk-17-17.0.9+9/src/java.desktop/share/classes/javax/swing/ImageIcon.java | 48 openjdk-17-17.0.9+9/src/java.desktop/share/classes/javax/swing/JPopupMenu.java | 13 openjdk-17-17.0.9+9/src/java.desktop/share/classes/javax/swing/JRootPane.java | 21 openjdk-17-17.0.9+9/src/java.desktop/share/classes/javax/swing/SortingFocusTraversalPolicy.java | 11 openjdk-17-17.0.9+9/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java | 12 openjdk-17-17.0.9+9/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html | 7 openjdk-17-17.0.9+9/src/java.desktop/share/classes/sun/awt/FontConfiguration.java | 9 openjdk-17-17.0.9+9/src/java.desktop/share/classes/sun/awt/image/ImageRepresentation.java | 22 openjdk-17-17.0.9+9/src/java.desktop/share/classes/sun/awt/image/SurfaceManager.java | 2 openjdk-17-17.0.9+9/src/java.desktop/share/classes/sun/font/FontUtilities.java | 5 openjdk-17-17.0.9+9/src/java.desktop/share/classes/sun/font/StrikeCache.java | 6 openjdk-17-17.0.9+9/src/java.desktop/share/classes/sun/java2d/SunGraphicsEnvironment.java | 15 openjdk-17-17.0.9+9/src/java.desktop/share/classes/sun/print/RasterPrinterJob.java | 2 openjdk-17-17.0.9+9/src/java.desktop/share/classes/sun/swing/JLightweightFrame.java | 35 openjdk-17-17.0.9+9/src/java.desktop/share/legal/freetype.md | 41 openjdk-17-17.0.9+9/src/java.desktop/share/legal/harfbuzz.md | 49 openjdk-17-17.0.9+9/src/java.desktop/share/legal/lcms.md | 13 openjdk-17-17.0.9+9/src/java.desktop/share/legal/libpng.md | 5 openjdk-17-17.0.9+9/src/java.desktop/share/native/libawt/java2d/loops/FourByteAbgrPre.c | 10 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfontmanager/freetypeScaler.c | 5 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/config/ftconfig.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/config/ftheader.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/config/ftoption.h | 36 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/config/ftstdlib.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/config/integer-types.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/config/mac-support.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/config/public-macros.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/freetype.h | 232 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftadvanc.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftbbox.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftbdf.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftbitmap.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftcid.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftcolor.h | 155 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftdriver.h | 3 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/fterrdef.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/fterrors.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftfntfmt.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftgasp.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftglyph.h | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftgzip.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftimage.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftincrem.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftlcdfil.h | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftlist.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftlogging.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftmac.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftmm.h | 19 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftmodapi.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftmoderr.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftoutln.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftparams.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftrender.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftsizes.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftsnames.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftstroke.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftsynth.h | 13 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ftsystem.h | 14 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/fttrigon.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/fttypes.h | 7 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/autohint.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/cffotypes.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/cfftypes.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/compiler-macros.h | 17 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftcalc.h | 46 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftdebug.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftdrv.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftgloadr.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftmemory.h | 14 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftmmtypes.h | 85 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftobjs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftpsprop.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftrfork.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftserv.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftstream.h | 110 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/fttrace.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/ftvalid.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/psaux.h | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/pshints.h | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svbdf.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svcfftl.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svcid.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svfntfmt.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svgldict.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svgxval.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svkern.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svmetric.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svmm.h | 125 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svotval.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpfr.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpostnm.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svprop.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpscmap.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpsinfo.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svsfnt.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svttcmap.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svtteng.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svttglyf.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svwinfnt.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/sfnt.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/svginterface.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/t1types.h | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/tttypes.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/internal/wofftypes.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/otsvg.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/t1tables.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/ttnameid.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/tttables.h | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/freetype/tttags.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/include/ft2build.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afblue.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afblue.cin | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afblue.dat | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afblue.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afblue.hin | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afcjk.c | 26 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afcjk.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afcover.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afdummy.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afdummy.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/aferrors.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afglobal.c | 47 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afglobal.h | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afhints.c | 44 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afhints.h | 21 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afindic.c | 5 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afindic.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/aflatin.c | 87 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/aflatin.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afloader.c | 5 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afloader.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afmodule.c | 42 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afmodule.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afranges.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afranges.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afscript.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afshaper.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afshaper.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afstyles.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/aftypes.h | 24 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afws-decl.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/autofit/afws-iter.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftadvanc.c | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftbase.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftbbox.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftbitmap.c | 92 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftcalc.c | 69 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftcid.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftcolor.c | 156 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftdbgmem.c | 50 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftdebug.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftfntfmt.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftfstype.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftgasp.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftgloadr.c | 32 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftglyph.c | 5 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftinit.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftlcdfil.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftmac.c | 3 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftmm.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftobjs.c | 223 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftoutln.c | 44 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftpatent.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftpsprop.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftrfork.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftsnames.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftstream.c | 40 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftstroke.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftsynth.c | 22 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftsystem.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/fttrigon.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/fttype1.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/base/ftutil.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffcmap.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffcmap.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffdrivr.c | 142 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffdrivr.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cfferrs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffgload.c | 42 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffgload.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffload.c | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffload.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffobjs.c | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffobjs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffparse.c | 16 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cffparse.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cff/cfftoken.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/ciderrs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidgload.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidgload.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidload.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidload.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidobjs.c | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidobjs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidparse.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidparse.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidriver.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidriver.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/cid/cidtoken.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/afmparse.c | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/afmparse.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/cffdecode.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/cffdecode.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psauxerr.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psauxmod.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psauxmod.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psconv.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psconv.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psfixed.h | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psft.c | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psglue.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/pshints.c | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psobjs.c | 5 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psobjs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/psstack.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/t1cmap.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/t1cmap.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/t1decode.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psaux/t1decode.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshalgo.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshalgo.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshglob.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshglob.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshmod.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshmod.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshnterr.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshrec.c | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/pshinter/pshrec.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psnames/psmodule.c | 33 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psnames/psmodule.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psnames/psnamerr.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/psnames/pstables.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/raster/ftmisc.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/raster/ftraster.c | 18 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/raster/ftraster.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/raster/ftrend1.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/raster/ftrend1.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/raster/rasterrs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/pngshim.c | 7 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/pngshim.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sfdriver.c | 36 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sfdriver.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sferrors.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sfobjs.c | 10 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sfobjs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff.c | 13 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff2.c | 67 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff2.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttcmap.c | 5 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttcmap.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttcmapc.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttcolr.c | 731 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttcolr.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttcpal.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttcpal.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttkern.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttkern.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttload.c | 28 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttload.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttmtx.c | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttmtx.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttpost.c | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttpost.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttsbit.c | 45 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/ttsbit.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/woff2tags.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/sfnt/woff2tags.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/smooth/ftgrays.c | 38 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/smooth/ftgrays.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/smooth/ftsmerrs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/smooth/ftsmooth.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/smooth/ftsmooth.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttdriver.c | 43 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttdriver.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/tterrors.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttgload.c | 234 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttgload.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttgxvar.c | 784 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttgxvar.h | 102 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.c | 32 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttobjs.c | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttobjs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttpload.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttpload.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttsubpix.c | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/truetype/ttsubpix.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1afm.c | 23 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1afm.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1driver.c | 39 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1driver.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1errors.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1gload.c | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1gload.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1load.c | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1load.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1objs.c | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1objs.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1parse.c | 57 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1parse.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libfreetype/src/type1/t1tokens.h | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Color/CBDT/CBDT.hh | 1030 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Color/COLR/COLR.hh | 2436 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Color/COLR/colrv1-closure.hh | 107 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Color/CPAL/CPAL.hh | 350 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Color/sbix/sbix.hh | 452 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Color/svg/svg.hh | 151 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/Common/Coverage.hh | 337 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/Common/CoverageFormat1.hh | 133 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/Common/CoverageFormat2.hh | 232 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/Common/RangeRecord.hh | 85 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GDEF/GDEF.hh | 918 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS.hh | 165 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/Anchor.hh | 3 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/AnchorFormat3.hh | 50 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/Common.hh | 3 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/CursivePos.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/CursivePosFormat1.hh | 22 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/GPOS.hh | 171 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/LigatureArray.hh | 56 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/MarkArray.hh | 23 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/MarkBasePos.hh | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/MarkBasePosFormat1.hh | 95 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/MarkLigPos.hh | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/MarkLigPosFormat1.hh | 95 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/MarkMarkPos.hh | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/MarkMarkPosFormat1.hh | 15 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/MarkRecord.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/PairPos.hh | 16 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/PairPosFormat1.hh | 291 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/PairPosFormat2.hh | 59 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/PairSet.hh | 207 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/PairValueRecord.hh | 99 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/SinglePos.hh | 20 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/SinglePosFormat1.hh | 60 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/SinglePosFormat2.hh | 44 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/ValueFormat.hh | 111 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/AlternateSet.hh | 22 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/AlternateSubst.hh | 19 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/AlternateSubstFormat1.hh | 16 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/ChainContextSubst.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/Common.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/ContextSubst.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/ExtensionSubst.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/GSUB.hh | 19 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/Ligature.hh | 63 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/LigatureSet.hh | 27 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/LigatureSubst.hh | 20 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/LigatureSubstFormat1.hh | 25 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/MultipleSubst.hh | 25 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/MultipleSubstFormat1.hh | 42 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/ReverseChainSingleSubst.hh | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/ReverseChainSingleSubstFormat1.hh | 40 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/Sequence.hh | 66 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/SingleSubst.hh | 42 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/SingleSubstFormat1.hh | 124 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/SingleSubstFormat2.hh | 74 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/SubstLookup.hh | 28 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/GSUB/SubstLookupSubTable.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/Layout/types.hh | 66 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/CompositeGlyph.hh | 251 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/Glyph.hh | 409 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/GlyphHeader.hh | 16 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/SimpleGlyph.hh | 137 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/SubsetGlyph.hh | 94 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/VarCompositeGlyph.hh | 371 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/composite-iter.hh | 68 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/coord-setter.hh | 34 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/glyf-helpers.hh | 20 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/glyf.hh | 254 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/glyf/path-builder.hh | 96 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/OT/name/name.hh | 589 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/UPDATING.txt | 126 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/classdef-graph.hh | 216 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/coverage-graph.hh | 152 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/graph.hh | 602 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/gsubgpos-context.cc | 70 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/gsubgpos-context.hh | 61 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/gsubgpos-graph.hh | 414 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/markbasepos-graph.hh | 510 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/pairpos-graph.hh | 647 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/serialize.hh | 29 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/graph/split-helpers.hh | 69 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-bsln-table.hh | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-common.hh | 131 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-feat-table.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-just-table.hh | 32 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-kerx-table.hh | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-morx-table.hh | 74 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-opbd-table.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout-trak-table.hh | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout.cc | 25 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-layout.hh | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-map.cc | 130 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-aat-map.hh | 51 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-algs.hh | 236 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-array.hh | 113 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-atomic.hh | 61 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-bimap.hh | 9 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-bit-page.hh | 114 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-bit-set-invertible.hh | 11 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-bit-set.hh | 127 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-blob.cc | 22 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-blob.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-blob.hh | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer-deserialize-json.hh | 455 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer-deserialize-text-glyphs.hh | 692 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer-deserialize-text-unicode.hh | 332 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer-deserialize-text.hh | 853 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer-serialize.cc | 49 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer-verify.cc | 9 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer.cc | 223 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer.h | 33 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-buffer.hh | 99 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-cache.hh | 49 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-cff-interp-common.hh | 103 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-cff-interp-cs-common.hh | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-cff-interp-dict-common.hh | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-cff1-interp-cs.hh | 3 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-cff2-interp-cs.hh | 25 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-common.cc | 101 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-common.h | 37 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-config.hh | 25 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-cplusplus.hh | 43 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-debug.hh | 25 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-deprecated.h | 16 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-draw.cc | 162 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-draw.h | 35 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-face-builder.cc | 246 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-face.cc | 219 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-face.h | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-face.hh | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-fallback-shape.cc | 10 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-font.cc | 607 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-font.h | 170 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-font.hh | 126 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ft.cc | 456 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-iter.hh | 30 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-limits.hh | 109 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-machinery.hh | 53 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-map.cc | 102 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-map.h | 21 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-map.hh | 264 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-meta.hh | 15 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-multimap.hh | 92 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-mutex.hh | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-null.hh | 31 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-number-parser.hh | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-number.cc | 1 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-object.hh | 73 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-open-file.hh | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-open-type.hh | 143 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-cff-common.hh | 156 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-cff1-table.cc | 19 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-cff1-table.hh | 18 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-cff2-table.cc | 19 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-cff2-table.hh | 16 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-cmap-table.hh | 269 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-color-cbdt-table.hh | 997 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-color-colr-table.hh | 1541 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-color-colrv1-closure.hh | 108 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-color-cpal-table.hh | 322 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-color-sbix-table.hh | 423 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-color-svg-table.hh | 126 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-color.cc | 67 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-color.h | 13 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-deprecated.h | 18 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-face-table-list.hh | 29 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-face.cc | 6 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-font.cc | 236 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-hdmx-table.hh | 11 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-head-table.hh | 24 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-hmtx-table.hh | 195 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-base-table.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-common.hh | 2225 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gdef-table.hh | 692 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gpos-table.hh | 17 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gsub-table.hh | 17 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gsubgpos.hh | 1380 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout.cc | 397 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout.h | 20 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-layout.hh | 11 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-map.cc | 98 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-map.hh | 36 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-math-table.hh | 18 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-math.cc | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-maxp-table.hh | 15 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-meta-table.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-metrics.cc | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-name-table.hh | 376 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-name.cc | 51 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-name.h | 22 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-os2-table.hh | 123 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-os2-unicode-ranges.hh | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-post-table-v2subset.hh | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-post-table.hh | 37 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shape-normalize.cc | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shape.cc | 94 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shape.hh | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-arabic-fallback.hh | 29 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-arabic-joining-list.hh | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-arabic-table.hh | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-arabic.cc | 70 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-default.cc | 10 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-hangul.cc | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-hebrew.cc | 32 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-indic-machine.hh | 612 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-indic-table.cc | 39 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-indic.cc | 106 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-khmer-machine.hh | 18 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-khmer.cc | 25 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-myanmar-machine.hh | 18 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-myanmar.cc | 56 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-syllabic.cc | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-syllabic.hh | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-thai.cc | 10 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-use-machine.hh | 1237 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-use-table.hh | 1978 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-use.cc | 39 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-vowel-constraints.cc | 38 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-shaper.hh | 22 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-stat-table.hh | 280 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-tag.cc | 32 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-var-avar-table.hh | 85 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-var-common.hh | 434 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-var-cvar-table.hh | 158 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-var-fvar-table.hh | 165 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-var-gvar-table.hh | 586 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-var-hvar-table.hh | 44 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-var-mvar-table.hh | 11 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ot-var.cc | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-outline.cc | 321 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-outline.hh | 83 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-paint-extents.cc | 330 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-paint-extents.hh | 293 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-paint.cc | 703 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-paint.h | 987 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-paint.hh | 228 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-pool.hh | 25 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-priority-queue.hh | 22 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-repacker.hh | 255 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-sanitize.hh | 35 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-serialize.hh | 85 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-set-digest.hh | 35 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-set.cc | 48 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-set.h | 5 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-set.hh | 18 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-shape-plan.cc | 27 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-shape-plan.h | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-shape-plan.hh | 3 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-shape.cc | 263 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-shape.h | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-shaper-list.hh | 2 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-shaper.cc | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-static.cc | 54 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-style.cc | 4 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-accelerator.hh | 132 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-cff-common.cc | 11 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-cff-common.hh | 630 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-cff1.cc | 74 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-cff2.cc | 242 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-input.cc | 289 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-input.hh | 93 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-plan.cc | 1023 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset-plan.hh | 188 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset.cc | 191 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset.h | 42 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-subset.hh | 1 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ucd-table.hh | 7518 - openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-ucd.cc | 16 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-unicode-emoji-table.hh | 71 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-unicode.cc | 40 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-unicode.h | 12 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-utf.hh | 30 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-vector.hh | 175 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb-version.h | 8 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb.h | 1 openjdk-17-17.0.9+9/src/java.desktop/share/native/libharfbuzz/hb.hh | 54 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsalpha.c | 675 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmscam02.c | 515 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmscgats.c | 2974 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmscnvrt.c | 1243 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmserr.c | 735 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsgamma.c | 1532 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsgmt.c | 688 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmshalf.c | 564 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsintrp.c | 1359 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsio0.c | 2115 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsio1.c | 1058 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmslut.c | 1871 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsmd5.c | 342 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsmtrx.c | 205 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsnamed.c | 1021 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsopt.c | 2001 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmspack.c | 3902 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmspcs.c | 979 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsplugin.c | 1098 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsps2.c | 1647 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmssamp.c | 581 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmssm.c | 765 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmstypes.c | 5848 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsvirt.c | 1247 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmswtpnt.c | 382 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/cmsxform.c | 1474 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/lcms2.h | 1987 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/lcms2_internal.h | 1180 openjdk-17-17.0.9+9/src/java.desktop/share/native/liblcms/lcms2_plugin.h | 729 openjdk-17-17.0.9+9/src/java.desktop/unix/classes/sun/awt/X11GraphicsEnvironment.java | 8 openjdk-17-17.0.9+9/src/java.desktop/unix/classes/sun/print/CUPSPrinter.java | 8 openjdk-17-17.0.9+9/src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java | 17 openjdk-17-17.0.9+9/src/java.desktop/unix/classes/sun/print/UnixPrintJob.java | 7 openjdk-17-17.0.9+9/src/java.desktop/unix/classes/sun/print/UnixPrintService.java | 8 openjdk-17-17.0.9+9/src/java.desktop/windows/classes/sun/awt/Win32FontManager.java | 19 openjdk-17-17.0.9+9/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java | 4 openjdk-17-17.0.9+9/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java | 8 openjdk-17-17.0.9+9/src/java.desktop/windows/classes/sun/awt/windows/WClipboard.java | 8 openjdk-17-17.0.9+9/src/java.desktop/windows/classes/sun/awt/windows/WScrollPanePeer.java | 11 openjdk-17-17.0.9+9/src/java.desktop/windows/classes/sun/print/PrintServiceLookupProvider.java | 10 openjdk-17-17.0.9+9/src/java.desktop/windows/native/libawt/java2d/d3d/D3DBadHardware.h | 3 openjdk-17-17.0.9+9/src/java.desktop/windows/native/libawt/windows/awt_ScrollPane.cpp | 11 openjdk-17-17.0.9+9/src/java.naming/share/classes/sun/security/provider/certpath/ldap/LDAPCertStoreImpl.java | 21 openjdk-17-17.0.9+9/src/java.net.http/share/classes/jdk/internal/net/http/ResponseBodyHandlers.java | 128 openjdk-17-17.0.9+9/src/java.security.jgss/share/classes/sun/net/www/protocol/http/spnego/NegotiatorImpl.java | 30 openjdk-17-17.0.9+9/src/java.security.jgss/share/classes/sun/security/krb5/Config.java | 17 openjdk-17-17.0.9+9/src/java.smartcardio/unix/legal/pcsclite.md | 71 openjdk-17-17.0.9+9/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java | 48 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Const.java | 5618 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/ExceptionConst.java | 72 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Repository.java | 230 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AccessFlags.java | 185 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AnnotationDefault.java | 61 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AnnotationElementValue.java | 58 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AnnotationEntry.java | 118 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Annotations.java | 108 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ArrayElementValue.java | 64 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Attribute.java | 366 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/AttributeReader.java | 50 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/BootstrapMethod.java | 99 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/BootstrapMethods.java | 90 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassElementValue.java | 36 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassFormatException.java | 40 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ClassParser.java | 180 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Code.java | 320 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/CodeException.java | 167 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Constant.java | 149 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantCP.java | 80 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java | 58 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDouble.java | 56 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantDynamic.java | 30 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFieldref.java | 23 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantFloat.java | 60 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInteger.java | 56 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInterfaceMethodref.java | 23 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantInvokeDynamic.java | 34 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantLong.java | 56 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodHandle.java | 53 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodType.java | 36 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantMethodref.java | 23 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantModule.java | 66 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantNameAndType.java | 59 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantObject.java | 10 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPackage.java | 66 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantPool.java | 489 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantString.java | 59 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantUtf8.java | 82 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantValue.java | 120 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Deprecated.java | 82 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/DescendingVisitor.java | 530 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ElementValue.java | 198 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ElementValuePair.java | 47 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/EmptyVisitor.java | 249 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/EnclosingMethod.java | 60 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/EnumElementValue.java | 46 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ExceptionTable.java | 136 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Field.java | 169 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/FieldOrMethod.java | 273 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClass.java | 118 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/InnerClasses.java | 127 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/JavaClass.java | 936 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumber.java | 86 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LineNumberTable.java | 199 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariable.java | 230 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTable.java | 146 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/LocalVariableTypeTable.java | 87 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Method.java | 254 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/MethodParameter.java | 87 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/MethodParameters.java | 63 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Module.java | 178 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleExports.java | 60 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleMainClass.java | 87 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleOpens.java | 60 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModulePackages.java | 133 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleProvides.java | 60 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ModuleRequires.java | 56 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/NestHost.java | 84 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/NestMembers.java | 141 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Node.java | 3 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/PMGClass.java | 107 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ParameterAnnotationEntry.java | 59 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ParameterAnnotations.java | 81 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/RuntimeInvisibleAnnotations.java | 32 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/RuntimeInvisibleParameterAnnotations.java | 14 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/RuntimeVisibleAnnotations.java | 31 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/RuntimeVisibleParameterAnnotations.java | 14 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Signature.java | 307 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/SimpleElementValue.java | 202 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/SourceFile.java | 109 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMap.java | 158 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapEntry.java | 460 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/StackMapType.java | 146 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Synthetic.java | 98 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Unknown.java | 122 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/UnknownAttributeReader.java | 29 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Utility.java | 2254 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/Visitor.java | 171 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AALOAD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AASTORE.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ACONST_NULL.java | 29 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ALOAD.java | 27 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ANEWARRAY.java | 37 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ARETURN.java | 15 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ARRAYLENGTH.java | 43 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ASTORE.java | 27 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ATHROW.java | 36 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AllocationInstruction.java | 1 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AnnotationElementValueGen.java | 47 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/AnnotationEntryGen.java | 341 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArithmeticInstruction.java | 102 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayElementValueGen.java | 89 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayInstruction.java | 71 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ArrayType.java | 93 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BALOAD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BASTORE.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BIPUSH.java | 70 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BREAKPOINT.java | 10 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BasicType.java | 74 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BranchHandle.java | 90 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/BranchInstruction.java | 298 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CALOAD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CASTORE.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java | 60 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CPInstruction.java | 97 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassElementValueGen.java | 73 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGen.java | 689 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassGenException.java | 6 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ClassObserver.java | 7 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CodeExceptionGen.java | 187 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CompoundInstruction.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPoolGen.java | 909 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConstantPushInstruction.java | 5 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ConversionInstruction.java | 66 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2F.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2I.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/D2L.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DADD.java | 19 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DALOAD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DASTORE.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPG.java | 27 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCMPL.java | 27 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DCONST.java | 49 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DDIV.java | 21 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DLOAD.java | 21 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DMUL.java | 19 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DNEG.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DREM.java | 19 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DRETURN.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DSTORE.java | 21 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DSUB.java | 19 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X1.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP2_X2.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X1.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/DUP_X2.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ElementValueGen.java | 164 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ElementValuePairGen.java | 60 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/EmptyVisitor.java | 548 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/EnumElementValueGen.java | 110 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ExceptionThrower.java | 23 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2D.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2I.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/F2L.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FADD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FALOAD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FASTORE.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPG.java | 29 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCMPL.java | 29 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FCONST.java | 49 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FDIV.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FLOAD.java | 21 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FMUL.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FNEG.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FREM.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FRETURN.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FSTORE.java | 21 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FSUB.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGen.java | 383 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldGenOrMethodGen.java | 158 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldInstruction.java | 47 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldObserver.java | 7 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/FieldOrMethod.java | 106 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GETFIELD.java | 51 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GETSTATIC.java | 46 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO.java | 61 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO_W.java | 41 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GotoInstruction.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2B.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2C.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2D.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2F.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2L.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/I2S.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IADD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IALOAD.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IAND.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IASTORE.java | 15 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ICONST.java | 53 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IDIV.java | 34 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFEQ.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFGE.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFGT.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFLE.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFLT.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNE.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNONNULL.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IFNULL.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPEQ.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ACMPNE.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPEQ.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGE.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPGT.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLE.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPLT.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IF_ICMPNE.java | 35 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IINC.java | 120 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ILOAD.java | 21 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP1.java | 10 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMPDEP2.java | 10 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IMUL.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INEG.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INSTANCEOF.java | 50 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEDYNAMIC.java | 118 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEINTERFACE.java | 93 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESPECIAL.java | 63 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKESTATIC.java | 57 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/INVOKEVIRTUAL.java | 59 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IOR.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IREM.java | 34 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IRETURN.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISHL.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISHR.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISTORE.java | 21 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ISUB.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IUSHR.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IXOR.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IfInstruction.java | 6 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/IndexedInstruction.java | 7 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Instruction.java | 921 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionComparator.java | 36 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionConst.java | 49 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionFactory.java | 1152 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionHandle.java | 322 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionList.java | 1479 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionListObserver.java | 7 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionTargeter.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InvokeInstruction.java | 119 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JSR.java | 49 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JSR_W.java | 41 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/JsrInstruction.java | 37 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2D.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2F.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/L2I.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LADD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LALOAD.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LAND.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LASTORE.java | 18 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LCMP.java | 29 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LCONST.java | 49 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC.java | 152 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC2_W.java | 68 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDC_W.java | 12 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LDIV.java | 29 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LLOAD.java | 17 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LMUL.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LNEG.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LOOKUPSWITCH.java | 77 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LOR.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LREM.java | 26 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LRETURN.java | 15 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSHL.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSHR.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSTORE.java | 17 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LSUB.java | 16 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LUSHR.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LXOR.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java | 80 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LoadClass.java | 33 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LoadInstruction.java | 29 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableGen.java | 245 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LocalVariableInstruction.java | 185 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MONITORENTER.java | 26 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MONITOREXIT.java | 26 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MULTIANEWARRAY.java | 117 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodGen.java | 1553 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/MethodObserver.java | 7 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NEW.java | 45 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NEWARRAY.java | 82 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NOP.java | 10 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NameSignatureInstruction.java | 27 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/NamedAndTyped.java | 11 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ObjectType.java | 130 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/POP.java | 14 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/POP2.java | 14 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUSH.java | 145 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUTFIELD.java | 48 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PUTSTATIC.java | 46 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PopInstruction.java | 3 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/PushInstruction.java | 6 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/RET.java | 90 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/RETURN.java | 15 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReferenceType.java | 386 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnInstruction.java | 61 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java | 28 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SALOAD.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SASTORE.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SIPUSH.java | 67 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWAP.java | 13 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SWITCH.java | 144 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Select.java | 363 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/SimpleElementValueGen.java | 172 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackConsumer.java | 6 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackInstruction.java | 11 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StackProducer.java | 9 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/StoreInstruction.java | 29 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TABLESWITCH.java | 77 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TargetLostException.java | 20 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Type.java | 518 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/TypedInstruction.java | 6 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/UnconditionalBranch.java | 1 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/VariableLengthInstruction.java | 5 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/Visitor.java | 549 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Args.java | 148 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/AttributeHTML.java | 273 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELComparator.java | 5 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELFactory.java | 379 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/BCELifier.java | 412 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ByteSequence.java | 39 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Class2HTML.java | 245 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassQueue.java | 20 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassSet.java | 41 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassStack.java | 14 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/CodeHTML.java | 791 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ConstantHTML.java | 305 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/InstructionFinder.java | 489 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/MethodHTML.java | 116 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ModularRuntimeImage.java | 46 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/Repository.java | 37 openjdk-17-17.0.9+9/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java | 132 openjdk-17-17.0.9+9/src/java.xml/share/classes/jdk/xml/internal/Utils.java | 57 openjdk-17-17.0.9+9/src/java.xml/share/legal/bcel.md | 4 openjdk-17-17.0.9+9/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java | 2 openjdk-17-17.0.9+9/src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java.template | 5 openjdk-17-17.0.9+9/src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java.template |12772 -- openjdk-17-17.0.9+9/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java | 17 openjdk-17-17.0.9+9/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java | 11 openjdk-17-17.0.9+9/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java | 3 openjdk-17-17.0.9+9/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java | 16 openjdk-17-17.0.9+9/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java | 10 openjdk-17-17.0.9+9/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java | 14 openjdk-17-17.0.9+9/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Token.java | 24 openjdk-17-17.0.9+9/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_sign.c | 13 openjdk-17-17.0.9+9/src/jdk.crypto.ec/share/classes/sun/security/ec/ECPrivateKeyImpl.java | 21 openjdk-17-17.0.9+9/src/jdk.crypto.ec/share/classes/sun/security/ec/ECPublicKeyImpl.java | 26 openjdk-17-17.0.9+9/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHPrivateKeyImpl.java | 18 openjdk-17-17.0.9+9/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHPublicKeyImpl.java | 25 openjdk-17-17.0.9+9/src/jdk.crypto.ec/share/classes/sun/security/ec/ed/EdDSAPrivateKeyImpl.java | 21 openjdk-17-17.0.9+9/src/jdk.crypto.ec/share/classes/sun/security/ec/ed/EdDSAPublicKeyImpl.java | 25 openjdk-17-17.0.9+9/src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CPrivateKey.java | 26 openjdk-17-17.0.9+9/src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CPublicKey.java | 31 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.cpp | 49 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/linux/native/libsaproc/libproc.h | 4 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HotSpotAgent.java | 3 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionRISCV64.java | 40 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxCDebugger.java | 13 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/riscv64/LinuxRISCV64CFrame.java | 90 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/riscv64/LinuxRISCV64ThreadContext.java | 48 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/proc/riscv64/ProcRISCV64Thread.java | 88 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/proc/riscv64/ProcRISCV64ThreadContext.java | 48 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/proc/riscv64/ProcRISCV64ThreadFactory.java | 46 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/riscv64/RemoteRISCV64Thread.java | 55 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/riscv64/RemoteRISCV64ThreadContext.java | 48 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/riscv64/RemoteRISCV64ThreadFactory.java | 46 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/riscv/RISCV64ThreadContext.java | 172 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java | 5 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java | 10 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/linux_riscv64/LinuxRISCV64JavaThreadPDAccess.java | 134 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64CurrentFrameGuess.java | 223 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64Frame.java | 556 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64JavaCallWrapper.java | 61 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64RegisterMap.java | 53 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java | 7 openjdk-17-17.0.9+9/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java | 4 openjdk-17-17.0.9+9/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LaneType.java | 4 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/Binding.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/Candidate.java | 51 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/CompletingParsedLine.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/CompletionMatcher.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/Highlighter.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/History.java | 7 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/LineReader.java | 7 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/LineReaderBuilder.java | 6 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/Parser.java | 10 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/CompletionMatcherImpl.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/DefaultParser.java | 146 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/LineReaderImpl.java | 59 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/completer/FileNameCompleter.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/completer/SystemCompleter.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/history/DefaultHistory.java | 4 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/TerminalBuilder.java | 402 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractPty.java | 5 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractWindowsTerminal.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/Diag.java | 133 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/ExecPty.java | 44 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/PosixPtyTerminal.java | 9 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/PosixSysTerminal.java | 10 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/exec/ExecTerminalProvider.java | 133 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/spi/JansiSupport.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/spi/JnaSupport.java | 37 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/spi/TerminalProvider.java | 84 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Colors.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Curses.java | 12 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Display.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/InfoCmp.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlocking.java | 90 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlockingInputStream.java | 26 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlockingInputStreamImpl.java | 13 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlockingPumpInputStream.java | 39 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlockingPumpReader.java | 18 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlockingReader.java | 10 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/NonBlockingReaderImpl.java | 30 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/OSUtils.java | 47 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/PumpReader.java | 89 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/StyleResolver.java | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/Timeout.java | 48 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/WCWidth.java | 5 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/windows-vtp.caps | 2 openjdk-17-17.0.9+9/src/jdk.internal.le/share/classes/module-info.java | 3 openjdk-17-17.0.9+9/src/jdk.internal.le/share/legal/jline.md | 255 openjdk-17-17.0.9+9/src/jdk.internal.le/windows/classes/jdk/internal/org/jline/terminal/impl/jna/JnaSupportImpl.java | 77 openjdk-17-17.0.9+9/src/jdk.internal.le/windows/classes/jdk/internal/org/jline/terminal/impl/jna/JnaTerminalProvider.java | 106 openjdk-17-17.0.9+9/src/jdk.internal.le/windows/classes/jdk/internal/org/jline/terminal/impl/jna/win/JnaWinConsoleWriter.java | 8 openjdk-17-17.0.9+9/src/jdk.internal.le/windows/classes/jdk/internal/org/jline/terminal/impl/jna/win/JnaWinSysTerminal.java | 70 openjdk-17-17.0.9+9/src/jdk.internal.le/windows/classes/jdk/internal/org/jline/terminal/impl/jna/win/WindowsAnsiWriter.java | 12 openjdk-17-17.0.9+9/src/jdk.internal.le/windows/classes/module-info.java.extra | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.aarch64/src/jdk/vm/ci/aarch64/AArch64.java | 260 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.aarch64/src/jdk/vm/ci/aarch64/AArch64Kind.java | 153 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.aarch64/src/jdk/vm/ci/aarch64/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.amd64/src/jdk/vm/ci/amd64/AMD64.java | 320 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.amd64/src/jdk/vm/ci/amd64/AMD64Kind.java | 218 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.amd64/src/jdk/vm/ci/amd64/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/Architecture.java | 231 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/BailoutException.java | 76 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/BytecodeFrame.java | 345 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/BytecodePosition.java | 130 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/CPUFeatureName.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/CallingConvention.java | 134 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/CodeCacheProvider.java | 144 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/CodeUtil.java | 440 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/CompilationRequest.java | 78 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/CompilationRequestResult.java | 37 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/CompiledCode.java | 31 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/DebugInfo.java | 143 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/InstalledCode.java | 130 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/InvalidInstalledCodeException.java | 38 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/Location.java | 81 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/MemoryBarriers.java | 121 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/ReferenceMap.java | 31 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/Register.java | 194 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/RegisterArray.java | 106 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/RegisterAttributes.java | 103 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/RegisterConfig.java | 111 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/RegisterSaveLayout.java | 132 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/RegisterValue.java | 65 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/StackLockValue.java | 87 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/StackSlot.java | 135 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/TargetDescription.java | 120 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/ValueKindFactory.java | 34 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/ValueUtil.java | 111 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/VirtualObject.java | 314 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/package-info.java | 30 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/Call.java | 87 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/ConstantReference.java | 66 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/DataPatch.java | 73 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/DataSectionReference.java | 77 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/ExceptionHandler.java | 56 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/ImplicitExceptionDispatch.java | 79 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/Infopoint.java | 112 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/InfopointReason.java | 36 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/Mark.java | 74 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/Reference.java | 35 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/Site.java | 53 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/site/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/stack/InspectedFrame.java | 72 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/stack/InspectedFrameVisitor.java | 34 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/stack/StackIntrospection.java | 46 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/stack/package-info.java | 26 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java | 94 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/JVMCIError.java | 118 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/NativeImageReinitialize.java | 36 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java | 157 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig.java | 309 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotVMConfig.java | 74 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.amd64/src/jdk/vm/ci/hotspot/amd64/AMD64HotSpotJVMCIBackendFactory.java | 142 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.amd64/src/jdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig.java | 321 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.amd64/src/jdk/vm/ci/hotspot/amd64/AMD64HotSpotVMConfig.java | 86 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.amd64/src/jdk/vm/ci/hotspot/amd64/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/Cleaner.java | 120 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java | 1000 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/DirectHotSpotObjectConstantImpl.java | 68 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/EmptyEventProvider.java | 124 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/EventProvider.java | 130 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HandleCleaner.java | 84 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotCallingConventionType.java | 55 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotCodeCacheProvider.java | 203 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotCompilationRequest.java | 95 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotCompilationRequestResult.java | 97 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotCompiledCode.java | 180 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotCompiledNmethod.java | 76 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotCompressedNullConstant.java | 118 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstant.java | 37 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantPool.java | 897 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantPoolObject.java | 125 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java | 193 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotForeignCallTarget.java | 38 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotInstalledCode.java | 85 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJDKReflection.java | 336 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory.java | 83 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCICompilerConfig.java | 161 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCICompilerFactory.java | 86 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIReflection.java | 105 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java | 1453 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIUnsupportedOperationError.java | 55 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJavaType.java | 42 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProvider.java | 45 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java | 175 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMetaAccessProvider.java | 347 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMetaData.java | 77 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMetaspaceConstant.java | 32 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java | 117 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMethod.java | 81 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMethodData.java | 890 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMethodDataAccessor.java | 153 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider.java | 196 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotModifiers.java | 66 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotNmethod.java | 191 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotObjectConstant.java | 97 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java | 202 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotObjectConstantScope.java | 121 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotProfilingInfo.java | 252 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotReferenceMap.java | 79 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaField.java | 45 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java | 224 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethod.java | 130 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java | 753 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaType.java | 64 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectType.java | 118 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java | 1069 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java | 319 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotRuntimeStub.java | 62 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotSentinelConstant.java | 104 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotSignature.java | 230 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotSpeculationEncoding.java | 224 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotSpeculationLog.java | 367 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotStackFrameReference.java | 94 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotStackIntrospection.java | 42 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java | 402 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfigAccess.java | 409 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfigStore.java | 198 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMEventListener.java | 54 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/IndirectHotSpotObjectConstantImpl.java | 179 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/JFR.java | 99 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/MetaspaceHandleObject.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/MetaspaceObject.java | 30 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/SharedHotSpotSpeculationLog.java | 42 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/SharedLibraryJVMCIReflection.java | 316 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/TranslatedException.java | 275 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/UnsafeAccess.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/VMEntryPoint.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/VMField.java | 82 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/VMFlag.java | 56 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/VMIntrinsicMethod.java | 88 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/AbstractJavaProfile.java | 164 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/AbstractProfiledItem.java | 95 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/AllocatableValue.java | 36 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/Assumptions.java | 398 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/Constant.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantPool.java | 151 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java | 119 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/DefaultProfilingInfo.java | 113 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/DeoptimizationAction.java | 70 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/DeoptimizationReason.java | 45 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/EncodedSpeculationReason.java | 115 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ExceptionHandler.java | 121 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/InvokeTarget.java | 29 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaConstant.java | 386 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaField.java | 125 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaKind.java | 479 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaMethod.java | 135 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaMethodProfile.java | 60 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaType.java | 161 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaTypeProfile.java | 196 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaValue.java | 29 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/LineNumberTable.java | 75 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/Local.java | 82 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/LocalVariableTable.java | 88 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/MemoryAccessProvider.java | 54 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/MetaAccessProvider.java | 129 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/MetaUtil.java | 286 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/MethodHandleAccessProvider.java | 86 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ModifiersProvider.java | 147 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/NullConstant.java | 97 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/PlatformKind.java | 83 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/PrimitiveConstant.java | 182 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ProfilingInfo.java | 199 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/RawConstant.java | 30 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaField.java | 81 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaMethod.java | 474 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java | 403 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/SerializableConstant.java | 42 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/Signature.java | 139 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/SpeculationLog.java | 173 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/TriState.java | 77 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/UnresolvedJavaField.java | 84 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/UnresolvedJavaMethod.java | 71 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/UnresolvedJavaType.java | 92 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/VMConstant.java | 29 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/Value.java | 109 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ValueKind.java | 103 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/package-info.java | 29 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.runtime/src/jdk/vm/ci/runtime/JVMCI.java | 82 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.runtime/src/jdk/vm/ci/runtime/JVMCIBackend.java | 69 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.runtime/src/jdk/vm/ci/runtime/JVMCICompiler.java | 47 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.runtime/src/jdk/vm/ci/runtime/JVMCICompilerFactory.java | 57 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.runtime/src/jdk/vm/ci/runtime/JVMCIRuntime.java | 48 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.runtime/src/jdk/vm/ci/runtime/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.services/src/jdk/vm/ci/services/JVMCIPermission.java | 37 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.services/src/jdk/vm/ci/services/JVMCIServiceLocator.java | 117 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.services/src/jdk/vm/ci/services/Services.java | 340 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.services/src/jdk/vm/ci/services/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.services/src/jdk/vm/ci/services/VMEntryPoint.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.services/src/jdk/vm/ci/services/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/aarch64/AArch64.java | 260 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/aarch64/AArch64Kind.java | 153 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/aarch64/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/amd64/AMD64.java | 320 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/amd64/AMD64Kind.java | 218 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/amd64/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/Architecture.java | 231 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/BailoutException.java | 76 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/BytecodeFrame.java | 345 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/BytecodePosition.java | 130 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/CPUFeatureName.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/CallingConvention.java | 134 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/CodeCacheProvider.java | 144 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/CodeUtil.java | 440 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/CompilationRequest.java | 78 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/CompilationRequestResult.java | 37 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/CompiledCode.java | 31 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/DebugInfo.java | 143 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/InstalledCode.java | 130 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/InvalidInstalledCodeException.java | 38 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/Location.java | 81 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/MemoryBarriers.java | 121 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/ReferenceMap.java | 31 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/Register.java | 194 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/RegisterArray.java | 106 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/RegisterAttributes.java | 103 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/RegisterConfig.java | 111 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/RegisterSaveLayout.java | 132 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/RegisterValue.java | 65 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/StackLockValue.java | 87 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/StackSlot.java | 135 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/TargetDescription.java | 120 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/ValueKindFactory.java | 34 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/ValueUtil.java | 111 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/VirtualObject.java | 314 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/package-info.java | 30 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/Call.java | 87 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/ConstantReference.java | 66 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/DataPatch.java | 73 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/DataSectionReference.java | 77 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/ExceptionHandler.java | 56 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/ImplicitExceptionDispatch.java | 79 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/Infopoint.java | 112 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/InfopointReason.java | 36 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/Mark.java | 74 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/Reference.java | 35 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/Site.java | 53 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/site/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/stack/InspectedFrame.java | 72 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/stack/InspectedFrameVisitor.java | 34 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/stack/StackIntrospection.java | 46 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/code/stack/package-info.java | 26 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/common/InitTimer.java | 94 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/common/JVMCIError.java | 118 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/common/NativeImageReinitialize.java | 36 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/common/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/common/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/Cleaner.java | 120 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/CompilerToVM.java | 998 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/DirectHotSpotObjectConstantImpl.java | 68 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/EmptyEventProvider.java | 124 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/EventProvider.java | 130 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HandleCleaner.java | 84 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCallingConventionType.java | 55 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCodeCacheProvider.java | 203 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompilationRequest.java | 95 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompilationRequestResult.java | 97 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompiledCode.java | 180 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompiledNmethod.java | 76 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompressedNullConstant.java | 118 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstant.java | 37 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstantPool.java | 897 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstantPoolObject.java | 125 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java | 193 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotForeignCallTarget.java | 38 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotInstalledCode.java | 85 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJDKReflection.java | 336 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory.java | 83 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCICompilerConfig.java | 161 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCICompilerFactory.java | 86 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCIReflection.java | 105 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java | 1453 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJVMCIUnsupportedOperationError.java | 55 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotJavaType.java | 42 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMemoryAccessProvider.java | 45 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java | 175 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaAccessProvider.java | 347 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaData.java | 77 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstant.java | 32 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java | 117 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMethod.java | 81 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMethodData.java | 890 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMethodDataAccessor.java | 153 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider.java | 196 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotModifiers.java | 66 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotNmethod.java | 191 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotObjectConstant.java | 97 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java | 202 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotObjectConstantScope.java | 121 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotProfilingInfo.java | 252 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotReferenceMap.java | 79 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedJavaField.java | 45 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java | 224 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethod.java | 130 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java | 756 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedJavaType.java | 64 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedObjectType.java | 118 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java | 1069 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java | 319 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotRuntimeStub.java | 62 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotSentinelConstant.java | 104 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotSignature.java | 230 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotSpeculationEncoding.java | 224 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotSpeculationLog.java | 367 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotStackFrameReference.java | 94 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotStackIntrospection.java | 42 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMConfig.java | 402 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMConfigAccess.java | 409 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMConfigStore.java | 198 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMEventListener.java | 54 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/IndirectHotSpotObjectConstantImpl.java | 179 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/JFR.java | 99 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/MetaspaceHandleObject.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/MetaspaceObject.java | 30 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/SharedHotSpotSpeculationLog.java | 42 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/SharedLibraryJVMCIReflection.java | 316 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/TranslatedException.java | 275 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/UnsafeAccess.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/VMEntryPoint.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/VMField.java | 82 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/VMFlag.java | 56 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/VMIntrinsicMethod.java | 88 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java | 157 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig.java | 309 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotVMConfig.java | 72 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/amd64/AMD64HotSpotJVMCIBackendFactory.java | 142 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/amd64/AMD64HotSpotRegisterConfig.java | 321 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/amd64/AMD64HotSpotVMConfig.java | 86 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/amd64/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/AbstractJavaProfile.java | 164 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/AbstractProfiledItem.java | 95 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/AllocatableValue.java | 36 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/Assumptions.java | 398 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/Constant.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ConstantPool.java | 151 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ConstantReflectionProvider.java | 119 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/DefaultProfilingInfo.java | 113 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/DeoptimizationAction.java | 70 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/DeoptimizationReason.java | 45 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/EncodedSpeculationReason.java | 115 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ExceptionHandler.java | 121 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/InvokeTarget.java | 29 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/JavaConstant.java | 386 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/JavaField.java | 125 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/JavaKind.java | 479 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/JavaMethod.java | 135 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/JavaMethodProfile.java | 60 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/JavaType.java | 161 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/JavaTypeProfile.java | 196 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/JavaValue.java | 29 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/LineNumberTable.java | 75 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/Local.java | 82 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/LocalVariableTable.java | 88 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/MemoryAccessProvider.java | 54 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/MetaAccessProvider.java | 129 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/MetaUtil.java | 286 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/MethodHandleAccessProvider.java | 86 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ModifiersProvider.java | 147 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/NullConstant.java | 97 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/PlatformKind.java | 83 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/PrimitiveConstant.java | 182 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ProfilingInfo.java | 199 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/RawConstant.java | 30 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaField.java | 81 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaMethod.java | 474 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaType.java | 403 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/SerializableConstant.java | 42 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/Signature.java | 139 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/SpeculationLog.java | 173 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/TriState.java | 77 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/UnresolvedJavaField.java | 84 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/UnresolvedJavaMethod.java | 71 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/UnresolvedJavaType.java | 92 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/VMConstant.java | 29 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/Value.java | 109 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ValueKind.java | 103 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/package-info.java | 29 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/runtime/JVMCI.java | 82 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/runtime/JVMCIBackend.java | 69 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/runtime/JVMCICompiler.java | 47 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/runtime/JVMCICompilerFactory.java | 57 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/runtime/JVMCIRuntime.java | 48 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/runtime/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/services/JVMCIPermission.java | 37 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/services/JVMCIServiceLocator.java | 117 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/services/Services.java | 340 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/services/SuppressFBWarnings.java | 40 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/services/VMEntryPoint.java | 33 openjdk-17-17.0.9+9/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/services/package-info.java | 27 openjdk-17-17.0.9+9/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java | 9 openjdk-17-17.0.9+9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java | 3 openjdk-17-17.0.9+9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/jquery-ui.css | 2 openjdk-17-17.0.9+9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/jquery-ui.js | 20 openjdk-17-17.0.9+9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/jquery-ui.min.css | 2 openjdk-17-17.0.9+9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script-dir/jquery-ui.min.js | 4 openjdk-17-17.0.9+9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java | 7 openjdk-17-17.0.9+9/src/jdk.javadoc/share/legal/jqueryUI.md | 2 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/events/SecurityProviderServiceEvent.java | 48 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/internal/FilePurger.java | 9 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java | 7 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecorder.java | 43 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecording.java | 64 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/internal/RepositoryChunk.java | 46 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/internal/Utils.java | 8 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkHeader.java | 12 openjdk-17-17.0.9+9/src/jdk.jfr/share/classes/jdk/jfr/internal/instrument/JDKEvents.java | 4 openjdk-17-17.0.9+9/src/jdk.jfr/share/conf/jfr/default.jfc | 5 openjdk-17-17.0.9+9/src/jdk.jfr/share/conf/jfr/profile.jfc | 5 openjdk-17-17.0.9+9/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java | 2 openjdk-17-17.0.9+9/src/jdk.jshell/share/classes/jdk/jshell/execution/JdiInitiator.java | 8 openjdk-17-17.0.9+9/src/jdk.net/linux/native/libextnet/LinuxSocketOptions.c | 8 openjdk-17-17.0.9+9/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpChannelImpl.java | 3 openjdk-17-17.0.9+9/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java | 3 openjdk-17-17.0.9+9/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java | 3 openjdk-17-17.0.9+9/src/jdk.sctp/unix/native/libsctp/Sctp.h | 5 openjdk-17-17.0.9+9/src/jdk.sctp/unix/native/libsctp/SctpChannelImpl.c | 11 openjdk-17-17.0.9+9/src/jdk.sctp/unix/native/libsctp/SctpNet.c | 41 openjdk-17-17.0.9+9/src/jdk.security.auth/share/classes/com/sun/security/auth/LdapPrincipal.java | 33 openjdk-17-17.0.9+9/src/jdk.security.auth/share/classes/com/sun/security/auth/NTDomainPrincipal.java | 30 openjdk-17-17.0.9+9/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSid.java | 38 openjdk-17-17.0.9+9/src/jdk.security.auth/share/classes/com/sun/security/auth/NTUserPrincipal.java | 31 openjdk-17-17.0.9+9/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java | 32 openjdk-17-17.0.9+9/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java | 30 openjdk-17-17.0.9+9/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixPrincipal.java | 30 openjdk-17-17.0.9+9/src/jdk.security.auth/share/classes/com/sun/security/auth/UserPrincipal.java | 22 openjdk-17-17.0.9+9/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java | 67 openjdk-17-17.0.9+9/test/hotspot/gtest/classfile/test_symbolTable.cpp | 23 openjdk-17-17.0.9+9/test/hotspot/gtest/gc/shenandoah/test_shenandoahNumberSeq.cpp | 74 openjdk-17-17.0.9+9/test/hotspot/gtest/gtestMain.cpp | 2 openjdk-17-17.0.9+9/test/hotspot/gtest/logging/test_asynclog.cpp | 83 openjdk-17-17.0.9+9/test/hotspot/gtest/runtime/test_os.cpp | 60 openjdk-17-17.0.9+9/test/hotspot/gtest/runtime/test_os_linux_cgroups.cpp | 86 openjdk-17-17.0.9+9/test/hotspot/gtest/runtime/test_safefetch.cpp | 132 openjdk-17-17.0.9+9/test/hotspot/gtest/runtime/test_trim_native.cpp | 101 openjdk-17-17.0.9+9/test/hotspot/gtest/utilities/test_concurrentHashtable.cpp | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/ProblemList.txt | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/generate.bash | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_base.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_base_2.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_compiler.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_datatransfer.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_desktop.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_desktop_2.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_instrument.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_logging.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_management.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_management_rmi.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_naming.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_net_http.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_prefs.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_rmi.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_scripting.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_security_jgss.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_security_sasl.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_smartcardio.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_sql.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_sql_rowset.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_transaction_xa.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_xml.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/java_xml_crypto.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_accessibility.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_attach.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_charsets.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_compiler.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_crypto_cryptoki.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_crypto_ec.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_crypto_mscapi.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_dynalink.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_editpad.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_hotspot_agent.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_httpserver.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_internal_ed.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_internal_jvmstat.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_internal_le.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_internal_opt.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_internal_vm_ci.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jartool.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_javadoc.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jcmd.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jconsole.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jdeps.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jdi.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jfr.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jlink.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jshell.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jsobject.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_jstatd.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_localedata.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_localedata_2.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_management.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_management_agent.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_management_jfr.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_naming_dns.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_naming_rmi.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_net.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_sctp.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_security_auth.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_security_jgss.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_unsupported.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_unsupported_desktop.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_xml_dom.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/applications/ctw/modules/jdk_zipfs.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/allocation/TestAllocArrayAfterAllocNoUse.java | 52 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/allocation/TestCCPAllocateArray.java | 53 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java | 80 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/allocation/TestNewArrayBadSize.java | 57 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/allocation/TestNewArrayOutsideLoopValidLengthTestInLoop.java | 69 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arguments/TestUseBMI1InstructionsOnSupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arguments/TestUseBMI1InstructionsOnUnsupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arguments/TestUseCountLeadingZerosInstructionOnSupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arguments/TestUseCountLeadingZerosInstructionOnUnsupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arguments/TestUseCountTrailingZerosInstructionOnSupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arguments/TestUseCountTrailingZerosInstructionOnUnsupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arraycopy/TestArrayCopyIntrinsicWithUCT.java | 312 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arraycopy/TestArrayCopyNoInitDeopt.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arraycopy/TestDefaultMethodArrayCloneDeoptC2.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/arraycopy/TestOutOfBoundsArrayLoad.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c1/TestLoadIndexedMismatch.java | 58 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/Test6857159.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/Test6905845.java | 1 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/Test8004741.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/TestBit.java | 7 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/TestDeadDataLoopIGVN.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/TestUseOptoBiasInliningWithoutEliminateLocks.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/aarch64/TestIntrinsicsRegStress.java | 296 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/cr6589834/Test_ia32.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/irTests/TestDebugInfo.java | 135 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/irTests/TestFewIterationsCountedLoop.java | 1 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/irTests/TestSkeletonPredicates.java | 1 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/irTests/TestStripMiningDropsSafepoint.java | 1 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/irTests/TestSuperwordFailsUnrolling.java | 7 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/c2/irTests/blackhole/BlackholeLoadOptoTest.java | 111 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/common/CallsBase.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeDynamic2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeDynamic2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeDynamic2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeInterface2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeInterface2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeInterface2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeSpecial2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeSpecial2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeSpecial2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeStatic2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeStatic2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeStatic2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeVirtual2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeVirtual2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromCompiled/CompiledInvokeVirtual2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeDynamic2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeDynamic2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeDynamic2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeInterface2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeInterface2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeInterface2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeSpecial2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeSpecial2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeSpecial2NativeTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeStatic2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeStatic2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeStatic2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeVirtual2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeVirtual2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromInterpreted/InterpretedInvokeVirtual2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeSpecial2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeSpecial2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeSpecial2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeStatic2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeStatic2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeStatic2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeVirtual2CompiledTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeVirtual2InterpretedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/calls/fromNative/NativeInvokeVirtual2NativeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/cha/AbstractRootMethod.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/cha/DefaultRootMethod.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/cha/StrengthReduceInterfaceCall.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/cha/Utils.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/ciReplay/TestClientVM.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/ciReplay/TestDumpReplay.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/ciReplay/TestSAClient.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/ciReplay/TestSAServer.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/ciReplay/TestServerVM.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/ciReplay/TestVMNoCompLevel.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/ciReplay/VMBase.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/classUnloading/methodUnloading/TestMethodUnloading.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/CheckSegmentedCodeCache.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/OverflowCodeCacheTest.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/TestSegmentedCodeCacheOption.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/codeheapsize/CodeCacheFreeSpaceRunner.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/codeheapsize/GenericCodeHeapSizeRunner.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/codeheapsize/JVMStartupRunner.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/codeheapsize/TestCodeHeapSizeOptions.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/common/CodeCacheCLITestCase.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/common/CodeCacheInfoFormatter.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/common/CodeCacheOptions.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/printcodecache/PrintCodeCacheRunner.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/cli/printcodecache/TestPrintCodeCacheOption.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/BeanTypeTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/CodeCacheUtils.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/CodeHeapBeanPresenceTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/GetUsageTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/InitialAndMaxUsageTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/ManagerNamesTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/MemoryPoolsPresenceTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/PeakUsageTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/PoolsIndependenceTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/ThresholdNotificationsTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/UsageThresholdExceededSeveralTimesTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/UsageThresholdExceededTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/UsageThresholdIncreasedTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/jmx/UsageThresholdNotExceededTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/stress/Helper.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/stress/OverloadCompileQueueTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/stress/RandomAllocationTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/stress/ReturnBlobToWrongHeapTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/stress/UnexpectedDeoptimizationAllTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codecache/stress/UnexpectedDeoptimizationTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codegen/Test7100757.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codegen/TestOopCmp.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codegen/aes/CTR_Wraparound.java | 127 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codegen/aes/Test8292158.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codegen/aes/TestAESMain.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/codegen/aes/TestCipherBlockChainingEncrypt.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/InlineMatcherTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/TestCompilerDirectivesCompatibilityBase.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/TestCompilerDirectivesCompatibilityCommandOff.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/TestCompilerDirectivesCompatibilityCommandOn.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/TestCompilerDirectivesCompatibilityFlag.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commandfile/CompileOnlyTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commandfile/ExcludeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commandfile/LogTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commandfile/PrintTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commands/CompileOnlyTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commands/ControlIntrinsicTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commands/ExcludeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commands/LogTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/commands/PrintTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/directives/CompileOnlyTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/directives/ControlIntrinsicTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/directives/ExcludeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/directives/LogTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/directives/PrintTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddAndRemoveTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddCompileOnlyTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddExcludeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddLogTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/AddPrintAssemblyTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/ClearDirectivesFileStackTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/ClearDirectivesStackTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/ControlIntrinsicTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/PrintDirectivesTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/jcmd/StressAddMultiThreadedTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/logcompilation/LogTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/matcher/MethodMatcherTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/mixed/RandomCommandsTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/mixed/RandomValidCommandsTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/compilercontrol/share/actions/CompileAction.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/cpuflags/TestAESIntrinsicsOnSupportedConfig.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/cpuflags/TestAESIntrinsicsOnUnsupportedConfig.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/escapeAnalysis/TestArrayCopy.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/floatingpoint/NaNTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/floatingpoint/TestLibmIntrinsics.java | 80 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/floatingpoint/TestPow2.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/gcbarriers/EqvUncastStepOverBarrier.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/gcbarriers/PreserveFPRegistersTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/interpreter/DisableOSRTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/IntrinsicAvailableTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/IntrinsicDisabledTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/TestCheckIndex.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/TestReferenceGetWithNull.java | 61 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/base64/TestBase64.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bigInteger/MontgomeryMultiplyTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestAndnI.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestAndnL.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsiI.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsiL.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsmskI.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsmskL.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsrI.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBlsrL.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestBzhiI2L.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestLzcntI.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestLzcntL.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestTzcntI.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/TestTzcntL.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/AndnTestI.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/AndnTestL.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsiTestI.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsiTestL.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsmskTestI.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsmskTestL.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsrTestI.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BlsrTestL.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BmiIntrinsicBase.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/BzhiTestI2L.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/LZcntTestI.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/LZcntTestL.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/TZcntTestI.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/bmi/verifycode/TZcntTestL.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/klass/CastNullCheckDroppingsTest.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/math/TestMinMaxIntrinsics.java | 112 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/AddExactIntTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/AddExactLongTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/DecrementExactIntTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/DecrementExactLongTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/IncrementExactIntTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/IncrementExactLongTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/MultiplyExactIntTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/MultiplyExactLongTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/NegateExactIntTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/NegateExactLongTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/SubtractExactIntTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/mathexact/sanity/SubtractExactLongTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseMD5IntrinsicsOptionOnSupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseMD5IntrinsicsOptionOnUnsupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA1IntrinsicsOptionOnSupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA1IntrinsicsOptionOnUnsupportedCPU.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA256IntrinsicsOptionOnSupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA256IntrinsicsOptionOnUnsupportedCPU.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnSupportedCPU.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnUnsupportedCPU.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA512IntrinsicsOptionOnSupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA512IntrinsicsOptionOnUnsupportedCPU.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHAOptionOnSupportedCPU.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHAOptionOnUnsupportedCPU.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/testcases/GenericTestCaseForOtherCPU.java | 11 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/cli/testcases/GenericTestCaseForUnsupportedRISCV64CPU.java | 115 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/DigestSanityTestBase.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestMD5Intrinsics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestMD5MultiBlockIntrinsics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA1Intrinsics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA1MultiBlockIntrinsics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA256Intrinsics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA256MultiBlockIntrinsics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA3Intrinsics.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA3MultiBlockIntrinsics.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA512Intrinsics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/sha/sanity/TestSHA512MultiBlockIntrinsics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/string/TestCopyValueOf.java | 58 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/string/TestStringIndexOfCharIntrinsics.java | 74 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/string/TestStringIntrinsics2.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/unsafe/ByteBufferTest.java | 15 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/unsafe/DirectByteBufferTest.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/intrinsics/unsafe/HeapByteBufferTest.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jsr292/ContinuousCallSiteTargetChange.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jsr292/InvokerGC.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jsr292/NonInlinedCall/InvokeTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jsr292/NonInlinedCall/RedefineTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/AllocateCompileIdTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/CollectCountersTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/CompileCodeTestCase.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ConstantPoolTestCase.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ConstantPoolTestsHelper.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/DisassembleCodeBlobTest.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/DoNotInlineOrCompileTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/DummyClass.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ExecuteInstalledCodeTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetFlagValueTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetResolvedJavaMethodTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetResolvedJavaTypeTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/HasCompiledCodeForOSRTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/HasNeverInlineDirectiveTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/InvalidateInstalledCodeTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/IsCompilableTest.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/IsMatureTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/IsMatureVsReprofileTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupKlassInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupKlassRefIndexInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupMethodInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupNameAndTypeRefIndexInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupNameInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupSignatureInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/MaterializeVirtualObjectTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ReprofileTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveFieldInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolvePossiblyCachedConstantInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveTypeInPoolTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ShouldInlineMethodTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MemoryAccessProviderData.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MemoryAccessProviderTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java | 15 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/lib/ir_framework/TestFramework.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/lib/ir_framework/flag/FlagVM.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/lib/ir_framework/test/AbstractTest.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/lib/ir_framework/test/CustomRunTest.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/lib/ir_framework/test/IREncodingPrinter.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/lib/ir_framework/test/TestVM.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/TestBackedgeLoadArrayFill.jasm | 178 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/TestBackedgeLoadArrayFillMain.java | 231 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/TestInfiniteLoopWithUnmergedBackedges.jasm | 200 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/TestInfiniteLoopWithUnmergedBackedgesMain.java | 41 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/TestLoopLimitOverflowDuringCCP.java | 53 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/TestRemoveEmptyCountedLoop.java | 70 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/TestUndetectedLoopInInfiniteLoop.java | 62 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/TestWrongCMovSplitIf.java | 80 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/UseCountedLoopSafepoints.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/UseCountedLoopSafepointsTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Double.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Float.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/ProdRed_Int.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/ReductionPerf.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Double.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Float.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/SumRedSqrt_Double.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Double.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Float.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopopts/superword/SumRed_Int.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/loopstripmining/TestAddPAtOuterLoopHead.java | 82 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/oracle/GetMethodOptionTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/oracle/MethodMatcherTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/patches/java.base/java/lang/Helper.java | 5 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/predicates/TestHoistedPredicateForNonRangeCheck.java | 182 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/profiling/TestTypeProfiling.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rangechecks/TestExplicitRangeChecks.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rangechecks/TestRangeCheckCmpUOverflowVsSub.java | 64 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rangechecks/TestRangeCheckSmearing.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMAbortRatio.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMAbortThreshold.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMAfterNonRTMDeopt.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMDeoptOnHighAbortRatio.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMDeoptOnLowAbortRatio.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMLockingCalculationDelay.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMLockingThreshold.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMRetryCount.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMSpinLoopCount.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestRTMTotalCountIncrRate.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMAfterLockInflation.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMDeopt.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMForInflatedLocks.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMForStackLocks.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMXendForLockBusy.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/method_options/TestNoRTMLockElidingOption.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/method_options/TestUseRTMLockElidingOption.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/rtm/print/TestPrintPreciseRTMLockingStatistics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/runtime/Test8010927.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/runtime/TestConstantsInError.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/runtime/criticalnatives/argumentcorruption/CheckLongArgs.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/runtime/criticalnatives/lookup/LookUp.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/splitif/TestCrashAtIGVNSplitIfSubType.java | 74 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/splitif/TestSplitDivisionThroughPhi.java | 160 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/StableConfiguration.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableBoolean.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableByte.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableChar.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableDouble.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableFloat.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableInt.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableLong.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableObject.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableShort.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableUByte.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/stable/TestStableUShort.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/testlibrary/CompilerUtils.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/testlibrary/rtm/AbortProvoker.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java | 13 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/tiered/ConstantGettersTransitionsTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/tiered/Level2RecompilationTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/tiered/LevelTransitionTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/tiered/NonTieredLevelsTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/tiered/TestEnqueueMethodForCompilation.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/tiered/TieredLevelsTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/types/TestMeetIncompatibleInterfaceArrays.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/types/correctness/CorrectnessTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/types/correctness/OffTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/uncommontrap/DeoptReallocFailure.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/uncommontrap/Test8009761.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/uncommontrap/TestNullAssertAtCheckCast.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/uncommontrap/TestUnstableIfTrap.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestBoolean.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestByte.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestChar.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestShort.java | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestBoolean.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestByte.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestChar.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestDouble.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestFloat.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestInt.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestLong.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestObject.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/SunMiscUnsafeAccessTestShort.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/UnsafeGetStableArrayElement.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/unsafe/X-UnsafeAccessTest.java.template | 23 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/vectorapi/Test8303508.java | 77 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/vectorization/TestMaskedVectors.java | 118 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/AllocationCodeBlobTest.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/BlockingCompilation.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/ClearMethodStateTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/CompilerWhiteBoxTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/DeoptimizeAllTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/DeoptimizeFramesTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/DeoptimizeMethodTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/DeoptimizeMultipleOSRTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/EnqueueMethodForCompilationTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/ForceNMethodSweepTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/GetCodeHeapEntriesTest.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/GetNMethodTest.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/IsMethodCompilableTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/LockCompilationTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/MakeMethodNotCompilableTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/OSRFailureLevel4Test.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/SetDontInlineMethodTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/SetForceInlineMethodTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/SimpleTestCase.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/TestEnqueueInitializerForCompilation.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/compiler/whitebox/TestMethodCompilableCompilerDirectives.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/cgroup/CgroupSubsystemFactory.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/cgroup/PlainRead.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/CheckContainerized.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/LimitUpdateChecker.java | 57 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/PrintContainerInfo.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/TestCPUSets.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/TestLimitsUpdating.java | 148 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java | 49 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/TestMemoryWithCgroupV1.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/TestMisc.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/containers/docker/TestPids.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestAgeOutput.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestConcurrentGCBreakpoints.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestJNIWeak/TestJNIWeak.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestMemoryInitialization.java | 48 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestMemoryInitializationWithSerial.java | 41 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestNumWorkerOutput.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestReferenceClearDuringMarking.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestReferenceRefersTo.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestReferenceRefersToDuringConcMark.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestSmallHeap.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/TestSpaceCounters.java | 95 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestG1HeapSizeFlags.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestMaxHeapSizeTools.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestMaxRAMFlags.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestMinInitialErgonomics.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestParallelGCThreads.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestParallelHeapSizeFlags.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestParallelRefProc.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestSerialHeapSizeFlags.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestSurvivorRatioFlag.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestTargetSurvivorRatioFlag.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgo.java | 18 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgoTools.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/class_unloading/TestClassUnloadingDisabled.java | 20 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/class_unloading/TestG1ClassUnloadingHWM.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/ergonomics/TestInitialGCThreadLogging.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsLog.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestEdenSurvivorLessThanMax.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestFromCardCacheIndex.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestHumongousCodeCacheRoots.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestHumongousConcurrentStartUndo.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestHumongousRemsetsMatch.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestLargePageUseForAuxMemory.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestLargePageUseForHeap.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestMixedGCLiveThreshold.java | 14 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestNoEagerReclaimOfHumongousRegions.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestNoUseHCC.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestPLABOutput.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestRegionLivenessPrint.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestRemsetLogging.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestRemsetLoggingPerRegion.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestRemsetLoggingTools.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData00.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData05.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData10.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData15.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData20.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData25.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData27.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestSkipRebuildRemsetPhase.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/TestVerifyGCType.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/G1SampleClass.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/TestHeapCounters.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousClassLoader.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousMovement.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousNonArrayAllocation.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousThreshold.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/TestNoAllocationsInHRegions.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/TestObjectCollected.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/objectGraphTest/GC.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/humongousObjects/objectGraphTest/TestObjectGraphAfterGC.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/mixedgc/TestLogging.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/mixedgc/TestOldGenCollectionUsage.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/numa/TestG1NUMATouchRegions.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/plab/TestPLABPromotion.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/plab/TestPLABResize.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/plab/lib/AppPLABPromotion.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/g1/plab/lib/AppPLABResize.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/logging/TestGCId.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/metaspace/TestCapacityUntilGCWrapAround.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/shenandoah/TestReferenceRefersToShenandoah.java | 20 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/shenandoah/TestReferenceShortcutCycle.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/shenandoah/compiler/TestSinkingNodeDropsNotNullCast.java | 68 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/shenandoah/compiler/TestUnexpectedIUBarrierEA.java | 74 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/shenandoah/mxbeans/TestPauseNotifications.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/stress/TestMultiThreadStressRSet.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/stress/TestStressRSetCoarsening.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/testlibrary/Helpers.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/testlibrary/g1/MixedGCProvoker.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/whitebox/TestConcMarkCycleWB.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gc/whitebox/TestWBGC.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/gtest/NativeHeapTrimmerGtest.java | 32 openjdk-17-17.0.9+9/test/hotspot/jtreg/resourcehogs/compiler/intrinsics/string/TestStringIntrinsics2LargeArray.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassInitErrors/InitExceptionUnloadTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/ConstantPoolDependsTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/DictionaryDependsTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/KeepAliveClass.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/KeepAliveClassLoader.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/KeepAliveObject.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/KeepAliveSoftReference.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/SuperDependsTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/UnloadInterfaceTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ClassUnload/UnloadTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/CompressedOops/UseCompressedOops.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Dictionary/CleanProtectionDomain.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ElfDecoder/TestElfDirectRead.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ErrorHandling/MachCodeFramesInErrorFile.java | 185 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ErrorHandling/TimeoutInErrorHandlingTest.java | 54 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/HiddenClasses/TestHiddenClassUnloading.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Metaspace/DefineClass.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Metaspace/elastic/MetaspaceTestArena.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Metaspace/elastic/MetaspaceTestContext.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Metaspace/elastic/Settings.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Metaspace/elastic/TestMetaspaceAllocation.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Metaspace/elastic/TestMetaspaceAllocationMT1.java | 30 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Metaspace/elastic/TestMetaspaceAllocationMT2.java | 30 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Monitor/DeflationIntervalsTest.java | 355 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/CheckForProperDetailStackTrace.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/CommitOverlappingRegions.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/HugeArenaTracking.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/JcmdDetailDiff.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/JcmdSummaryDiff.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/MallocRoundingReportTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/MallocSiteHashOverflow.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/MallocSiteTypeChange.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/MallocStressTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/MallocTestType.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/MallocTrackingVerify.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/ReleaseCommittedMemory.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/ReleaseNoCommit.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/SummarySanityCheck.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/ThreadedMallocTestType.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/ThreadedVirtualAllocTestType.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/VirtualAllocAttemptReserveMemoryAt.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/VirtualAllocCommitMerge.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/VirtualAllocCommitUncommitRecommit.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/NMT/VirtualAllocTestType.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Nestmates/protectionDomain/TestDifferentProtectionDomains.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Safepoint/TestAbortOnVMOperationTimeout.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Safepoint/TestAbortVMOnSafepointTimeout.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Thread/StopAtExit.java | 69 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Thread/ThreadObjAccessAtExit.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/Unsafe/InternalErrorTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/CheckDefaultArchiveFile.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/CheckSharingWithDefaultArchive.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/SharedStrings.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/SharedStringsWb.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/SpaceUtilizationCheck.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/ClassLoaderTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/CommandLineFlagCombo.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/HelloExtTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/JarBuilder.java | 16 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/JvmtiAddPath.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/MultiProcessSharing.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/RewriteBytecodesTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/SharedRegionAlignmentTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerCacheTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedModuleComboTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedModuleWithCustomImageTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckArchivedModuleApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckCachedMirrorApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckCachedMirrorTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckCachedResolvedReferences.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckCachedResolvedReferencesApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckIntegerCacheApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/DifferentHeapSizes.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/GCStressApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/GCStressTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/MirrorWithReferenceFieldsApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/MirrorWithReferenceFieldsTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/PrimitiveTypesApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/PrimitiveTypesTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/RedefineClassApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/RedefineClassTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/condy/CondyHelloApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/condy/CondyHelloTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/HelloCustom.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/HelloCustom_JFR.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/LoaderSegregationTest.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/OldClassAndInf.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/PrintSharedArchiveAndExit.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/SameNameInTwoLoadersTest.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/UnintendedLoadersTest.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/UnloadUnregisteredLoaderTest.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/Hello.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/HelloUnload.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/LoaderSegregation.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/OldClassApp.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/SameNameUnrelatedLoaders.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/UnintendedLoaders.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/UnloadUnregisteredLoader.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/AppendClasspath.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchiveConsistency.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchivedSuperIf.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArrayKlasses.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/BasicLambdaTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/CDSStreamTestDriver.java | 19 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ClassResolutionFailure.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DoubleSumAverageTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveRelocationTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicLambdaWithUseImplMethodHandle.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicLotsOfClasses.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ExcludedClasses.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamic.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustom.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustomUnload.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/JFRDynamicCDS.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/JITInteraction.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaContainsOldInf.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaCustomLoader.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaForClassInBaseArchive.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaInBaseArchive.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyDuringShutdown.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LinkClassTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MainModuleOnly.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MethodSorting.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MismatchedBaseArchive.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MissingArchive.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/NestTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/NoClassToArchive.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/OldClassAndInf.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ParallelLambdaLoadTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PredicateTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PrintSharedArchiveAndExit.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RelativePath.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/SharedArchiveFileOption.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/SharedBaseAddressOption.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/StaticInnerTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/TestDynamicDumpAtOom.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/TestDynamicRegenerateHolderClasses.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UnsupportedBaseArchive.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UnusedCPDuringDump.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UsedAllArchivedLambdas.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/VerifyObjArrayCloneTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/VerifyWithDynamicArchive.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/WrongTopClasspath.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/CDSMHTest_generate.sh | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesAsCollectorTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesCastFailureTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesGeneralTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesInvokersTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesPermuteArgumentsTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesSpreadArgumentsTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/LambdaVerification.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/LoadClasses.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/TestJIT.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/UsedAllArchivedLambdasApp.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/javaldr/ArrayTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/javaldr/ArrayTestHelper.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/javaldr/GCSharedStringsDuringDump.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/javaldr/GCSharedStringsDuringDumpWb.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDumpBase.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestFileSafety.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestStaticDump.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/classpathtests/DummyClassesInBootClassPath.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/JvmtiAddPath.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/MainModuleOnly.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jvmti/ClassFileLoadHook.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jvmti/ClassFileLoadHookTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jvmti/InstrumentationApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/jvmti/InstrumentationTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/methodHandles/CDSMHTest_generate.sh | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesAsCollectorTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesCastFailureTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesGeneralTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesInvokersTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesPermuteArgumentsTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/methodHandles/MethodHandlesSpreadArgumentsTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasic.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_SharedHelper.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/ExerciseGC.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/HelloStringGC.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/HelloStringPlus.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/IncompatibleOptions.java | 18 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/InternSharedString.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/InternStringTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/LockSharedStrings.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/LockStringTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/LockStringValueTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsBasicPlus.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsHumongous.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsUtils.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsWb.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsWbTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/BootClassPathAppendHelper.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/DummyClassHelper.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/ForNameTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/GenericTestApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/HelloExt.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/HelloWB.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/JvmtiApp.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/MultiProcClass.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/appcds/test-classes/RewriteBytecodes.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/serviceability/ReplaceCriticalClasses.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/cds/serviceability/ReplaceCriticalClassesForSubgraphs.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/exceptionMsgs/AbstractMethodError/AbstractMethodErrorTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/exceptionMsgs/IncompatibleClassChangeError/IncompatibleClassChangeErrorTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/execstack/TestCheckJDK.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/handshake/AsyncHandshakeWalkStackTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/handshake/HandshakeTimeoutTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/handshake/HandshakeWalkExitTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/handshake/HandshakeWalkOneExitTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/handshake/HandshakeWalkStackTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/handshake/MixedHandshakeWalkStackTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/handshake/SuspendBlocked.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/interned/SanityTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/jni/ReturnJNIWeak/ReturnJNIWeak.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/jni/nativeStack/TestNativeStack.java | 82 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/jni/nativeStack/libnativeStack.c | 114 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/logging/SafepointCleanupTest.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/logging/loadLibraryTest/LoadLibraryTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/memory/ReadFromNoaccessArea.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/memory/ReadVMPageSize.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/memory/ReserveMemory.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/memory/StressVirtualSpaceResize.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/AccessCheckAllUnnamed.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/AccessCheckExp.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/AccessCheckJavaBase.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/AccessCheckOpen.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/AccessCheckRead.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/AccessCheckSuper.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/AccessCheckUnnamed.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/AccessCheckWorks.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/CCE_module_msg.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/ExportTwice.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/JVMAddModuleExportToAllUnnamed.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/JVMAddModuleExports.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/JVMAddModuleExportsToAll.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/JVMAddReadsModule.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/JVMDefineModule.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/LoadUnloadModuleStress.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/ModuleHelper.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/SealedInterfaceModuleTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/modules/SealedModuleTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/os/TestTimerSlack.java | 143 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/os/TestTrimNative.java | 340 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/stringtable/StringTableCleaningTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/whitebox/TestHiddenClassIsAlive.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/whitebox/TestWBDeflateIdleMonitors.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/runtime/whitebox/WBStackSize.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/AsyncGetCallTrace/MyPackage/ASGCTBaseTest.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/AsyncGetCallTrace/libAsyncGetCallTraceTest.cpp | 35 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/ParserTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/dcmd/compiler/CodelistTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/dcmd/compiler/CompilerQueueTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/dcmd/vm/TrimLibcHeapTest.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/jvmti/Heap/IterateHeapWithEscapeAnalysisEnabled.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/sa/ClhsdbDumpclass.java | 5 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/sa/TestInstanceKlassSize.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/sa/TestInstanceKlassSizeForInterface.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/sa/TestObjectAlignment.java | 97 openjdk-17-17.0.9+9/test/hotspot/jtreg/serviceability/sa/TestUniverse.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/Compiler.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ctw/ClassesDirTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ctw/ClassesListTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ctw/JarDirTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ctw/JarsTest.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestBasics.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestCompLevels.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestControls.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestDIgnoreCompilerControls.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestIRMatching.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle01/Juggle01.java | 20 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle02/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle03/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle04/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle05/TestDescription.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle06/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle07/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle08/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle09/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle10/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle11/TestDescription.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle12/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle13/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle14/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle15/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle16/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle17/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle18/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle19/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle20/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle21/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle22/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle23/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle24/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle25/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle26/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle27/TestDescription.java | 9 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle28/TestDescription.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle29/TestDescription.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle30/TestDescription.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle31/TestDescription.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle32/TestDescription.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle33/TestDescription.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/ArrayJuggle/Juggle34/TestDescription.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/check/ClassAssertion.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/loading/ClassLoadingHelper.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_anonclassloader_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_anonclassloader_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_anonclassloader_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_anonclassloader_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level1_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level2_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level3_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_compilation_level4_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_humongous_class_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_jni_classloading_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_global_ref_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_jni_local_ref_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_rootClass_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_stackLocal_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_staticField_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_strongRef_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_keepRef_threadItself_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_phantom_ref_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_prot_domains_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_cl/TestDescription.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_class/TestDescription.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_inMemoryCompilation_keep_obj/TestDescription.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_redefinition_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_reflection_classloading_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_inMemoryCompilation_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_inMemoryCompilation_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_inMemoryCompilation_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_keep_cl/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_keep_class/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/tests/unloading_weak_ref_keep_obj/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/PerformChecksHelper.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy001/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy002/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy003/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy004/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy005/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy006/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy007/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy008/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy009/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy010/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy011/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy013/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy014/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy015/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdb/interrupt/interrupt001/interrupt001.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdb/interrupt/interrupt001/interrupt001a.java | 10 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/Event/request/request001.java | 22 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventIterator/nextEvent/nextevent001.java | 27 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/methodEntryRequests/methentreq002.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/HiddenClass/events/events001.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/HiddenClass/events/events001a.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/LocatableEvent/thread/thread001.java | 26 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002a.java | 2 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter001.java | 3 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn001/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn002/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/heapwalking001/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/heapwalking002/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/mixed001/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/mixed002/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/monitorEvents001/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/monitorEvents002/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames001/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames002/TestDescription.java | 6 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/TestDriver.java | 12 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/share/jdb/Launcher.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/ArgumentHandler.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/JDIBase.java | 41 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/SerialExecutionDebuggee.java | 4 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfo/Test.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/stress/gc/lotsOfCallSites/Test.java | 8 openjdk-17-17.0.9+9/test/hotspot/jtreg/vmTestbase/vm/share/gc/TriggerUnloadingWithWhiteBox.java | 4 openjdk-17-17.0.9+9/test/jaxp/javax/xml/jaxp/libs/jaxp/library/JAXPPolicyManager.java | 13 openjdk-17-17.0.9+9/test/jaxp/javax/xml/jaxp/unittest/xpath/XPathExpDescendantTest.java | 173 openjdk-17-17.0.9+9/test/jaxp/javax/xml/jaxp/unittest/xpath/XPathExpFollowingTest.java | 185 openjdk-17-17.0.9+9/test/jaxp/javax/xml/jaxp/unittest/xpath/XPathExpNamespaceTest.java | 245 openjdk-17-17.0.9+9/test/jaxp/javax/xml/jaxp/unittest/xpath/XPathExpParentTest.java | 164 openjdk-17-17.0.9+9/test/jaxp/javax/xml/jaxp/unittest/xpath/XPathOperatorExpTest.java | 141 openjdk-17-17.0.9+9/test/jaxp/javax/xml/jaxp/unittest/xpath/XPathTestBase.java | 1 openjdk-17-17.0.9+9/test/jdk/ProblemList.txt | 20 openjdk-17-17.0.9+9/test/jdk/TEST.groups | 29 openjdk-17-17.0.9+9/test/jdk/build/releaseFile/CheckReleaseFile.java | 172 openjdk-17-17.0.9+9/test/jdk/build/releaseFile/CheckSource.java | 149 openjdk-17-17.0.9+9/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java | 31 openjdk-17-17.0.9+9/test/jdk/com/sun/crypto/provider/TLS/keymatdata.txt | 34 openjdk-17-17.0.9+9/test/jdk/com/sun/jdi/EATests.java | 12 openjdk-17-17.0.9+9/test/jdk/com/sun/jdi/cds/CDSJDITest.java | 5 openjdk-17-17.0.9+9/test/jdk/com/sun/jndi/ldap/lib/BaseLdapServer.java | 13 openjdk-17-17.0.9+9/test/jdk/com/sun/nio/sctp/SctpChannel/CloseDescriptors.java | 206 openjdk-17-17.0.9+9/test/jdk/com/sun/security/auth/module/AllPlatforms.java | 47 openjdk-17-17.0.9+9/test/jdk/java/awt/AWTEventMulticaster/ArrayStoreException.java | 51 openjdk-17-17.0.9+9/test/jdk/java/awt/AWTKeyStroke/ToStringTest.java | 323 openjdk-17-17.0.9+9/test/jdk/java/awt/BorderLayout/NullConstraintsReturns.java | 42 openjdk-17-17.0.9+9/test/jdk/java/awt/Button/ButtonNullLabelTest.java | 94 openjdk-17-17.0.9+9/test/jdk/java/awt/Button/DisabledButtonPress.java | 117 openjdk-17-17.0.9+9/test/jdk/java/awt/Button/DoubleActionEventTest.java | 112 openjdk-17-17.0.9+9/test/jdk/java/awt/CacheTest.java | 48 openjdk-17-17.0.9+9/test/jdk/java/awt/CardLayout/CardsOrderTest.java | 69 openjdk-17-17.0.9+9/test/jdk/java/awt/CardLayout/ObedienceTest.java | 59 openjdk-17-17.0.9+9/test/jdk/java/awt/Checkbox/CheckboxCrashTest.java | 56 openjdk-17-17.0.9+9/test/jdk/java/awt/Checkbox/MultiCheckedCheckboxGroupTest.java | 59 openjdk-17-17.0.9+9/test/jdk/java/awt/Checkbox/NullCheckboxGroupTest.java | 55 openjdk-17-17.0.9+9/test/jdk/java/awt/Checkbox/SetCheckboxGroupNull.java | 66 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceConsumeMouseEvents.java | 125 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceFocusLostTest.java | 116 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceFreezeTest.java | 132 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceGeneratesItemEvents.java | 129 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceHandleMouseEvent.java | 206 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceHandleMouseEvent_2.java | 340 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceMouseEventOutbounds.java | 145 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceMoveTest.java | 106 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/ChoiceStaysOpenedOnTAB.java | 150 openjdk-17-17.0.9+9/test/jdk/java/awt/Choice/DragOffNoSelectTest.java | 134 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/CopyAnimatedGIFTest.java | 166 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/DelayedQueryTest.java | 252 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/FlavorChangeNotificationTest/Common.java | 291 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/FlavorChangeNotificationTest/PrivateClipboardTest.java | 70 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/FlavorChangeNotificationTest/SystemClipboardTest.java | 111 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/GetAltContentsTest/PrivateClipboardTest.java | 121 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/LostOwnershipChainTest/PrivateClipboardTest.java | 118 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/LostOwnershipChainTest/SystemClipboardTest.java | 153 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/NullContentsTest.java | 58 openjdk-17-17.0.9+9/test/jdk/java/awt/Clipboard/SerializeLocalFlavorTest.java | 198 openjdk-17-17.0.9+9/test/jdk/java/awt/ColorClass/ColorSerializationTest.java | 62 openjdk-17-17.0.9+9/test/jdk/java/awt/Component/ComponentRedrawnTest.java | 198 openjdk-17-17.0.9+9/test/jdk/java/awt/Component/GetListenersTest.java | 376 openjdk-17-17.0.9+9/test/jdk/java/awt/Container/FindComponentAtTest.java | 86 openjdk-17-17.0.9+9/test/jdk/java/awt/Container/FindComponentTest.java | 90 openjdk-17-17.0.9+9/test/jdk/java/awt/Container/FocusTraversalPolicyProviderTest.java | 509 openjdk-17-17.0.9+9/test/jdk/java/awt/Container/OpenedPopupFrameDisposal.java | 127 openjdk-17-17.0.9+9/test/jdk/java/awt/Container/PropertyEventsTest.java | 129 openjdk-17-17.0.9+9/test/jdk/java/awt/Container/RemoveByIndexExceptionTest.java | 56 openjdk-17-17.0.9+9/test/jdk/java/awt/Container/ShowingChangedEventTest.java | 105 openjdk-17-17.0.9+9/test/jdk/java/awt/Cursor/SingleColorCursorTest.java | 78 openjdk-17-17.0.9+9/test/jdk/java/awt/Dialog/ComponentShownEvent.java | 93 openjdk-17-17.0.9+9/test/jdk/java/awt/Dialog/DialogAsParentOfFileDialog.java | 189 openjdk-17-17.0.9+9/test/jdk/java/awt/Dialog/DialogDeadlockTest.java | 129 openjdk-17-17.0.9+9/test/jdk/java/awt/Dialog/DialogLocationTest.java | 182 openjdk-17-17.0.9+9/test/jdk/java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java | 6 openjdk-17-17.0.9+9/test/jdk/java/awt/Dialog/ModalDialogOnNonEdt.java | 136 openjdk-17-17.0.9+9/test/jdk/java/awt/Dialog/NewMessagePumpTest.java | 140 openjdk-17-17.0.9+9/test/jdk/java/awt/EventDispatchThread/StoppingEdtOnPushPopTest.java | 118 openjdk-17-17.0.9+9/test/jdk/java/awt/FileDialog/ExceptionAfterSetDirectory.java | 116 openjdk-17-17.0.9+9/test/jdk/java/awt/FlowLayout/MinimumLayoutSize.java | 98 openjdk-17-17.0.9+9/test/jdk/java/awt/FlowLayout/PreferredLayoutSize.java | 78 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/AsyncUpFocusCycleTest.java | 186 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/ClearMostRecentFocusOwnerTest.java | 307 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/ConsumedTabKeyTest.java | 232 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/EventRetargetTest.java | 124 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/ExtraPropChangeNotifVetoingTest.java | 113 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/FocusForRemovedComponentTest.java | 154 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/FocusTraversalPolicyIAE.java | 73 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/InitialFocusTest.java | 144 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/LabelScrollBarFocus.java | 180 openjdk-17-17.0.9+9/test/jdk/java/awt/Focus/ModalDialogInFocusEventTest.java | 414 openjdk-17-17.0.9+9/test/jdk/java/awt/FontClass/DrawStringWithInfiniteXform.java | 43 openjdk-17-17.0.9+9/test/jdk/java/awt/Frame/ALTTABIconBeingErased/ALTTABIconBeingErased.java | 116 openjdk-17-17.0.9+9/test/jdk/java/awt/Frame/Iconify/IconifyTest.java | 200 openjdk-17-17.0.9+9/test/jdk/java/awt/Frame/RemoveNotifyTest.java | 70 openjdk-17-17.0.9+9/test/jdk/java/awt/Icon/IconChangingTest/IconChangingTest.java | 209 openjdk-17-17.0.9+9/test/jdk/java/awt/Icon/IconShowingTest/IconShowingTest.java | 280 openjdk-17-17.0.9+9/test/jdk/java/awt/Icon/IconTransparencyTest/IconTransparencyTest.java | 251 openjdk-17-17.0.9+9/test/jdk/java/awt/Icon/NullIconImageTest.java | 51 openjdk-17-17.0.9+9/test/jdk/java/awt/Icon/SetLargeIconTest/SetLargeIconTest.java | 89 openjdk-17-17.0.9+9/test/jdk/java/awt/Insets/ClobberSharedInsetsObjectTest.java | 88 openjdk-17-17.0.9+9/test/jdk/java/awt/Insets/RemoveMenuBarTest.java | 68 openjdk-17-17.0.9+9/test/jdk/java/awt/Insets/SetInsetsTest.java | 45 openjdk-17-17.0.9+9/test/jdk/java/awt/Insets/WindowInsetsTest.java | 69 openjdk-17-17.0.9+9/test/jdk/java/awt/KeyboardFocusmanager/ChangeKFMTest.java | 93 openjdk-17-17.0.9+9/test/jdk/java/awt/KeyboardFocusmanager/PropertySupportNPETest.java | 47 openjdk-17-17.0.9+9/test/jdk/java/awt/Label/NullLabelTest.java | 59 openjdk-17-17.0.9+9/test/jdk/java/awt/Layout/InsetsTest.java | 96 openjdk-17-17.0.9+9/test/jdk/java/awt/LightweightComponent/LWClobberDragEvent.java | 169 openjdk-17-17.0.9+9/test/jdk/java/awt/LightweightComponent/LightweightDragTest.java | 151 openjdk-17-17.0.9+9/test/jdk/java/awt/List/ISCAfterRemoveAllTest.java | 143 openjdk-17-17.0.9+9/test/jdk/java/awt/List/InstanceOfSelectedArray.java | 85 openjdk-17-17.0.9+9/test/jdk/java/awt/List/ListEnterExitTest.java | 127 openjdk-17-17.0.9+9/test/jdk/java/awt/List/ListNullTest.java | 69 openjdk-17-17.0.9+9/test/jdk/java/awt/List/MaxWidthTest.java | 79 openjdk-17-17.0.9+9/test/jdk/java/awt/List/PageUPSelectsItemsTest.java | 174 openjdk-17-17.0.9+9/test/jdk/java/awt/List/TriggerActionEventTest.java | 147 openjdk-17-17.0.9+9/test/jdk/java/awt/MenuItem/EnableTest.java | 74 openjdk-17-17.0.9+9/test/jdk/java/awt/MenuItem/MenuSetLabelTest.java | 112 openjdk-17-17.0.9+9/test/jdk/java/awt/MenuItem/SetLabelWithPeerCreatedTest.java | 70 openjdk-17-17.0.9+9/test/jdk/java/awt/MenuItem/SetStateTest.java | 70 openjdk-17-17.0.9+9/test/jdk/java/awt/Modal/BlockedMouseInputTest.java | 195 openjdk-17-17.0.9+9/test/jdk/java/awt/Modal/BlockedMouseInputTest2.java | 140 openjdk-17-17.0.9+9/test/jdk/java/awt/Modal/BlockedMouseInputTest3.java | 216 openjdk-17-17.0.9+9/test/jdk/java/awt/Modal/ModalDialogCannotBeMadeNonModalTest.java | 163 openjdk-17-17.0.9+9/test/jdk/java/awt/Modal/NonModalDialogReceiveEventsAfterModalTest.java | 188 openjdk-17-17.0.9+9/test/jdk/java/awt/Modal/ParentCatchupDraggingChildDialogTest.java | 151 openjdk-17-17.0.9+9/test/jdk/java/awt/MouseInfo/ButtonsNumber.java | 41 openjdk-17-17.0.9+9/test/jdk/java/awt/MouseInfo/ContainerMousePositionTest.java | 172 openjdk-17-17.0.9+9/test/jdk/java/awt/Panel/SetForegroundTest.java | 55 openjdk-17-17.0.9+9/test/jdk/java/awt/PopupMenu/PopupMenuStayOpen.java | 115 openjdk-17-17.0.9+9/test/jdk/java/awt/Robot/CheckCommonColors/CheckCommonColors.java | 2 openjdk-17-17.0.9+9/test/jdk/java/awt/Robot/RobotMoveMultiscreen.java | 95 openjdk-17-17.0.9+9/test/jdk/java/awt/ScrollPane/ComponentScrollTest.java | 99 openjdk-17-17.0.9+9/test/jdk/java/awt/ScrollPane/ScrollPaneExtraScrollBar.java | 97 openjdk-17-17.0.9+9/test/jdk/java/awt/ScrollPane/ScrollPaneLeakTest.java | 189 openjdk-17-17.0.9+9/test/jdk/java/awt/ScrollPane/ScrollPaneLimitation.java | 149 openjdk-17-17.0.9+9/test/jdk/java/awt/ScrollPane/ScrollPaneRemoveAdd.java | 113 openjdk-17-17.0.9+9/test/jdk/java/awt/ScrollPane/ScrollPaneScrollEnd.java | 95 openjdk-17-17.0.9+9/test/jdk/java/awt/ScrollPane/ScrollPaneWindowsTest.java | 191 openjdk-17-17.0.9+9/test/jdk/java/awt/ScrollPane/ScrollPositionIntact.java | 103 openjdk-17-17.0.9+9/test/jdk/java/awt/Scrollbar/PageIncrementTest.java | 82 openjdk-17-17.0.9+9/test/jdk/java/awt/Scrollbar/ScrollbarKeyControlTest.java | 168 openjdk-17-17.0.9+9/test/jdk/java/awt/TextArea/ReplaceRangeTest.java | 81 openjdk-17-17.0.9+9/test/jdk/java/awt/TextArea/TextAreaCRLFAutoDetectTest.java | 155 openjdk-17-17.0.9+9/test/jdk/java/awt/TextArea/TextLengthTest.java | 116 openjdk-17-17.0.9+9/test/jdk/java/awt/TextArea/TextLimitTest.java | 85 openjdk-17-17.0.9+9/test/jdk/java/awt/TextComponent/CorrectSetCaretPositionDuringInitPeerTest.java | 60 openjdk-17-17.0.9+9/test/jdk/java/awt/TextComponent/DeselectionDuringDoSelectionNonVisibleTest.java | 105 openjdk-17-17.0.9+9/test/jdk/java/awt/TextComponent/GetCaretPosOutOfBoundsTest.java | 49 openjdk-17-17.0.9+9/test/jdk/java/awt/TextComponent/InitialInsertionCaretPositionTest.java | 68 openjdk-17-17.0.9+9/test/jdk/java/awt/TextComponent/MiddleMouseClickPasteTest.java | 112 openjdk-17-17.0.9+9/test/jdk/java/awt/TextComponent/PeerlessSetCaret/PeerlessSetCaret.java | 46 openjdk-17-17.0.9+9/test/jdk/java/awt/TextComponent/SelectionBounds/SelectionBounds.java | 107 openjdk-17-17.0.9+9/test/jdk/java/awt/TextComponent/TextAreaCRLFTest/TextAreaCRLFTest.java | 150 openjdk-17-17.0.9+9/test/jdk/java/awt/Toolkit/AWTEventListenerProxyTest/AWTEventListenerProxyTest.java | 172 openjdk-17-17.0.9+9/test/jdk/java/awt/Toolkit/ListenersDeadlockTest/ListenerDeadlockTest.java | 87 openjdk-17-17.0.9+9/test/jdk/java/awt/Toolkit/ToolkitListenerTest/ToolkitListenerTest.java | 126 openjdk-17-17.0.9+9/test/jdk/java/awt/TrayIcon/TrayIconScalingTest.java | 4 openjdk-17-17.0.9+9/test/jdk/java/awt/datatransfer/CRLFTest/CRLFTest.java | 209 openjdk-17-17.0.9+9/test/jdk/java/awt/datatransfer/DataConversionDeadlockTest/DataConversionDeadlockTest.java | 204 openjdk-17-17.0.9+9/test/jdk/java/awt/datatransfer/DataFlavor/BestTextFlavorTest/BestTextFlavorTest.java | 105 openjdk-17-17.0.9+9/test/jdk/java/awt/datatransfer/FileTransferAWTLockTest/FileTransferAWTLockTest.java | 219 openjdk-17-17.0.9+9/test/jdk/java/awt/datatransfer/MimeFormatsTest.java | 288 openjdk-17-17.0.9+9/test/jdk/java/awt/datatransfer/RemoveFlavorListenerTest.java | 50 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/AutoscrollStopTest.java | 143 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/ButtonReleaseTest.java | 350 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/DnDAWTLockTest.java | 408 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/DragGestureInvokeLaterTest.java | 142 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/DragOverDropTargetPerformanceTest.java | 233 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/DragSourceDragEventModifiersTest.java | 273 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/DragSourceGCrashTest.java | 293 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/DropTargetingTest.java | 304 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/DroppingVMHangTest.java | 367 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/HonorTargetActionTest.java | 171 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/InterJVMLinkTest.java | 273 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/IntraJVMGetDropSuccessTest.java | 283 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/LinkAcceptanceTest.java | 382 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/MissedDragEnterTest.java | 253 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/ModalDialogDeadlockTest.java | 212 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/ModalDialogOnDragDeadlockTest.java | 194 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/ModalDialogOnDropDeadlockTest.java | 236 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/MouseExitGestureTriggerTest.java | 127 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/MozillaDnDTest.java | 494 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/MultiDataFlavorDropTest.java | 415 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/NativeDragJavaDropTest.java | 152 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/NestedHeavyweightDropTargetTest.java | 492 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/NextDropActionTest/NextDropActionTest.java | 203 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/NoFormatsDragEnterTest/NoFormatsDragEnterTest.java | 225 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/NoFormatsDropTest/NoFormatsDropTest.java | 297 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/NoTargetNoDragExitTest/NoTargetNoDragExitTest.java | 217 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/NotReallySerializableTest/NotReallySerializableTest.java | 120 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/RejectDragDropActionTest.java | 124 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/RemoveDragSourceListenerTest.java | 82 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/RemoveDropTargetCrashTest/RemoveDropTargetCrashTest.java | 2 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/RemoveParentChildDropTargetTest.java | 77 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/SameJVMModalDialogDeadlockTest.java | 193 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/SkipDropCompleteTest/SkipDropCompleteTest.java | 101 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/SkipDropCompleteTest/SourceFrame.java | 87 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/SkipDropCompleteTest/TargetFrame.java | 82 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/SkipDropCompleteTest/TransferableObject.java | 102 openjdk-17-17.0.9+9/test/jdk/java/awt/dnd/ZeroFormatTransferableTest.java | 82 openjdk-17-17.0.9+9/test/jdk/java/awt/event/ComponentEvent/ComponentResizedTest.java | 75 openjdk-17-17.0.9+9/test/jdk/java/awt/event/ComponentEvent/ObjectSourceTest.java | 58 openjdk-17-17.0.9+9/test/jdk/java/awt/event/ComponentEvent/ResizeDeniedTest.java | 87 openjdk-17-17.0.9+9/test/jdk/java/awt/event/FocusEvent/OppositeSerialization/OppositeSerialization.java | 167 openjdk-17-17.0.9+9/test/jdk/java/awt/event/HierarchyEvent/HierarchyEventOnWindowTest.java | 75 openjdk-17-17.0.9+9/test/jdk/java/awt/event/HierarchyEvent/ObjectSourceTest.java | 56 openjdk-17-17.0.9+9/test/jdk/java/awt/event/HierarchyEvent/SpecTest.java | 1248 openjdk-17-17.0.9+9/test/jdk/java/awt/event/InputEvent/MouseModsTest.java | 286 openjdk-17-17.0.9+9/test/jdk/java/awt/event/InvocationEvent/CatchingThrowableTest.java | 47 openjdk-17-17.0.9+9/test/jdk/java/awt/event/KeyEvent/AltGraphModifier.java | 140 openjdk-17-17.0.9+9/test/jdk/java/awt/event/KeyEvent/KeyTyped/CancelKeyTyped.java | 138 openjdk-17-17.0.9+9/test/jdk/java/awt/event/KeyEvent/KeyTyped/CtrlASCII.java | 356 openjdk-17-17.0.9+9/test/jdk/java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java | 8 openjdk-17-17.0.9+9/test/jdk/java/awt/font/FontScaling/StretchedFontTest.java | 221 openjdk-17-17.0.9+9/test/jdk/java/awt/font/GlyphVector/MultiSlotFontTest.java | 2 openjdk-17-17.0.9+9/test/jdk/java/awt/print/PageFormat/PrintContentCutOffTest.java | 358 openjdk-17-17.0.9+9/test/jdk/java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java | 9 openjdk-17-17.0.9+9/test/jdk/java/awt/print/PrinterJob/InitToBlack.java | 150 openjdk-17-17.0.9+9/test/jdk/java/awt/print/PrinterJob/PrintGlyphVectorTest.java | 11 openjdk-17-17.0.9+9/test/jdk/java/awt/print/PrinterJob/PrintLatinCJKTest.java | 9 openjdk-17-17.0.9+9/test/jdk/java/awt/regtesthelpers/PassFailJFrame.java | 183 openjdk-17-17.0.9+9/test/jdk/java/beans/PropertyDescriptor/OverriddenGetter.java | 96 openjdk-17-17.0.9+9/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java | 14 openjdk-17-17.0.9+9/test/jdk/java/foreign/stackwalk/TestStackWalk.java | 14 openjdk-17-17.0.9+9/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java | 112 openjdk-17-17.0.9+9/test/jdk/java/lang/ProcessBuilder/Basic.java | 36 openjdk-17-17.0.9+9/test/jdk/java/lang/StackWalker/StackWalkTest.java | 3 openjdk-17-17.0.9+9/test/jdk/java/lang/String/NoReplTest.java | 85 openjdk-17-17.0.9+9/test/jdk/java/lang/Thread/IsAlive.java | 114 openjdk-17-17.0.9+9/test/jdk/java/lang/instrument/GetObjectSizeIntrinsicsTest.java | 38 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleBaseTest.java | 21 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessBoolean.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessByte.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessChar.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessDouble.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessFloat.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessInt.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessLong.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessShort.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessString.java | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsChar.java | 10 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsDouble.java | 18 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsFloat.java | 18 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsInt.java | 18 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsLong.java | 18 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsShort.java | 10 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessBoolean.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessByte.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessChar.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessDouble.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessFloat.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessInt.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessLong.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessShort.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessString.java | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/X-VarHandleTestAccess.java.template | 29 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/X-VarHandleTestByteArrayView.java.template | 18 openjdk-17-17.0.9+9/test/jdk/java/lang/invoke/VarHandles/X-VarHandleTestMethodHandleAccess.java.template | 58 openjdk-17-17.0.9+9/test/jdk/java/lang/management/MemoryMXBean/CollectionUsageThreshold.java | 8 openjdk-17-17.0.9+9/test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest.java | 8 openjdk-17-17.0.9+9/test/jdk/java/lang/management/MemoryMXBean/ResetPeakMemoryUsage.java | 8 openjdk-17-17.0.9+9/test/jdk/java/lang/module/ClassFileVersionsTest.java | 104 openjdk-17-17.0.9+9/test/jdk/java/lang/ref/CleanerTest.java | 6 openjdk-17-17.0.9+9/test/jdk/java/net/InetAddress/HostsFileOrderingTest.java | 7 openjdk-17-17.0.9+9/test/jdk/java/net/InetAddress/InternalNameServiceTest.java | 25 openjdk-17-17.0.9+9/test/jdk/java/net/InetAddress/InternalNameServiceWithHostsFileTest.java | 43 openjdk-17-17.0.9+9/test/jdk/java/net/Socket/ExceptionText.java | 10 openjdk-17-17.0.9+9/test/jdk/java/net/httpclient/AsFileDownloadTest.java | 36 openjdk-17-17.0.9+9/test/jdk/java/nio/charset/Charset/RegisteredCharsets.java | 10 openjdk-17-17.0.9+9/test/jdk/java/nio/file/Files/ReadWriteString.java | 91 openjdk-17-17.0.9+9/test/jdk/java/security/KeyRep/SerialOld.java | 14 openjdk-17-17.0.9+9/test/jdk/java/security/KeyStore/CheckMacOSKeyChainTrust.java | 119 openjdk-17-17.0.9+9/test/jdk/java/security/MessageDigest/ThreadSafetyTest.java | 8 openjdk-17-17.0.9+9/test/jdk/java/security/SecureRandom/NoSync.java | 4 openjdk-17-17.0.9+9/test/jdk/java/security/cert/CertPathValidator/OCSP/GetAndPostTests.java | 13 openjdk-17-17.0.9+9/test/jdk/java/security/testlibrary/SimpleOCSPServer.java | 118 openjdk-17-17.0.9+9/test/jdk/java/text/Format/NumberFormat/CurrencySymbols.properties | 23 openjdk-17-17.0.9+9/test/jdk/java/time/test/java/time/format/TestUTCParse.java | 77 openjdk-17-17.0.9+9/test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java | 15 openjdk-17-17.0.9+9/test/jdk/java/util/Arrays/TimSortStackSize2.java | 6 openjdk-17-17.0.9+9/test/jdk/java/util/Calendar/CalendarTestScripts/Symbol.java | 3 openjdk-17-17.0.9+9/test/jdk/java/util/Currency/tablea1.txt | 6 openjdk-17-17.0.9+9/test/jdk/java/util/TimeZone/TimeZoneData/VERSION | 2 openjdk-17-17.0.9+9/test/jdk/java/util/TimeZone/TimeZoneData/aliases.txt | 1 openjdk-17-17.0.9+9/test/jdk/java/util/TimeZone/TimeZoneData/displaynames.txt | 3 openjdk-17-17.0.9+9/test/jdk/java/util/TimeZone/TimeZoneTest.java | 6 openjdk-17-17.0.9+9/test/jdk/java/util/UUID/UUIDTest.java | 271 openjdk-17-17.0.9+9/test/jdk/java/util/jar/JarFile/VerifySignedJar.java | 128 openjdk-17-17.0.9+9/test/jdk/java/util/zip/TestExtraTime.java | 13 openjdk-17-17.0.9+9/test/jdk/java/util/zip/ZipFile/CorruptedZipFiles.java | 11 openjdk-17-17.0.9+9/test/jdk/java/util/zip/ZipFile/ReadNonStandardExtraHeadersTest.java | 938 openjdk-17-17.0.9+9/test/jdk/javax/imageio/plugins/bmp/BMP1bppImageWithPaletteTest.java | 64 openjdk-17-17.0.9+9/test/jdk/javax/net/ssl/Stapling/HttpsUrlConnClient.java | 18 openjdk-17-17.0.9+9/test/jdk/javax/net/ssl/Stapling/SSLEngineWithStapling.java | 18 openjdk-17-17.0.9+9/test/jdk/javax/net/ssl/Stapling/SSLSocketWithStapling.java | 68 openjdk-17-17.0.9+9/test/jdk/javax/net/ssl/Stapling/StapleEnableProps.java | 18 openjdk-17-17.0.9+9/test/jdk/javax/print/attribute/SidesAttributeTest.java | 272 openjdk-17-17.0.9+9/test/jdk/javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java | 61 openjdk-17-17.0.9+9/test/jdk/javax/security/auth/callback/PasswordCallback/PasswordCleanup.java | 52 openjdk-17-17.0.9+9/test/jdk/javax/sound/sampled/Clip/SetPositionHang.java | 2 openjdk-17-17.0.9+9/test/jdk/javax/swing/AbstractButton/bug4143867.java | 143 openjdk-17-17.0.9+9/test/jdk/javax/swing/AbstractButton/bug4147740.java | 109 openjdk-17-17.0.9+9/test/jdk/javax/swing/AbstractButton/bug4246045.java | 120 openjdk-17-17.0.9+9/test/jdk/javax/swing/JButton/8151303/PressedIconTest.java | 41 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4167850.java | 45 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4171464.java | 55 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4209474.java | 53 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4234119.java | 46 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4244614.java | 58 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4276920.java | 81 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4890345.java | 154 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4924758.java | 115 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug4996503.java | 94 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComboBox/bug5029504.java | 116 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComponent/bug4419219.java | 112 openjdk-17-17.0.9+9/test/jdk/javax/swing/JComponent/bug4962718.java | 92 openjdk-17-17.0.9+9/test/jdk/javax/swing/JFileChooser/4847375/bug4847375.java | 6 openjdk-17-17.0.9+9/test/jdk/javax/swing/JFileChooser/FileSystemView/InaccessibleLink.java | 76 openjdk-17-17.0.9+9/test/jdk/javax/swing/JFileChooser/JFileChooserSetLocationTest.java | 14 openjdk-17-17.0.9+9/test/jdk/javax/swing/JFrame/bug4101444.java | 55 openjdk-17-17.0.9+9/test/jdk/javax/swing/JFrame/bug4208018.java | 52 openjdk-17-17.0.9+9/test/jdk/javax/swing/JInternalFrame/8069348/bug8069348.java | 38 openjdk-17-17.0.9+9/test/jdk/javax/swing/JInternalFrame/bug4308938.java | 57 openjdk-17-17.0.9+9/test/jdk/javax/swing/JInternalFrame/bug4320889.java | 69 openjdk-17-17.0.9+9/test/jdk/javax/swing/JMenu/bug4173633.java | 42 openjdk-17-17.0.9+9/test/jdk/javax/swing/JMenu/bug4186641.java | 80 openjdk-17-17.0.9+9/test/jdk/javax/swing/JMenu/bug4219523.java | 60 openjdk-17-17.0.9+9/test/jdk/javax/swing/JMenu/bug5013739.java | 111 openjdk-17-17.0.9+9/test/jdk/javax/swing/JMenuItem/bug4198809.java | 55 openjdk-17-17.0.9+9/test/jdk/javax/swing/JMenuItem/bug4304129.java | 68 openjdk-17-17.0.9+9/test/jdk/javax/swing/JMenuItem/bug4839464.java | 265 openjdk-17-17.0.9+9/test/jdk/javax/swing/JMenuItem/bug4966168.java | 71 openjdk-17-17.0.9+9/test/jdk/javax/swing/JRadioButton/bug4380543.java | 131 openjdk-17-17.0.9+9/test/jdk/javax/swing/JRootPane/DefaultButtonTest.java | 6 openjdk-17-17.0.9+9/test/jdk/javax/swing/JSpinner/4788637/bug4788637.java | 36 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTabbedPane/4209065/bug4209065.java | 58 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/4170447/bug4170447.java | 102 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/bug4098201.java | 41 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/bug4130356.java | 43 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/bug4159300.java | 92 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/bug4243159.java | 38 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/bug4243313.java | 38 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/bug4247487.java | 73 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTable/bug4248070.java | 59 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTableHeader/6889007/bug6889007.java | 85 openjdk-17-17.0.9+9/test/jdk/javax/swing/JTextField/bug4300552.java | 64 openjdk-17-17.0.9+9/test/jdk/javax/swing/JToggleButton/bug4277049.java | 57 openjdk-17-17.0.9+9/test/jdk/javax/swing/Popup/TaskbarPositionTest.java | 302 openjdk-17-17.0.9+9/test/jdk/javax/swing/border/LineBorder/ScaledTextFieldBorderTest.java | 8 openjdk-17-17.0.9+9/test/jdk/javax/swing/border/TestTitledBorderLeak.java | 49 openjdk-17-17.0.9+9/test/jdk/javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java | 89 openjdk-17-17.0.9+9/test/jdk/javax/xml/crypto/dsig/GenerationTests.java | 47 openjdk-17-17.0.9+9/test/jdk/jdk/internal/jline/AbstractWindowsTerminalTest.java | 2 openjdk-17-17.0.9+9/test/jdk/jdk/internal/jline/KeyConversionTest.java | 2 openjdk-17-17.0.9+9/test/jdk/jdk/internal/jline/OSUtilsTest.java | 52 openjdk-17-17.0.9+9/test/jdk/jdk/internal/platform/cgroup/CgroupV1SubsystemControllerTest.java | 78 openjdk-17-17.0.9+9/test/jdk/jdk/internal/platform/cgroup/CgroupV2SubsystemControllerTest.java | 64 openjdk-17-17.0.9+9/test/jdk/jdk/internal/platform/cgroup/TestCgroupMetrics.java | 13 openjdk-17-17.0.9+9/test/jdk/jdk/internal/platform/docker/LimitUpdateChecker.java | 64 openjdk-17-17.0.9+9/test/jdk/jdk/internal/platform/docker/MetricsMemoryTester.java | 20 openjdk-17-17.0.9+9/test/jdk/jdk/internal/platform/docker/TestDockerMemoryMetrics.java | 36 openjdk-17-17.0.9+9/test/jdk/jdk/internal/platform/docker/TestLimitsUpdating.java | 156 openjdk-17-17.0.9+9/test/jdk/jdk/internal/platform/docker/TestSystemMetrics.java | 3 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/api/consumer/log/TestVerbosity.java | 2 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/allocation/TestObjectAllocationInNewTLABEvent.java | 6 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/allocation/TestObjectAllocationOutsideTLABEvent.java | 6 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/allocation/TestObjectAllocationSampleEventThrottling.java | 6 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/compiler/TestCodeCacheConfig.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/compiler/TestCodeCacheFull.java | 10 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/compiler/TestCodeSweeper.java | 12 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/compiler/TestCodeSweeperStats.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/compiler/TestCompilerCompile.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/compiler/TestCompilerInlining.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/compiler/TestCompilerPhase.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/compiler/TestDeoptimization.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/gc/collection/TestG1ParallelPhases.java | 10 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWith32BitOops.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithHeapBasedOops.java | 6 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/gc/detailed/TestGCLockerEvent.java | 6 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryCommittedSize.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/metadata/TestDefaultConfigurations.java | 1 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/os/TestCPUInformation.java | 6 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/runtime/TestActiveSettingEvent.java | 1 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/runtime/TestSafepointEvents.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/runtime/TestThrowableInstrumentation.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/event/security/TestSecurityProviderServiceEvent.java | 157 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/jvm/TestDumpOnCrash.java | 3 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/jvm/TestJFRIntrinsic.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/jfr/startupargs/TestBadOptionValues.java | 8 openjdk-17-17.0.9+9/test/jdk/jdk/nio/zipfs/ZipFSOutputStreamTest.java | 2 openjdk-17-17.0.9+9/test/jdk/sanity/client/SwingSet/src/ToolTipDemoTest.java | 18 openjdk-17-17.0.9+9/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java | 354 openjdk-17-17.0.9+9/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java | 850 openjdk-17-17.0.9+9/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CertignaCA.java | 227 openjdk-17-17.0.9+9/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java | 293 openjdk-17-17.0.9+9/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java | 621 openjdk-17-17.0.9+9/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java | 348 openjdk-17-17.0.9+9/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java | 206 openjdk-17-17.0.9+9/test/jdk/sun/java2d/loops/SkipConversionIfPossible.java | 89 openjdk-17-17.0.9+9/test/jdk/sun/management/jmxremote/startstop/JMXStatusTest.java | 4 openjdk-17-17.0.9+9/test/jdk/sun/net/www/http/HttpClient/KeepAliveTest.java | 1272 openjdk-17-17.0.9+9/test/jdk/sun/net/www/http/KeepAliveCache/B8291637.java | 139 openjdk-17-17.0.9+9/test/jdk/sun/nio/cs/TestGB18030.java | 21 openjdk-17-17.0.9+9/test/jdk/sun/nio/cs/mapping/CoderTest.java | 16 openjdk-17-17.0.9+9/test/jdk/sun/nio/cs/mapping/GB18030.b2c | 81 openjdk-17-17.0.9+9/test/jdk/sun/nio/cs/mapping/GB18030_2000.b2c |63489 +++++++++ openjdk-17-17.0.9+9/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java | 87 openjdk-17-17.0.9+9/test/jdk/sun/security/pkcs11/tls/TestKeyMaterial.java | 14 openjdk-17-17.0.9+9/test/jdk/sun/security/pkcs11/tls/keymatdata.txt | 34 openjdk-17-17.0.9+9/test/jdk/sun/security/provider/KeyStore/DKSTest.java | 30 openjdk-17-17.0.9+9/test/jdk/sun/security/provider/KeyStore/DKSTest.sh | 76 openjdk-17-17.0.9+9/test/jdk/sun/security/provider/SecureRandom/AbstractDrbg/SpecTest.java | 4 openjdk-17-17.0.9+9/test/jdk/sun/security/provider/certpath/OCSP/OCSPNoContentLength.java | 244 openjdk-17-17.0.9+9/test/jdk/sun/security/ssl/ALPN/AlpnGreaseTest.java | 4 openjdk-17-17.0.9+9/test/jdk/sun/security/ssl/DHKeyExchange/DHEKeySizing.java | 14 openjdk-17-17.0.9+9/test/jdk/sun/security/ssl/SSLEngineImpl/SSLEngineKeyLimit.java | 36 openjdk-17-17.0.9+9/test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketKeyLimit.java | 46 openjdk-17-17.0.9+9/test/jdk/sun/security/ssl/Stapling/java.base/sun/security/ssl/StatusResponseManagerTests.java | 18 openjdk-17-17.0.9+9/test/jdk/sun/security/tools/keytool/ExportPrivateKeyNoPwd.java | 57 openjdk-17-17.0.9+9/test/jdk/sun/security/tools/keytool/ListKeyChainStore.java | 202 openjdk-17-17.0.9+9/test/jdk/sun/security/tools/keytool/ListKeychainStore.sh | 188 openjdk-17-17.0.9+9/test/jdk/sun/security/util/RegisteredDomain/ParseNames.java | 4 openjdk-17-17.0.9+9/test/jdk/sun/security/util/RegisteredDomain/tests.dat | 8 openjdk-17-17.0.9+9/test/jdk/sun/text/resources/LocaleData.cldr | 8 openjdk-17-17.0.9+9/test/jdk/sun/text/resources/LocaleDataTest.java | 2 openjdk-17-17.0.9+9/test/jdk/sun/tools/jcmd/TestJcmdSanity.java | 21 openjdk-17-17.0.9+9/test/jdk/sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java | 3 openjdk-17-17.0.9+9/test/jdk/sun/util/resources/TimeZone/ChineseTimeZoneNameTest.java | 72 openjdk-17-17.0.9+9/test/jdk/sun/util/resources/cldr/NorwegianFallbackTest.java | 67 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java | 4 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/AppImageFileTest.java | 6 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/ApplicationLayoutTest.java | 8 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/CompareDottedVersionTest.java | 8 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/DeployParamsTest.java | 10 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/DottedVersionTest.java | 8 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/InvalidDottedVersionTest.java | 8 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/OverridableResourceTest.java | 8 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/PathGroupTest.java | 8 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/PlatformVersionTest.java | 8 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/jdk/jpackage/internal/ToolValidatorTest.java | 8 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/junit.java | 30 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/junit/run_junit.sh | 54 openjdk-17-17.0.9+9/test/jdk/tools/jpackage/share/AppLauncherEnvTest.java | 9 openjdk-17-17.0.9+9/test/jdk/tools/launcher/I18NArgTest.java | 75 openjdk-17-17.0.9+9/test/jdk/tools/launcher/Settings.java | 7 openjdk-17-17.0.9+9/test/langtools/ProblemList.txt | 1 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/doclet/checkLibraryVersions/CheckLibraryVersions.java | 153 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/doclet/testHrefInDocComment/TestHrefInDocComment.java | 4 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/doclet/testHrefInDocComment/pkg/J1.java | 75 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/doclet/testSerialVersionUID/TestSerialVersionUID.java | 5 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/doclet/testTagMisuse/TestTagMisuse.java | 5 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/doclet/testThrows/TestThrows.java | 4 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/doclet/testThrowsHead/TestThrowsHead.java | 5 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/doclet/testUnnamedPackage/TestUnnamedPackage.java | 8 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/tool/IgnoreSourceErrors.java | 19 openjdk-17-17.0.9+9/test/langtools/jdk/javadoc/tool/nonConstExprs/Test.java | 3 openjdk-17-17.0.9+9/test/langtools/jdk/jshell/ClassesTest.java | 16 openjdk-17-17.0.9+9/test/langtools/jdk/jshell/ExecPtyGetFlagsToSetTest.java | 8 openjdk-17-17.0.9+9/test/langtools/tools/javac/6257443/T6257443.java | 2 openjdk-17-17.0.9+9/test/langtools/tools/javac/8074306/TestSyntheticNullChecks.java | 2 openjdk-17-17.0.9+9/test/langtools/tools/javac/StringConcat/TestIndyStringConcat.java | 10 openjdk-17-17.0.9+9/test/langtools/tools/javac/diags/examples/LambdaDeduplicate.java | 2 openjdk-17-17.0.9+9/test/langtools/tools/javac/jvm/ClassRefDupInConstantPoolTest.java | 2 openjdk-17-17.0.9+9/test/langtools/tools/javac/lambda/deduplication/DeduplicationDebugInfo.java | 41 openjdk-17-17.0.9+9/test/langtools/tools/javac/lambda/deduplication/DeduplicationDebugInfo.out | 1 openjdk-17-17.0.9+9/test/langtools/tools/javac/lambda/deduplication/DeduplicationTest.java | 1 openjdk-17-17.0.9+9/test/langtools/tools/javac/parser/JavacParserTest.java | 169 openjdk-17-17.0.9+9/test/langtools/tools/javac/patterns/BindingsInitializer.java | 164 openjdk-17-17.0.9+9/test/langtools/tools/javac/recovery/MethodModifiers.java | 162 openjdk-17-17.0.9+9/test/langtools/tools/javac/warnings/suppress/PackageInfo.java | 2 openjdk-17-17.0.9+9/test/langtools/tools/javap/T6587786.java | 17 openjdk-17-17.0.9+9/test/lib-test/jdk/test/lib/TestMutuallyExclusivePlatformPredicates.java | 4 openjdk-17-17.0.9+9/test/lib-test/jdk/test/lib/TestPlatformIsTieredSupported.java | 8 openjdk-17-17.0.9+9/test/lib-test/jdk/test/whitebox/OldWhiteBox.java | 51 openjdk-17-17.0.9+9/test/lib/jdk/test/lib/Platform.java | 19 openjdk-17-17.0.9+9/test/lib/jdk/test/lib/cli/CommandLineOptionTest.java | 2 openjdk-17-17.0.9+9/test/lib/jdk/test/lib/cli/predicate/CPUSpecificPredicate.java | 4 openjdk-17-17.0.9+9/test/lib/jdk/test/lib/containers/cgroup/MetricsTester.java | 24 openjdk-17-17.0.9+9/test/lib/jdk/test/lib/containers/cgroup/MetricsTesterCgroupV1.java | 14 openjdk-17-17.0.9+9/test/lib/jdk/test/lib/containers/docker/DockerTestUtils.java | 14 openjdk-17-17.0.9+9/test/lib/jdk/test/lib/helpers/ClassFileInstaller.java | 26 openjdk-17-17.0.9+9/test/lib/jdk/test/lib/jfr/EventNames.java | 1 openjdk-17-17.0.9+9/test/lib/jdk/test/whitebox/WhiteBox.java | 12 openjdk-17-17.0.9+9/test/lib/sun/hotspot/WhiteBox.java | 650 openjdk-17-17.0.9+9/test/lib/sun/hotspot/code/BlobType.java | 108 openjdk-17-17.0.9+9/test/lib/sun/hotspot/code/CodeBlob.java | 71 openjdk-17-17.0.9+9/test/lib/sun/hotspot/code/Compiler.java | 171 openjdk-17-17.0.9+9/test/lib/sun/hotspot/code/NMethod.java | 59 openjdk-17-17.0.9+9/test/lib/sun/hotspot/cpuinfo/CPUInfo.java | 97 openjdk-17-17.0.9+9/test/lib/sun/hotspot/gc/GC.java | 91 openjdk-17-17.0.9+9/test/micro/org/openjdk/bench/java/io/DataInputStreamTest.java | 69 openjdk-17-17.0.9+9/test/micro/org/openjdk/bench/java/nio/CharsetEncodeDecode.java | 2 openjdk-17-17.0.9+9/test/micro/org/openjdk/bench/java/text/ZoneStrings.java | 44 openjdk-17-17.0.9+9/test/micro/org/openjdk/bench/java/time/format/ZonedDateTimeFormatterBenchmark.java | 55 openjdk-17-17.0.9+9/test/micro/org/openjdk/bench/vm/compiler/RBTreeSearch.java | 1236 4057 files changed, 447341 insertions(+), 167447 deletions(-) diff -Nru openjdk-17-17.0.7+7/.gitignore openjdk-17-17.0.9+9/.gitignore --- openjdk-17-17.0.7+7/.gitignore 2023-04-12 20:11:58.000000000 +0000 +++ openjdk-17-17.0.9+9/.gitignore 2023-10-11 18:18:14.000000000 +0000 @@ -18,3 +18,5 @@ /src/utils/LogCompilation/target/ /.project/ /.settings/ +/compile_commands.json +/.cache diff -Nru openjdk-17-17.0.7+7/.jcheck/conf openjdk-17-17.0.9+9/.jcheck/conf --- openjdk-17-17.0.7+7/.jcheck/conf 2023-04-12 20:11:58.000000000 +0000 +++ openjdk-17-17.0.9+9/.jcheck/conf 2023-10-11 18:18:14.000000000 +0000 @@ -1,7 +1,7 @@ [general] project=jdk-updates jbs=JDK -version=17.0.7 +version=17.0.9 [checks] error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists diff -Nru openjdk-17-17.0.7+7/bin/jib.sh openjdk-17-17.0.9+9/bin/jib.sh --- openjdk-17-17.0.7+7/bin/jib.sh 2023-04-12 20:11:58.000000000 +0000 +++ openjdk-17-17.0.9+9/bin/jib.sh 2023-10-11 18:18:14.000000000 +0000 @@ -128,6 +128,15 @@ exit 1 fi fi + # Want to check the filetype using file, to see if we got served a HTML error page. + # This is sensitive to the filename containing a specific string, but good enough. + file "${installed_jib_script}.gz" | grep "gzip compressed data" > /dev/null + if [ $? -ne 0 ]; then + echo "Warning: ${installed_jib_script}.gz is not a gzip file." + echo "If you are behind a proxy you may need to configure exceptions using no_proxy." + echo "The download URL was: ${jib_url}" + exit 1 + fi echo "Extracting JIB bootstrap script" rm -f "${installed_jib_script}" gunzip "${installed_jib_script}.gz" diff -Nru openjdk-17-17.0.7+7/debian/changelog openjdk-17-17.0.9+9/debian/changelog --- openjdk-17-17.0.7+7/debian/changelog 2023-06-11 18:08:06.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/changelog 2023-10-31 23:23:59.000000000 +0000 @@ -1,8 +1,135 @@ -openjdk-17 (17.0.7+7-1~deb11u1) bullseye-security; urgency=medium +openjdk-17 (17.0.9+9-1~deb11u1) bullseye-security; urgency=medium * Rebuild for bullseye - -- Moritz Muehlenhoff Sun, 11 Jun 2023 20:08:06 +0200 + -- Moritz Muehlenhoff Wed, 01 Nov 2023 00:23:59 +0100 + +openjdk-17 (17.0.9+9-1) unstable; urgency=high + + * OpenJDK 17.0.9 release, build 9. + - CVE-2023-30589, CVE-2023-22081, CVE-2023-22091, CVE-2023-22025. + The patch for CVE-2023-30589 also addresses CVE-2023-30585, + CVE-2023-30588, and CVE-2023-30590. + - Release notes: + https://www.oracle.com/java/technologies/javase/17-0-9-relnotes.html#R17_0_9 + + [ Vladimir Petko ] + * Backport upstream fix for jexec: can't locate java: + No such file or directory. Closes: #1029342. + * d/rules, d/watch: Bundle googletest 1.14. + * d/copyright: Add googletest copyright. + * d/test: Update problemlist. + * d/p: exclude-broken-tests.patch. + * d/p/reproducible-properties-timestamp.diff: Use the privileged action + to read the system property (JDK-8272157, 914278). + + -- Matthias Klose Wed, 18 Oct 2023 09:07:04 +0200 + +openjdk-17 (17.0.9~6ea-1) unstable; urgency=medium + + * OpenJDK 17.0.9 early access, build 6. + + [ Matthias Klose ] + * Build-depend on the unversioned libfreetype-dev. + * Backport the openjdk-17 zero support for loong64 (Xuefeng Pan). + Closes: #1051906. + * Build using GCC 13 on development versions. + + [ Vladimir Petko ] + * Fix jquery-min.js symlink. Closes: #998763. + + -- Matthias Klose Sat, 16 Sep 2023 13:35:34 +0200 + +openjdk-17 (17.0.9~4ea-1) unstable; urgency=medium + + * OpenJDK 17.0.9 early access, build 4. + + [ Vladimir Petko ] + * d/t/jtreg-autopkgtest.{sh,in}: JDK-8232153 - set NSS_DEFAULT_DB_TYPE + to let sun/security/pkcs11/Secmod/AddTrustedCert.java pass. + * d/p/exclude-broken-tests.patch: quarantine pkcs11 tests failing with NSS 3.91. + * d/t/problems-armhf.txt: quarantine armhf failing tests: + - java/net/httpclient/ManyRequestsLegacy.java: SSL request timeout. + - java/util/Random/RandomTestBsi1999.java: deadlock in CI. + * d/copyright: Remove liblcms from excluded files. + * d/rules: Enable jtreg tests for bionic and focal. + * d/p/build_gtest.patch: Update patch to work with earlier versions + of google-test. + + [ Matthias Klose ] + * Explicitly configure --without-jtreg with the nocheck profile + + -- Matthias Klose Thu, 24 Aug 2023 08:29:32 +0200 + +openjdk-17 (17.0.8+7-1) unstable; urgency=high + + * OpenJDK 17.0.8 release, build 7. + - CVE-2023-22006, CVE-2023-22036, CVE-2023-22041, CVE-2023-22044, + CVE-2023-22045, CVE-2023-22049, CVE-2023-25193. + - Release notes: + https://www.oracle.com/java/technologies/javase/17-0-8-relnotes.html#R17_0_8 + + * Don't run the tests on powerpc, hangs on the buildd. + * Refresh patches. + + -- Matthias Klose Wed, 19 Jul 2023 08:29:02 +0200 + +openjdk-17 (17.0.8~6-5) unstable; urgency=medium + + * Revert back to the riscv64 hotspot patch to v7. + + -- Matthias Klose Wed, 12 Jul 2023 14:33:08 +0200 + +openjdk-17 (17.0.8~6-4) unstable; urgency=medium + + [ Matthias Klose ] + * Update the riscv64 hotspot patch to v9. + * Run the hotspot tests on riscv64. + * Link with --no-as-needed. Closes: #1031521. + * d/rules: Remove EXTRA_.*FLAGS_JDK macros. + * Fix FTCBFS: Add libffi-dev:native to B-D (Helmut Grohne). + + [ Vladimir Petko ] + * Disable runtime/jni/nativeStack/TestNativeStack.java for armhf pending + upstream fix. + + -- Matthias Klose Mon, 10 Jul 2023 16:41:54 +0200 + +openjdk-17 (17.0.8~6-3) unstable; urgency=medium + + [ Vladimir Petko ] + * Use libtestng7-java as jtreg6 dependency as TestNG 7.x is required + at runtime. + * Regenerate the control file. + + -- Matthias Klose Sat, 01 Jul 2023 09:19:52 +0200 + +openjdk-17 (17.0.8~6-2) unstable; urgency=medium + + * Provide versioned java-runtime, java-runtime-headless, java-sdk + and java-sdk-headless virtual packages (Emmanuel Bourg). Closes: #1023869. + * Install jhsb binary and man page on riscv64. + * Bump standards version. + + -- Matthias Klose Thu, 29 Jun 2023 07:23:06 +0200 + +openjdk-17 (17.0.8~6-1) experimental; urgency=medium + + * OpenJDK 17.0.8 early access, build 6. + * Bump debhelper version to 11. + + -- Matthias Klose Tue, 27 Jun 2023 12:05:37 +0200 + +openjdk-17 (17.0.7+7-2) unstable; urgency=medium + + [ Vladimir Petko ] + * d/rules: backport testng selection logic. + + [ Matthias Klose ] + * Apply the backport patch for 8276799 (RISC-V Hotspot). + * Build both JREs (hotspot and zero) on riscv64. + + -- Matthias Klose Mon, 26 Jun 2023 15:58:27 +0200 openjdk-17 (17.0.7+7-1) unstable; urgency=high diff -Nru openjdk-17-17.0.7+7/debian/compat openjdk-17-17.0.9+9/debian/compat --- openjdk-17-17.0.7+7/debian/compat 2023-01-17 22:28:11.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/compat 2023-06-27 10:43:51.000000000 +0000 @@ -1 +1 @@ -9 +11 diff -Nru openjdk-17-17.0.7+7/debian/control openjdk-17-17.0.9+9/debian/control --- openjdk-17-17.0.7+7/debian/control 2023-06-11 18:07:36.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/control 2023-10-31 23:23:59.000000000 +0000 @@ -11,26 +11,26 @@ autoconf, automake, autotools-dev, ant, ant-optional, g++-10 , openjdk-17-jdk-headless:native | openjdk-16-jdk-headless:native, - libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, libcups2-dev, libasound2-dev, liblcms2-dev, libfreetype6-dev (>= 2.2.1), libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev, libxrandr-dev, libelf-dev, libfontconfig1-dev, libgtk2.0-0 | libgtk-3-0, libharfbuzz-dev, - libffi-dev, + libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, libcups2-dev, libasound2-dev, liblcms2-dev, libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev, libxrandr-dev, libelf-dev, libfontconfig1-dev, libgtk2.0-0 | libgtk-3-0, libfreetype-dev, libharfbuzz-dev, + libffi-dev, libffi-dev:native, zlib1g-dev:native, zlib1g-dev, libattr1-dev, libpng-dev, libjpeg-dev, libgif-dev, libnss3-dev (>= 2:3.17.1), openjdk-17-jdk-headless , Build-Depends-Indep: graphviz, pandoc, Rules-Requires-Root: no -Standards-Version: 4.5.1 +Standards-Version: 4.6.2 Homepage: https://openjdk.java.net/ Vcs-Browser: https://salsa.debian.org/openjdk-team/openjdk/tree/openjdk-17 Vcs-Git: https://salsa.debian.org/openjdk-team/openjdk.git -b openjdk-17 Package: openjdk-17-jdk-headless -Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 +Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 Multi-Arch: same Pre-Depends: ${dpkg:Depends} Depends: openjdk-17-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Suggests: openjdk-17-demo, openjdk-17-source -Provides: java-sdk-headless, java2-sdk-headless, +Provides: java-sdk-headless (= ${vm:Version}), java2-sdk-headless, java5-sdk-headless, java6-sdk-headless, java7-sdk-headless, java8-sdk-headless, java9-sdk-headless, java10-sdk-headless, @@ -45,7 +45,7 @@ applets, and components using the Java programming language. Package: openjdk-17-jre-headless -Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 +Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 Multi-Arch: same Pre-Depends: ${dpkg:Depends} Depends: ${jredefault:Depends}, ${cacert:Depends}, @@ -56,7 +56,7 @@ Suggests: libnss-mdns, fonts-dejavu-extra, fonts-ipafont-gothic, fonts-ipafont-mincho, fonts-wqy-microhei | fonts-wqy-zenhei, fonts-indic, -Provides: java-runtime-headless, java2-runtime-headless, +Provides: java-runtime-headless (= ${vm:Version}), java2-runtime-headless, java5-runtime-headless, java6-runtime-headless, java7-runtime-headless, java8-runtime-headless, java9-runtime-headless, java10-runtime-headless, @@ -72,7 +72,7 @@ using ${vm:Name}. Package: openjdk-17-jdk -Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 +Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 Multi-Arch: same Pre-Depends: ${dpkg:Depends} Depends: openjdk-17-jre (= ${binary:Version}), @@ -80,7 +80,7 @@ ${shlibs:Depends}, ${misc:Depends} Recommends: libxt-dev Suggests: openjdk-17-demo, openjdk-17-source, visualvm -Provides: java-sdk, java2-sdk, java5-sdk, java6-sdk, +Provides: java-sdk (= ${vm:Version}), java2-sdk, java5-sdk, java6-sdk, java7-sdk, java8-sdk, java9-sdk, java10-sdk, java11-sdk, java12-sdk, java13-sdk, java14-sdk, java15-sdk, java16-sdk, java17-sdk, java-compiler @@ -89,14 +89,14 @@ applets, and components using the Java programming language. Package: openjdk-17-jre -Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 +Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 Multi-Arch: same Pre-Depends: ${dpkg:Depends} Depends: openjdk-17-jre-headless (= ${binary:Version}), ${xandsound:Depends}, ${dlopenjre:Depends}, ${shlibs:Depends}, ${misc:Depends} Recommends: ${dlopenjre:Recommends}, ${bridge:Recommends}, fonts-dejavu-extra -Provides: java-runtime, java2-runtime, +Provides: java-runtime (= ${vm:Version}), java2-runtime, java5-runtime, java6-runtime, java7-runtime, java8-runtime, java9-runtime, java10-runtime, @@ -110,7 +110,7 @@ programs, using ${vm:Name}. Package: openjdk-17-demo -Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 +Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 Priority: optional Pre-Depends: ${dpkg:Depends} Depends: openjdk-17-jre (= ${binary:Version}), @@ -150,7 +150,7 @@ This package contains the API documentation. Package: openjdk-17-dbg -Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 +Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 Multi-Arch: same Priority: optional Section: debug @@ -167,7 +167,7 @@ This package contains the debugging symbols. Package: openjdk-17-jre-zero -Architecture: amd64 i386 arm64 armhf ppc64 ppc64el s390x +Architecture: amd64 i386 arm64 armhf ppc64 ppc64el riscv64 s390x Multi-Arch: same Priority: optional Pre-Depends: ${dpkg:Depends} diff -Nru openjdk-17-17.0.7+7/debian/control.in openjdk-17-17.0.9+9/debian/control.in --- openjdk-17-17.0.7+7/debian/control.in 2023-06-11 18:07:25.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/control.in 2023-10-31 23:23:59.000000000 +0000 @@ -18,7 +18,7 @@ @bd_cross@ Build-Depends-Indep: graphviz, pandoc, Rules-Requires-Root: no -Standards-Version: 4.5.1 +Standards-Version: 4.6.2 Homepage: https://openjdk.java.net/ Vcs-Browser: https://salsa.debian.org/openjdk-team/openjdk/tree/openjdk-17 Vcs-Git: https://salsa.debian.org/openjdk-team/openjdk.git -b openjdk-17 @@ -30,7 +30,7 @@ Depends: @basename@-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Suggests: @basename@-demo, @basename@-source -Provides: java-sdk-headless, java2-sdk-headless, +Provides: java-sdk-headless (= ${vm:Version}), java2-sdk-headless, java5-sdk-headless, java6-sdk-headless, java7-sdk-headless, java8-sdk-headless, java9-sdk-headless, java10-sdk-headless, @@ -56,7 +56,7 @@ Suggests: libnss-mdns, @core_fonts@, @cjk_fonts@ -Provides: java-runtime-headless, java2-runtime-headless, +Provides: java-runtime-headless (= ${vm:Version}), java2-runtime-headless, java5-runtime-headless, java6-runtime-headless, java7-runtime-headless, java8-runtime-headless, java9-runtime-headless, java10-runtime-headless, @@ -80,7 +80,7 @@ ${shlibs:Depends}, ${misc:Depends} Recommends: libxt-dev Suggests: @basename@-demo, @basename@-source, visualvm -Provides: java-sdk, java2-sdk, java5-sdk, java6-sdk, +Provides: java-sdk (= ${vm:Version}), java2-sdk, java5-sdk, java6-sdk, java7-sdk, java8-sdk, java9-sdk, java10-sdk, java11-sdk, java12-sdk, java13-sdk, java14-sdk, java15-sdk, java16-sdk, java17-sdk, java-compiler @@ -96,7 +96,7 @@ ${xandsound:Depends}, ${dlopenjre:Depends}, ${shlibs:Depends}, ${misc:Depends} Recommends: ${dlopenjre:Recommends}, ${bridge:Recommends}, @core_fonts@ -Provides: java-runtime, java2-runtime, +Provides: java-runtime (= ${vm:Version}), java2-runtime, java5-runtime, java6-runtime, java7-runtime, java8-runtime, java9-runtime, java10-runtime, diff -Nru openjdk-17-17.0.7+7/debian/copyright openjdk-17-17.0.9+9/debian/copyright --- openjdk-17-17.0.7+7/debian/copyright 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/copyright 2023-10-18 07:04:49.000000000 +0000 @@ -2,9 +2,6 @@ Files-Excluded: .github/* .gitattributes - src/java.desktop/share/native/liblcms/cms*.c - src/java.desktop/share/native/liblcms/lcms2*.h - src/java.desktop/share/native/liblcms/*.txt src/java.base/share/native/libzip/zlib/* src/java.desktop/share/native/libsplashscreen/giflib/* src/java.desktop/share/native/libsplashscreen/libpng/* @@ -3389,6 +3386,38 @@ . ============================================================================== +Files: googletest/* +Copyright: Copyright 2008, Google Inc. +License: BSD-C3 + Copyright 2008, Google Inc. + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + Files: debian/* Copyright: Copyright © 2007-2023 Canonical Ltd. License: MIT diff -Nru openjdk-17-17.0.7+7/debian/patches/8314491-jexec.patch openjdk-17-17.0.9+9/debian/patches/8314491-jexec.patch --- openjdk-17-17.0.7+7/debian/patches/8314491-jexec.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/8314491-jexec.patch 2023-09-19 12:16:34.000000000 +0000 @@ -0,0 +1,108 @@ +Description: 8314491: Linux: jexec launched via PATH fails to find java + jexec uses argv[0] parameter to find its own location. + argv[0] is populated with the command value causing a failure to locate java + when jexec is found in the PATH (in this case argv[0] contains just 'jexec') +Author: Vladimir Petko +Bug: https://github.com/openjdk/jdk/pull/15343 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1029342 +Applied-Upstream: dab1c213fd2760686a7bf3fc8838f4a21056a954 +Last-Update: 2023-09-11 +diff --git a/src/java.base/unix/native/launcher/jexec.c b/src/java.base/unix/native/launcher/jexec.c +index bd6458c67a1..0d3f08ec4cc 100644 +--- a/src/java.base/unix/native/launcher/jexec.c ++++ b/src/java.base/unix/native/launcher/jexec.c +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1999, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -168,7 +168,16 @@ int main(int argc, const char * argv[]) { + + /* Get the path to the java binary, which is in a known position relative + * to our current position, which is in argv[0]. */ +- if (getJavaPath(argv[argi++], java, RELATIVE_DEPTH) != 0) { ++ int error = getJavaPath(argv[argi++], java, RELATIVE_DEPTH); ++#ifdef __linux__ ++ /* Try to read the symbolic link to the current binary ++ * if the java path can not be resolved from argv[0]. */ ++ if (error != 0) { ++ error = getJavaPath("/proc/self/exe", java, RELATIVE_DEPTH); ++ } ++#endif ++ ++ if (error != 0) { + errorExit(errno, MISSING_JAVA_MSG); + } + alen = (argc + 2) * (sizeof (const char *)); +diff --git a/test/jdk/tools/launcher/Jexec.java b/test/jdk/tools/launcher/Jexec.java +index f2c9cfc37e8..1846a504b53 100644 +--- a/test/jdk/tools/launcher/Jexec.java ++++ b/test/jdk/tools/launcher/Jexec.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -23,14 +23,16 @@ + + /* + * @test +- * @bug 8175000 ++ * @bug 8175000 8314491 + * @summary test jexec ++ * @requires os.family == "linux" + * @build TestHelper + * @run main Jexec + */ + + import java.io.File; + import java.io.IOException; ++import java.nio.file.Path; + + public class Jexec extends TestHelper { + private final File testJar; +@@ -54,20 +56,12 @@ public class Jexec extends TestHelper { + } + + public static void main(String... args) throws Exception { +- // linux is the only supported platform, give the others a pass +- if (!isLinux) { +- System.err.println("Warning: unsupported platform test passes vacuously"); +- return; +- } +- // ok to run the test now + Jexec t = new Jexec(); + t.run(null); + } + +- @Test +- void jexec() throws Exception { +- TestResult tr = doExec(jexecCmd.getAbsolutePath(), +- testJar.getAbsolutePath(), message); ++ private void runTest(String... cmds) throws Exception { ++ TestResult tr = doExec(cmds); + if (!tr.isOK()) { + System.err.println(tr); + throw new Exception("incorrect exit value"); +@@ -77,4 +71,17 @@ void jexec() throws Exception { + throw new Exception("expected message \'" + message + "\' not found"); + } + } ++ ++ @Test ++ void jexec() throws Exception { ++ runTest(jexecCmd.getAbsolutePath(), ++ testJar.getAbsolutePath(), message); ++ } ++ ++ @Test ++ void jexecInPath() throws Exception { ++ Path jexec = Path.of(jexecCmd.getAbsolutePath()); ++ runTest("/bin/sh", "-c", ++ String.format("PATH=%s ; jexec %s '%s'",jexec.getParent(), testJar.getAbsolutePath(), message)); ++ } + } diff -Nru openjdk-17-17.0.7+7/debian/patches/8315020.diff openjdk-17-17.0.9+9/debian/patches/8315020.diff --- openjdk-17-17.0.7+7/debian/patches/8315020.diff 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/8315020.diff 2023-09-16 10:25:53.000000000 +0000 @@ -0,0 +1,31 @@ +diff --git a/make/autoconf/platform.m4 b/make/autoconf/platform.m4 +index 5752d3bd1a6..eb66266262b 100644 +--- a/make/autoconf/platform.m4 ++++ b/make/autoconf/platform.m4 +@@ -573,6 +573,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER], + HOTSPOT_$1_CPU_DEFINE=S390 + elif test "x$OPENJDK_$1_CPU" = xs390x; then + HOTSPOT_$1_CPU_DEFINE=S390 ++ elif test "x$OPENJDK_$1_CPU" = xloongarch64; then ++ HOTSPOT_$1_CPU_DEFINE=LOONGARCH64 + elif test "x$OPENJDK_$1_CPU" != x; then + HOTSPOT_$1_CPU_DEFINE=$(echo $OPENJDK_$1_CPU | tr a-z A-Z) + fi +diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp +index 99dd4c82420..4c63f292e86 100644 +--- a/src/hotspot/os/linux/os_linux.cpp ++++ b/src/hotspot/os/linux/os_linux.cpp +@@ -1791,11 +1791,11 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) { + static Elf32_Half running_arch_code=EM_SH; + #elif (defined RISCV) + static Elf32_Half running_arch_code=EM_RISCV; +-#elif (defined LOONGARCH) ++#elif (defined LOONGARCH64) + static Elf32_Half running_arch_code=EM_LOONGARCH; + #else + #error Method os::dll_load requires that one of following is defined:\ +- AARCH64, ALPHA, ARM, AMD64, IA32, IA64, LOONGARCH, M68K, MIPS, MIPSEL, PARISC, __powerpc__, __powerpc64__, RISCV, S390, SH, __sparc ++ AARCH64, ALPHA, ARM, AMD64, IA32, IA64, LOONGARCH64, M68K, MIPS, MIPSEL, PARISC, __powerpc__, __powerpc64__, RISCV, S390, SH, __sparc + #endif + + // Identify compatibility class for VM's architecture and library's architecture diff -Nru openjdk-17-17.0.7+7/debian/patches/build_gtest.patch openjdk-17-17.0.9+9/debian/patches/build_gtest.patch --- openjdk-17-17.0.7+7/debian/patches/build_gtest.patch 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/build_gtest.patch 2023-08-23 12:57:29.000000000 +0000 @@ -4,7 +4,7 @@ with the system google test. Author: Vladimir Petko Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openjdk-20/+bug/2012316 -Last-Update: 2023-04-13 +Last-Update: 2023-07-20 --- a/make/autoconf/lib-tests.m4 +++ b/make/autoconf/lib-tests.m4 @@ -36,6 +36,8 @@ @@ -18,12 +18,14 @@ AC_MSG_ERROR([--with-gtest must have a value]) --- a/test/hotspot/gtest/gtestMain.cpp +++ b/test/hotspot/gtest/gtestMain.cpp -@@ -230,7 +230,7 @@ +@@ -230,7 +230,9 @@ bool is_vmassert_test = false; bool is_othervm_test = false; // death tests facility is used for both regular death tests, other vm and vmassert tests - if (::testing::internal::GTEST_FLAG(internal_run_death_test).length() > 0) { -+ if (::testing::GTEST_FLAG(internal_run_death_test).length() > 0) { ++using namespace ::testing; ++using namespace ::testing::internal; ++ if (GTEST_FLAG(internal_run_death_test).length() > 0) { // when we execute death test, filter value equals to test name const char* test_name = ::testing::GTEST_FLAG(filter).c_str(); const char* const othervm_suffix = "_other_vm"; // TEST_OTHER_VM diff -Nru openjdk-17-17.0.7+7/debian/patches/disable-thumb-assertion.patch openjdk-17-17.0.9+9/debian/patches/disable-thumb-assertion.patch --- openjdk-17-17.0.7+7/debian/patches/disable-thumb-assertion.patch 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/disable-thumb-assertion.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Description: Unable to obtain frame pointer on Thumb architecture - ARM Thumb has os::current_frame() disabled. Disable associated test. -Author: Vladimir Petko -Bug: https://bugs.openjdk.org/browse/JDK-8305481 -Last-Update: 2023-03-30 ---- a/test/hotspot/gtest/runtime/test_os.cpp -+++ b/test/hotspot/gtest/runtime/test_os.cpp -@@ -844,7 +844,7 @@ - } - - TEST_VM(os, is_first_C_frame) { --#if !defined(_WIN32) && !defined(ZERO) -+#if !defined(_WIN32) && !defined(ZERO) && !defined(__thumb__) - frame invalid_frame; - EXPECT_TRUE(os::is_first_C_frame(&invalid_frame)); // the frame has zeroes for all values - diff -Nru openjdk-17-17.0.7+7/debian/patches/exclude-broken-tests.patch openjdk-17-17.0.9+9/debian/patches/exclude-broken-tests.patch --- openjdk-17-17.0.7+7/debian/patches/exclude-broken-tests.patch 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/exclude-broken-tests.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ - Description: Disable failing tests - Disable tests that fail on Ubuntu pending investigation -Author: Vladimir Petko -Forwarded: not-needed -Last-Update: 2023-03-24 ---- a/test/hotspot/jtreg/ProblemList.txt -+++ b/test/hotspot/jtreg/ProblemList.txt -@@ -38,6 +38,22 @@ - # - ############################################################################# - -+# tests that need to be investigated -+ -+gc/shenandoah/mxbeans/TestChurnNotifications.java#aggressive 0000000 generic-all -+gc/shenandoah/mxbeans/TestChurnNotifications.java#iu 0000000 generic-all -+ -+#result: Failed. Execution failed: `main' threw exception: java.io.IOException: Mount point not found -+# https://bugs.openjdk.org/browse/JDK-8166162 -+ -+runtime/LoadClass/LongBCP.java 8166162 generic-all -+ -+# Intermittent failures because LingeredApp.class is not found -+ -+runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java 000000 generic-all -+runtime/cds/appcds/jcmd/JCmdTestFileSafety.java 000000 generic-all -+runtime/cds/appcds/jcmd/JCmdTestStaticDump.java 000000 generic-all -+ - # :hotspot_compiler - - compiler/ciReplay/TestSAServer.java 8029528 generic-all ---- a/test/langtools/ProblemList.txt -+++ b/test/langtools/ProblemList.txt -@@ -23,6 +23,11 @@ - # - ########################################################################### - -+# Wrong test environment in autopkgtest -+# java.lang.IllegalStateException: Launching JShell execution engine threw: ERROR: transport error 202: getaddrinfo: failed to parse address -+ -+jdk/jshell/JdiListeningLocalhostExecutionControlTest.java 0000000 generic-all -+ - ########################################################################### - # - # javadoc ---- a/test/jdk/ProblemList.txt -+++ b/test/jdk/ProblemList.txt -@@ -109,6 +109,49 @@ - # - ############################################################################# - -+ -+ -+# to investigate -+# unable to read LD_LIBRARY_PATH env variable -+ -+tools/jpackage/share/AppLauncherEnvTest.java 0000000 generic-all -+ -+# java.lang.Exception: Proc abnormal end -+ -+sun/security/krb5/auto/Cleaners.java 0000000 generic-all -+ -+# result: Failed. Execution failed: `main' threw exception: java.io.IOException: Mount point not found -+# https://bugs.openjdk.org/browse/JDK-8166162 -+ -+java/io/File/createTempFile/TargetDirectory.java 8166162 generic-all -+java/nio/file/Files/CheckPermissions.java 8166162 generic-all -+java/nio/file/Files/TemporaryFiles.java 8166162 generic-all -+java/nio/file/Files/Misc.java 8166162 generic-all -+java/nio/file/Files/CopyAndMove.java 8166162 generic-all -+java/nio/file/Files/InterruptCopy.java 8166162 generic-all -+java/nio/file/Files/FileAttributes.java 8166162 generic-all -+java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java 8166162 generic-all -+java/nio/file/attribute/AclFileAttributeView/Basic.java 8166162 generic-all -+java/nio/file/attribute/DosFileAttributeView/Basic.java 8166162 generic-all -+java/nio/file/attribute/PosixFileAttributeView/Basic.java 8166162 generic-all -+java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java 8166162 generic-all -+java/nio/file/FileStore/Basic.java 8166162 generic-all -+java/nio/channels/FileChannel/directio/DirectIOTest.java 8166162 generic-all -+java/nio/channels/FileChannel/directio/ReadDirect.java 8166162 generic-all -+java/nio/channels/FileChannel/directio/PreadDirect.java 8166162 generic-all -+java/nio/channels/FileChannel/directio/PwriteDirect.java 8166162 generic-all -+java/nio/channels/FileChannel/directio/WriteDirect.java 8166162 generic-all -+ -+# utf-8 locale is missing on build machine -+# https://bugs.openjdk.org/browse/JDK-8249079 -+ -+java/lang/invoke/lambda/LambdaFileEncodingSerialization.java 8249079 generic-all -+ -+# reproducible-properties-timestamp.diff introduce a bug that breaks this test -+# remove after the patch is dropped -+ -+java/util/logging/LogManager/Configuration/updateConfiguration/SimpleUpdateConfigWithInputStreamTest.java 000000 generic-all -+ - ############################################################################ - - # jdk_awt -@@ -537,7 +580,6 @@ - java/lang/ProcessHandle/InfoTest.java 8211847 aix-ppc64 - java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java 8151492 generic-all - java/lang/invoke/LFCaching/LFGarbageCollectedTest.java 8078602 generic-all --java/lang/invoke/lambda/LambdaFileEncodingSerialization.java 8249079 linux-x64 - - ############################################################################ - diff -Nru openjdk-17-17.0.7+7/debian/patches/loong64-autoconf-config.diff openjdk-17-17.0.9+9/debian/patches/loong64-autoconf-config.diff --- openjdk-17-17.0.7+7/debian/patches/loong64-autoconf-config.diff 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/loong64-autoconf-config.diff 2023-09-16 10:25:53.000000000 +0000 @@ -0,0 +1,12 @@ +diff --git a/make/autoconf/build-aux/autoconf-config.sub b/make/autoconf/build-aux/autoconf-config.sub +index 1aab2b303e3..df7cfd4034a 100644 +--- a/make/autoconf/build-aux/autoconf-config.sub ++++ b/make/autoconf/build-aux/autoconf-config.sub +@@ -275,6 +275,7 @@ case $basic_machine in + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ ++ | loongarch32 | loongarch64 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep \ + | mips | mipsbe | mipseb | mipsel | mipsle \ diff -Nru openjdk-17-17.0.7+7/debian/patches/reproducible-properties-timestamp.diff openjdk-17-17.0.9+9/debian/patches/reproducible-properties-timestamp.diff --- openjdk-17-17.0.7+7/debian/patches/reproducible-properties-timestamp.diff 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/reproducible-properties-timestamp.diff 2023-10-18 07:04:49.000000000 +0000 @@ -3,7 +3,17 @@ Forwarded: no --- a/src/java.base/share/classes/java/util/Properties.java +++ b/src/java.base/share/classes/java/util/Properties.java -@@ -903,7 +903,7 @@ +@@ -54,6 +54,9 @@ + import jdk.internal.util.ArraysSupport; + import jdk.internal.util.xml.PropertiesDefaultHandler; + ++import java.security.AccessController; ++import java.security.PrivilegedAction; ++ + /** + * The {@code Properties} class represents a persistent set of + * properties. The {@code Properties} can be saved to a stream +@@ -903,7 +906,7 @@ if (comments != null) { writeComments(bw, comments); } @@ -12,7 +22,7 @@ bw.newLine(); synchronized (this) { for (Map.Entry e : entrySet()) { -@@ -1555,4 +1555,22 @@ +@@ -1555,4 +1558,27 @@ } this.map = map; } @@ -23,14 +33,19 @@ + * environment variable is specified. In this case the format used is + * locale and timezone insensitive to ensure the output is reproducible. + */ ++ @SuppressWarnings("removal") + private String getFormattedTimestamp() { -+ if (System.getenv("SOURCE_DATE_EPOCH") == null) { ++ String epoch = AccessController.doPrivileged(new PrivilegedAction(){ ++ public String run() { return System.getenv("SOURCE_DATE_EPOCH"); } ++ }); ++ ++ if (epoch == null) { + return new Date().toString(); + } else { + // Use the SOURCE_DATE_EPOCH timestamp and make the format locale/timezone insensitive + java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z", java.util.Locale.ENGLISH); + fmt.setTimeZone(java.util.TimeZone.getTimeZone("UTC")); -+ Date date = new Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); ++ Date date = new Date(1000 * Long.parseLong(epoch)); + return fmt.format(date); + } + } diff -Nru openjdk-17-17.0.7+7/debian/patches/riscv64.diff openjdk-17-17.0.9+9/debian/patches/riscv64.diff --- openjdk-17-17.0.7+7/debian/patches/riscv64.diff 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/riscv64.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ -# HG changeset patch -# User enevill -# Date 1521985117 -3600 -# Sun Mar 25 14:38:37 2018 +0100 -# Node ID 7d1ae835ef5194e7ae5b56b51f944029fe602d11 -# Parent 1b1de4b263c81853719f6bb0385fe23bc4e35f6c -8199138: Add RISC-V support to Zero -Reviewed-by: aph, erikj, ehelin, ihse - ---- a/make/autoconf/build-aux/config.guess -+++ b/make/autoconf/build-aux/config.guess -@@ -28,6 +28,13 @@ - # autoconf system (which might easily get lost in a future update), we wrap it - # and fix the broken property, if needed. - -+machine=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -+if test $machine = riscv64; then -+ # This is all we need to know for riscv64 -+ echo riscv64-unknown-linux-gnu -+ exit -+fi -+ - DIR=`dirname $0` - OUT=`. $DIR/autoconf-config.guess 2> /dev/null` - ---- a/make/autoconf/build-aux/config.sub -+++ b/make/autoconf/build-aux/config.sub -@@ -46,8 +46,8 @@ - exit - fi - --# Filter out everything that doesn't begin with "aarch64-" --if ! echo $* | grep '^aarch64-' >/dev/null ; then -+# First, filter out everything that doesn't begin with "aarch64-" or "riscv64-" -+if ! echo $* | grep '^aarch64-\|^riscv64-' >/dev/null ; then - . $DIR/autoconf-config.sub "$@" - # autoconf-config.sub exits, so we never reach here, but just in - # case we do: -@@ -62,6 +62,10 @@ - config=`echo $1 | sed 's/^aarch64-/arm-/'` - sub_args="$sub_args $config" - shift; ;; -+ riscv64-* ) -+ config=`echo $1 | sed 's/^riscv64-/x86-/'` -+ sub_args="$sub_args $config" -+ shift; ;; - - ) # Use stdin as input. - sub_args="$sub_args $1" - shift; break ;; -@@ -74,7 +78,7 @@ - result=`. $DIR/autoconf-config.sub $sub_args "$@"` - exitcode=$? - --result=`echo $result | sed "s/^arm-/aarch64-/"` -+result=`echo $result | sed "s/^arm-/aarch64-/" | sed "s/^x86-/riscv64-/"` - - echo $result - exit $exitcode ---- a/src/hotspot/os/linux/os_linux.cpp -+++ b/src/hotspot/os/linux/os_linux.cpp -@@ -2559,6 +2559,8 @@ - strncpy(cpuinfo, "IA64", length); - #elif defined(PPC) - strncpy(cpuinfo, "PPC64", length); -+#elif defined(RISCV) -+ strncpy(cpuinfo, "RISCV", length); - #elif defined(S390) - strncpy(cpuinfo, "S390", length); - #elif defined(SPARC) diff -Nru openjdk-17-17.0.7+7/debian/patches/s390x-opt.diff openjdk-17-17.0.9+9/debian/patches/s390x-opt.diff --- openjdk-17-17.0.7+7/debian/patches/s390x-opt.diff 2023-01-17 22:36:38.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/s390x-opt.diff 2023-07-19 08:25:23.000000000 +0000 @@ -1,6 +1,6 @@ --- a/make/autoconf/flags-cflags.m4 +++ b/make/autoconf/flags-cflags.m4 -@@ -735,6 +735,9 @@ +@@ -739,6 +739,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP], fi elif test "x$FLAGS_CPU" = xs390x; then $1_CFLAGS_CPU="-mbackchain -march=z10" diff -Nru openjdk-17-17.0.7+7/debian/patches/series openjdk-17-17.0.9+9/debian/patches/series --- openjdk-17-17.0.7+7/debian/patches/series 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/patches/series 2023-10-18 07:04:49.000000000 +0000 @@ -25,16 +25,16 @@ reproducible-character-data.diff reproducible-module-info.diff #reproducible-copyright-headers.diff -riscv64.diff reproducible-build-jmod.diff mips.diff #nspr+nss-headers.diff +8314491-jexec.patch build_gtest.patch -disable-thumb-assertion.patch update-assertion-for-armhf.patch misalign-pointer-for-armhf.patch log-generated-classes-test.patch update-permission-test.patch ldap-timeout-test-use-ip.patch test-use-ip-address.patch -exclude-broken-tests.patch +loong64-autoconf-config.diff +8315020.diff diff -Nru openjdk-17-17.0.7+7/debian/rules openjdk-17-17.0.9+9/debian/rules --- openjdk-17-17.0.7+7/debian/rules 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/rules 2023-10-18 07:04:49.000000000 +0000 @@ -55,9 +55,9 @@ multiarch_dir = /$(DEB_HOST_MULTIARCH) -hotspot_archs = amd64 i386 arm64 armhf ppc64 ppc64el s390x +hotspot_archs = amd64 i386 arm64 armhf ppc64 ppc64el riscv64 s390x jtreg_archs = $(hotspot_archs) alpha ia64 powerpc ppc64 sh4 x32 -jtreg_archs += armel mipsel mips64el +jtreg_archs += armel loong64 mipsel mips64el jtreg_archs += riscv64 # FIXME: use bootcycle builds for zero archs? @@ -82,6 +82,7 @@ endif is_upstream_release = yes +#is_upstream_release = srcdir = . builddir = build @@ -157,13 +158,18 @@ endif jtreg_pkg = jtreg6 +testng_pkg= libtestng7-java with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes) -ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel mipsel mips64el riscv64)) +ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel ia64 loong64 mipsel mips64el powerpc x32)) with_check = disabled running check on $(DEB_HOST_ARCH) endif +ifeq ($(distribution)-$(distrel),Ubuntu-riscv64) + with_check = yes +endif + # no jtreg backport yet -ifneq (,$(filter $(distrel), buster bullseye precise trusty xenial bionic focal groovy hirsute impish)) +ifneq (,$(filter $(distrel), buster bullseye precise trusty xenial groovy hirsute impish)) with_check = disabled for $(distrel), no $(jtreg_pkg) endif @@ -175,7 +181,7 @@ with_wqy_zenhai = $(if $(filter $(distrel),lenny),,yes) -arch_map := alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i586 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc ppc64=ppc64 ppc64el=ppc64le riscv64=riscv64 sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 x32=x32 +arch_map := alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i586 loong64=loong64 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc ppc64=ppc64 ppc64el=ppc64le riscv64=riscv64 sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 x32=x32 jvmarch := $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, \ $(filter $(DEB_HOST_ARCH_CPU)=%, $(arch_map)))) @@ -185,7 +191,7 @@ default_vm = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),hotspot,zero) -any_archs = alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 +any_archs = alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32 altzero_archs = $(hotspot_archs) ifneq (,$(filter $(distrel),trusty)) @@ -267,14 +273,18 @@ export CC = $(DEB_HOST_GNU_TYPE)-gcc-11 export CXX = $(DEB_HOST_GNU_TYPE)-g++-11 bd_gcc = g++-11 , -else +else ifneq (,$(filter $(distrel),bookworm lunar)) export CC = $(DEB_HOST_GNU_TYPE)-gcc-12 export CXX = $(DEB_HOST_GNU_TYPE)-g++-12 bd_gcc = g++-12 , +else + export CC = $(DEB_HOST_GNU_TYPE)-gcc-13 + export CXX = $(DEB_HOST_GNU_TYPE)-g++-13 + bd_gcc = g++-13 , endif # GCC 11 and up -ifeq (,$(findstring 11 12, $(bd_gcc))) +ifeq (,$(findstring 11 12 13 14, $(bd_gcc))) DEB_BUILD_MAINT_OPTIONS = optimize=-lto endif @@ -292,7 +302,7 @@ # jdk/make/CompileDemos.gmk (SetupJVMTIDemo) doesn't like commas in flags dpkg_buildflags_hs += \ DEB_LDFLAGS_MAINT_STRIP="-Wl,-z,relro -Wl,-Bsymbolic-functions" \ - DEB_LDFLAGS_MAINT_APPEND="-Xlinker -z -Xlinker relro -Xlinker -Bsymbolic-functions" + DEB_LDFLAGS_MAINT_APPEND="-Xlinker -z -Xlinker relro -Xlinker -Bsymbolic-functions -Xlinker --no-as-needed" dpkg_buildflags_hs += dpkg-buildflags export EXTRA_CPPFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CPPFLAGS) export EXTRA_CFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CFLAGS; $(dpkg_buildflags_hs) --get CPPFLAGS) @@ -308,7 +318,7 @@ # jdk/make/CompileDemos.gmk (SetupJVMTIDemo) doesn't like commas in flags dpkg_buildflags_zero += \ DEB_LDFLAGS_MAINT_STRIP="-Wl,-z,relro -Wl,-Bsymbolic-functions" \ - DEB_LDFLAGS_MAINT_APPEND="-Xlinker -z -Xlinker relro -Xlinker -Bsymbolic-functions" + DEB_LDFLAGS_MAINT_APPEND="-Xlinker -z -Xlinker relro -Xlinker -Bsymbolic-functions -Xlinker --no-as-needed" dpkg_buildflags_zero += dpkg-buildflags export EXTRA_CPPFLAGS_ZERO := $(shell $(dpkg_buildflags_zero) --get CPPFLAGS) export EXTRA_CFLAGS_ZERO := $(shell $(dpkg_buildflags_zero) --get CFLAGS; $(dpkg_buildflags_zero) --get CPPFLAGS) @@ -319,19 +329,6 @@ export EXTRA_LDFLAGS_ZERO += -Wl,--no-relax endif -# for JDK: jdk/make/common/Defs.gmk -# Don't overwrite JDK opt level : -# 1) with forced -03, it cause wrong Math.* computations, see #679292 and #678228 -# 2) JDK already use it's own OPTIMIZATION_LEVEL variable for each module -dpkg_buildflags_jdk = \ - DEB_BUILD_MAINT_OPTIONS="$(DEB_BUILD_MAINT_OPTIONS)" \ - DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2" -dpkg_buildflags_jdk += dpkg-buildflags -export EXTRA_CPPFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CPPFLAGS) -export EXTRA_CFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CFLAGS) $(shell $(dpkg_buildflags_jdk) --get CPPFLAGS) -export EXTRA_CXXFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CXXFLAGS) -export EXTRA_LDFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get LDFLAGS) - ifneq (,$(filter $(distrel),squeeze lucid)) with_bridge = bridge with_jni_bridge = yes @@ -432,7 +429,7 @@ ifeq ($(with_check),yes) COMMON_CONFIGURE_ARGS += --with-jtreg=/usr/share/jtreg else - COMMON_CONFIGURE_ARGS += --disable-jtreg-failure-handler + COMMON_CONFIGURE_ARGS += --without-jtreg --disable-jtreg-failure-handler endif COMMON_CONFIGURE_ARGS += --disable-warnings-as-errors @@ -519,11 +516,8 @@ --disable-javac-server \ ifeq ($(with_check),yes) -# temporary: disable gtest until compile errors are fixed in jammy - ifeq (,$(filter $(distrel),bullseye jammy)) COMMON_CONFIGURE_ARGS += \ - --with-gtest=system - endif + --with-gtest=$(CURDIR)/googletest endif ifeq (,$(filter $(distrel),jessie stretch precise trusty xenial)) @@ -536,6 +530,12 @@ # building with a GCC from a PPA ... COMMON_CONFIGURE_ARGS += \ --with-stdc++lib=static +else ifneq (,$(filter $(DEB_HOST_ARCH), ia64)) + # seen in 2023 on ia64: + # /usr/bin/ld: jvm-test-launcher: no symbol version section for versioned symbol `__cxa_pure_virtual@CXXABI_1.3' + # works when linking statically + COMMON_CONFIGURE_ARGS += \ + --with-stdc++lib=static else COMMON_CONFIGURE_ARGS += \ --with-stdc++lib=dynamic @@ -599,7 +599,7 @@ jdk_hl_tools = jar jarsigner javac javadoc javap jcmd jdb \ jdeprscan jdeps jfr jimage jinfo jlink jmap jmod jps \ jrunscript jshell jstack jstat jstatd serialver -ifeq (,$(filter $(DEB_HOST_ARCH), alpha armel ia64 m68k mips mipsel mips64el powerpc riscv64 s390x sh4 sparc64 x32)) +ifeq (,$(filter $(DEB_HOST_ARCH), alpha armel ia64 loong64 m68k mips mipsel mips64el powerpc s390x sh4 sparc64 x32)) all_tools += jhsdb jdk_hl_tools += jhsdb endif @@ -660,19 +660,23 @@ libgif-dev, bd_openjdk = \ libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, libcups2-dev, \ - libasound2-dev, liblcms2-dev, libfreetype6-dev (>= 2.2.1), \ + libasound2-dev, liblcms2-dev, \ libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev, libxrandr-dev, \ libelf-dev, libfontconfig1-dev, libgtk2.0-0 | libgtk-3-0, +ifneq (,$(filter $(distrel),jessie stretch buster precise trusty xenial bionic)) + bd_openjdk += libfreetype6-dev, +else + bd_openjdk += libfreetype-dev, +endif ifeq ($(with_system_hb),yes) bd_openjdk += libharfbuzz-dev, endif -pkg_ffidev = libffi-dev - -bd_zero = \ - $(pkg_ffidev) [$(foreach a,$(hotspot_archs),!$(a))], -bd_zero = \ - $(pkg_ffidev), +ifeq (,$(filter $(distrel),precise)) + bd_zero = libffi-dev, libffi-dev:native, +else + bd_zero = libffi-dev, +endif bd_ant = ant, ant-optional, @@ -709,12 +713,11 @@ ifeq ($(with_check),yes) bd_check = \ - $(jtreg_pkg) (>= $(min_jtreg_version))$(nocheck_profile), testng$(nocheck_profile), \ + $(jtreg_pkg) (>= $(min_jtreg_version))$(nocheck_profile), $(testng_pkg)$(nocheck_profile), \ xvfb$(nocheck_profile), xauth$(nocheck_profile), \ xfonts-base$(nocheck_profile), libgl1-mesa-dri [!x32]$(nocheck_profile), \ xfwm4$(nocheck_profile), x11-xkb-utils$(nocheck_profile), \ - dbus-x11$(nocheck_profile), googletest$(nocheck_profile), \ - google-mock$(nocheck_profile), xvfb $(nocheck_profile), + dbus-x11$(nocheck_profile), xvfb $(nocheck_profile), ifeq (,$(filter $(distrel),jessie stretch buster)) bd_check += libasmtools-java$(nocheck_profile), endif @@ -833,6 +836,7 @@ control_vars = \ '-Vvm:Name=$(vm_name)' \ + '-Vvm:Version=$(shortver)' \ '-Vdlopenhl:Depends=$(dlopen_hl_depends)' \ '-Vdlopenhl:Recommends=$(dlopen_hl_recommends)' \ '-Vdlopenjre:Depends=$(dlopen_jre_depends)' \ @@ -980,7 +984,7 @@ mkdir -p bin ifeq (0,1) -ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 arm64 hppa mips64 mips64el ppc64 ppc64el s390x sparc64 x32)) +ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 arm64 hppa loong64 mips64 mips64el ppc64 ppc64el s390x sparc64 x32)) ( \ echo '#! /bin/sh'; \ echo 'if [ -x /usr/bin/linux32 ]; then'; \ @@ -1084,7 +1088,7 @@ stamps/build: stamps/configure @echo '========== $@ ==========' -ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc riscv64 s390x sh4 sparc sparc64)) +ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 loong64 m68k mips mipsel mips64 mips64el powerpc riscv64 s390x sh4 sparc sparc64)) sh -c 'sh debian/buildwatch.sh $(CURDIR)/$(builddir) &' endif if $(EXTRA_BUILD_ENV) $(MAKE) --no-print-directory -C $(builddir) $(build_target); then \ @@ -1808,7 +1812,7 @@ done rm -v $(d_doc)/usr/share/doc/$(p_jrehl)/api/script-dir/{jquery-3.6.1.min.js,jquery-ui.min.css,jquery-ui.min.js} dh_link -p$(p_doc) \ - /usr/share/javascript/jquery-ui/jquery-ui.min.js \ + /usr/share/javascript/jquery/jquery.min.js \ /usr/share/doc/$(p_jrehl)/api/script-dir/jquery-3.6.1.min.js \ /usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css \ /usr/share/doc/$(p_jrehl)/api/script-dir/jquery-ui.min.css \ @@ -1900,7 +1904,7 @@ is_release = yes #is_release = git_project = jdk17u -git_tag = jdk-17.0.7+7 +git_tag = jdk-17.0.9+9 package_version = $(subst jdk-,,$(git_tag)) package_version = $(shell echo $(PKGVERSION) | sed 's/-[^-][^-]*$$//') ifneq ($(is_release),yes) @@ -1909,7 +1913,23 @@ git_url = https://github.com/openjdk/$(git_project) origdir = ../$(basename)-$(package_version).orig topdir = $(basename)-$(package_version) -get-orig: +gtest_repo = https://github.com/google/googletest/archive/refs/tags/ +gtest_tag = 1.14.0 +gtestdir = ../$(basename)-$(package_version)-googletest.orig + +get-gtest: + rm -rf $(gtestdir) || true + mkdir $(gtestdir) + wget -O $(gtestdir)/googletest.tar.gz $(gtest_repo)/v$(gtest_tag).tar.gz + set -ex; \ + repo=googletest; \ + d=$$(tar tf $(gtestdir)/$$repo.tar.gz | head -1 | sed 's,/.*,,'); \ + tar xf $(gtestdir)/$$repo.tar.gz; \ + XZ_OPT=-9v tar cfJ ../$(basename)_$(package_version).orig-$$repo.tar.xz googletest-${gtest_tag}; \ + rm -rf $(gtestdir) + rm -rf googletest-${gtest_tag} + +get-orig: get-gtest mkdir $(origdir) wget -O $(origdir)/jdk.tar.gz $(git_url)/archive/$(git_tag).tar.gz @@ -1935,8 +1955,8 @@ rm -rf $(topdir) # keep these in the tarball, older lcms are not supported - rm -v -f $$d/src/java.desktop/share/native/liblcms/cms*.c; \ - rm -v -f $$d/src/java.desktop/share/native/liblcms/lcms2*.h; \ +# rm -v -f $$d/src/java.desktop/share/native/liblcms/cms*.c; \ +# rm -v -f $$d/src/java.desktop/share/native/liblcms/lcms2*.h; \ rm -rf $(origdir) diff -Nru openjdk-17-17.0.7+7/debian/tests/jtreg-autopkgtest.in openjdk-17-17.0.9+9/debian/tests/jtreg-autopkgtest.in --- openjdk-17-17.0.7+7/debian/tests/jtreg-autopkgtest.in 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/tests/jtreg-autopkgtest.in 2023-10-18 07:04:49.000000000 +0000 @@ -32,7 +32,7 @@ if dpkg --compare-versions ${jtreg_version} ge 4.2; then jt_options+=" -conc:auto" fi - + # check java binary if [ ! -x "${JDK_TO_TEST}/bin/java" ]; then echo "Error: '${JDK_TO_TEST}/bin/java' is not an executable." >&2 @@ -104,6 +104,9 @@ -jdk:${JDK_TO_TEST} \ -vmoption:-Dtest.boot.jdk=${BOOTJDK_HOME} \ -vmoption:-XX:MaxRAMPercentage=25 \ + -vmoption:-Duser.home=${AUTOPKGTEST_TMP} \ + -vmoption:-Djava.io.tmpdir=${AUTOPKGTEST_TMP} \ + -e:NSS_DEFAULT_DB_TYPE=sql \ ${on_retry:-} $@ \ && exit_code=0 || exit_code=$? diff -Nru openjdk-17-17.0.7+7/debian/tests/jtreg-autopkgtest.sh openjdk-17-17.0.9+9/debian/tests/jtreg-autopkgtest.sh --- openjdk-17-17.0.7+7/debian/tests/jtreg-autopkgtest.sh 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/tests/jtreg-autopkgtest.sh 2023-10-18 07:04:49.000000000 +0000 @@ -32,7 +32,7 @@ if dpkg --compare-versions ${jtreg_version} ge 4.2; then jt_options+=" -conc:auto" fi - + # check java binary if [ ! -x "${JDK_TO_TEST}/bin/java" ]; then echo "Error: '${JDK_TO_TEST}/bin/java' is not an executable." >&2 @@ -109,7 +109,10 @@ -reportDir:"${report_dir}" \ -jdk:${JDK_TO_TEST} \ -vmoption:-Dtest.boot.jdk=${BOOTJDK_HOME} \ + -vmoption:-Duser.home=${AUTOPKGTEST_TMP} \ + -vmoption:-Djava.io.tmpdir=${AUTOPKGTEST_TMP} \ -vmoption:-XX:MaxRAMPercentage=25 \ + -e:NSS_DEFAULT_DB_TYPE=sql \ ${on_retry:-} $@ \ && exit_code=0 || exit_code=$? diff -Nru openjdk-17-17.0.7+7/debian/tests/problems-armhf.txt openjdk-17-17.0.9+9/debian/tests/problems-armhf.txt --- openjdk-17-17.0.7+7/debian/tests/problems-armhf.txt 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/tests/problems-armhf.txt 2023-10-18 07:04:49.000000000 +0000 @@ -19,4 +19,23 @@ jdk/sun/security/rsa/SignedObjectChain.java 000000 generic-all sun/security/ec/ed/EdDSATest.java 000000 generic-all -java/security/SignedObject/Chain.java 000000 generic-all \ No newline at end of file +java/security/SignedObject/Chain.java 000000 generic-all + +# JDK-8311092 - native stack not implemented for armhf, disable test +runtime/jni/nativeStack/TestNativeStack.java 8311092 generic-all + +# timeout in SSL connection +java/net/httpclient/ManyRequestsLegacy.java 000000 generic-all +# deadlock +java/util/Random/RandomTestBsi1999.java 000000 generic-all + +# runner issue, disk space size exceeds 32 bit integer +java/io/File/GetXSpace.java 000000 generic-all + +# https://bugs.openjdk.org/browse/JDK-8303168 +serviceability/AsyncGetCallTrace/MyPackage/ASGCTBaseTest.java 000000 generic-all + +# native stack not implemented, pending backport +runtime/jni/nativeStack/TestNativeStack.java 000000 generic-all + + diff -Nru openjdk-17-17.0.7+7/debian/tests/problems-hotspot.txt openjdk-17-17.0.9+9/debian/tests/problems-hotspot.txt --- openjdk-17-17.0.7+7/debian/tests/problems-hotspot.txt 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/tests/problems-hotspot.txt 2023-10-18 07:04:49.000000000 +0000 @@ -0,0 +1,18 @@ +# tests that need to be investigated + +gc/shenandoah/mxbeans/TestChurnNotifications.java#aggressive 0000000 generic-all +gc/shenandoah/mxbeans/TestChurnNotifications.java#iu 0000000 generic-all + +#result: Failed. Execution failed: `main' threw exception: java.io.IOException: Mount point not found +# https://bugs.openjdk.org/browse/JDK-8166162 + +runtime/LoadClass/LongBCP.java 8166162 generic-all + +# flaky test +compiler/vectorization/runner/MultipleLoopsTest.java 000000 generic-all + +# LingeredApp not found (CI issue) + +runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java 000000 generic-all +runtime/cds/appcds/jcmd/JCmdTestFileSafety.java 000000 generic-all +runtime/cds/appcds/jcmd/JCmdTestStaticDump.java 000000 generic-all diff -Nru openjdk-17-17.0.7+7/debian/tests/problems-i386.txt openjdk-17-17.0.9+9/debian/tests/problems-i386.txt --- openjdk-17-17.0.7+7/debian/tests/problems-i386.txt 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/tests/problems-i386.txt 2023-10-18 07:04:49.000000000 +0000 @@ -14,3 +14,6 @@ java/net/httpclient/http2/HpackBinaryTestDriver.java 000000 generic-all +# runner issue, disk space size exceeds 32 bit integer +java/io/File/GetXSpace.java 000000 generic-all + diff -Nru openjdk-17-17.0.7+7/debian/tests/problems-jdk.txt openjdk-17-17.0.9+9/debian/tests/problems-jdk.txt --- openjdk-17-17.0.7+7/debian/tests/problems-jdk.txt 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/tests/problems-jdk.txt 2023-10-18 07:04:49.000000000 +0000 @@ -0,0 +1,46 @@ +# NSS3 failure when processing SHA3 hashes (needs investigation) +sun/security/pkcs11/Signature/KeyAndParamCheckForPSS.java 0000000 generic-all +sun/security/pkcs11/MessageDigest/TestCloning.java 0000000 generic-all +sun/security/pkcs11/Signature/SignatureTestPSS.java 0000000 generic-all + +# https://bugs.openjdk.org/browse/JDK-8312488 +tools/jpackage/share/AppLauncherEnvTest.java 0000000 generic-all + +# java.lang.Exception: Proc abnormal end +sun/security/krb5/auto/Cleaners.java 0000000 generic-all + +# result: Failed. Execution failed: `main' threw exception: java.io.IOException: Mount point not found +# https://bugs.openjdk.org/browse/JDK-8166162 + +java/io/File/createTempFile/TargetDirectory.java 8166162 generic-all +java/nio/file/Files/CheckPermissions.java 8166162 generic-all +java/nio/file/Files/TemporaryFiles.java 8166162 generic-all +java/nio/file/Files/Misc.java 8166162 generic-all +java/nio/file/Files/CopyAndMove.java 8166162 generic-all +java/nio/file/Files/InterruptCopy.java 8166162 generic-all +java/nio/file/Files/FileAttributes.java 8166162 generic-all +java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java 8166162 generic-all +java/nio/file/attribute/AclFileAttributeView/Basic.java 8166162 generic-all +java/nio/file/attribute/DosFileAttributeView/Basic.java 8166162 generic-all +java/nio/file/attribute/PosixFileAttributeView/Basic.java 8166162 generic-all +java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java 8166162 generic-all +java/nio/file/FileStore/Basic.java 8166162 generic-all +java/nio/channels/FileChannel/directio/DirectIOTest.java 8166162 generic-all +java/nio/channels/FileChannel/directio/ReadDirect.java 8166162 generic-all +java/nio/channels/FileChannel/directio/PreadDirect.java 8166162 generic-all +java/nio/channels/FileChannel/directio/PwriteDirect.java 8166162 generic-all +java/nio/channels/FileChannel/directio/WriteDirect.java 8166162 generic-all + +# utf-8 locale is missing on build machine +# https://bugs.openjdk.org/browse/JDK-8249079 + +java/lang/invoke/lambda/LambdaFileEncodingSerialization.java 8249079 generic-all + +# disable scoped value (incubating feature) test pending investigation + +jdk/incubator/concurrent/ScopedValue/StressStackOverflow.java 000000 generic-all +java/lang/ScopedValue/StressStackOverflow.java 000000 generic-all + +# https://bugs.openjdk.org/browse/JDK-8309214 +sun/security/pkcs11/KeyStore/CertChainRemoval.java 000000 generic-all + diff -Nru openjdk-17-17.0.7+7/debian/watch openjdk-17-17.0.9+9/debian/watch --- openjdk-17-17.0.7+7/debian/watch 2023-06-06 11:36:52.000000000 +0000 +++ openjdk-17-17.0.9+9/debian/watch 2023-10-18 07:04:49.000000000 +0000 @@ -1,6 +1,13 @@ version=4 opts=\ repack,\ -compression=xz,\ +compression=xz \ https://github.com/openjdk/jdk17u/tags \ (?:.*?/)?jdk-(\d[\d.]*\+\d[\d]*)\.tar\.gz + +opts=\ +component=googletest,\ +repack,\ +compression=xz \ + https://github.com/google/googletest/tags \ + (?:.*?/)?v(1.14.0)\.tar\.gz diff -Nru openjdk-17-17.0.7+7/doc/building.html openjdk-17-17.0.9+9/doc/building.html --- openjdk-17-17.0.7+7/doc/building.html 2023-04-12 20:11:58.000000000 +0000 +++ openjdk-17-17.0.9+9/doc/building.html 2023-10-11 18:18:14.000000000 +0000 @@ -273,7 +273,7 @@ Linux -gcc 10.2.0 +gcc 11.2.0 macOS @@ -288,7 +288,7 @@

All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.

gcc

The minimum accepted version of gcc is 5.0. Older versions will generate a warning by configure and are unlikely to work.

-

The JDK is currently known to be able to compile with at least version 10.2 of gcc.

+

The JDK is currently known to be able to compile with at least version 11.2 of gcc.

In general, any version between these two should be usable.

clang

The minimum accepted version of clang is 3.5. Older versions will not be accepted by configure.

diff -Nru openjdk-17-17.0.7+7/doc/building.md openjdk-17-17.0.9+9/doc/building.md --- openjdk-17-17.0.7+7/doc/building.md 2023-04-12 20:11:58.000000000 +0000 +++ openjdk-17-17.0.9+9/doc/building.md 2023-10-11 18:18:14.000000000 +0000 @@ -321,7 +321,7 @@ | Operating system | Toolchain version | | ------------------ | ------------------------------------------ | -| Linux | gcc 10.2.0 | +| Linux | gcc 11.2.0 | | macOS | Apple Xcode 10.1 (using clang 10.0.0) | | Windows | Microsoft Visual Studio 2022 update 17.1.0 | @@ -335,7 +335,7 @@ The minimum accepted version of gcc is 5.0. Older versions will generate a warning by `configure` and are unlikely to work. -The JDK is currently known to be able to compile with at least version 10.2 of +The JDK is currently known to be able to compile with at least version 11.2 of gcc. In general, any version between these two should be usable. diff -Nru openjdk-17-17.0.7+7/doc/testing.html openjdk-17-17.0.9+9/doc/testing.html --- openjdk-17-17.0.7+7/doc/testing.html 2023-04-12 20:11:58.000000000 +0000 +++ openjdk-17-17.0.9+9/doc/testing.html 2023-10-11 18:18:14.000000000 +0000 @@ -242,14 +242,39 @@ JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"

For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.

Client UI Tests

+

System key shortcuts

Some Client UI tests use key sequences which may be reserved by the operating system. Usually that causes the test failure. So it is highly recommended to disable system key shortcuts prior testing. The steps to access and disable system key shortcuts for various platforms are provided below.

-

MacOS

+
MacOS

Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts; select or deselect desired shortcut.

For example, test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java fails on MacOS because it uses CTRL + F1 key sequence to show or hide tooltip message but the key combination is reserved by the operating system. To run the test correctly the default global key shortcut should be disabled using the steps described above, and then deselect "Turn keyboard access on or off" option which is responsible for CTRL + F1 combination.

-

Linux

+
Linux

Open the Activities overview and start typing Settings; Choose Settings, click Devices, then click Keyboard; set or override desired shortcut.

-

Windows

+
Windows

Type gpedit in the Search and then click Edit group policy; navigate to User Configuration -> Administrative Templates -> Windows Components -> File Explorer; in the right-side pane look for "Turn off Windows key hotkeys" and double click on it; enable or disable hotkeys.

Note: restart is required to make the settings take effect.

+

Robot API

+

Most automated Client UI tests use Robot API to control +the UI. Usually, the default operating system settings need to be +adjusted for Robot to work correctly. The detailed steps how to access +and update these settings for different platforms are provided +below.

+
macOS
+

Robot is not permitted to control your Mac by default +since macOS 10.15. To allow it, choose Apple menu -> System Settings, +click Privacy & Security; then click Accessibility and ensure the +following apps are allowed to control your computer: Java and +Terminal. If the tests are run from an IDE, the IDE should be +granted this permission too.

+
Windows
+

On Windows if Cygwin terminal is used to run the tests, there is a +delay in focus transfer. Usually it causes automated UI test failure. To +disable the delay, type regedit in the Search and then +select Registry Editor; navigate to the following key: +HKEY_CURRENT_USER\Control Panel\Desktop; make sure the +ForegroundLockTimeout value is set to 0.

+

Additional information about Client UI tests configuration for +various operating systems can be obtained at Automated +client GUI testing system set up requirements

diff -Nru openjdk-17-17.0.7+7/doc/testing.md openjdk-17-17.0.9+9/doc/testing.md --- openjdk-17-17.0.7+7/doc/testing.md 2023-04-12 20:11:58.000000000 +0000 +++ openjdk-17-17.0.9+9/doc/testing.md 2023-10-11 18:18:14.000000000 +0000 @@ -546,12 +546,14 @@ ### Client UI Tests +#### System key shortcuts + Some Client UI tests use key sequences which may be reserved by the operating system. Usually that causes the test failure. So it is highly recommended to disable system key shortcuts prior testing. The steps to access and disable system key shortcuts for various platforms are provided below. -#### MacOS +##### macOS Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts; select or deselect desired shortcut. @@ -564,12 +566,12 @@ steps described above, and then deselect "Turn keyboard access on or off" option which is responsible for `CTRL + F1` combination. -#### Linux +##### Linux Open the Activities overview and start typing Settings; Choose Settings, click Devices, then click Keyboard; set or override desired shortcut. -#### Windows +##### Windows Type `gpedit` in the Search and then click Edit group policy; navigate to User Configuration -> Administrative Templates -> Windows Components -> File @@ -578,6 +580,33 @@ Note: restart is required to make the settings take effect. +#### Robot API + +Most automated Client UI tests use `Robot` API to control the UI. Usually, +the default operating system settings need to be adjusted for Robot +to work correctly. The detailed steps how to access and update these settings +for different platforms are provided below. + +##### macOS + +`Robot` is not permitted to control your Mac by default since +macOS 10.15. To allow it, choose Apple menu -> System Settings, click +Privacy & Security; then click Accessibility and ensure the following apps are +allowed to control your computer: *Java* and *Terminal*. If the tests are run +from an IDE, the IDE should be granted this permission too. + +##### Windows + +On Windows if Cygwin terminal is used to run the tests, there is a delay in +focus transfer. Usually it causes automated UI test failure. To disable the +delay, type `regedit` in the Search and then select Registry Editor; navigate +to the following key: `HKEY_CURRENT_USER\Control Panel\Desktop`; make sure +the `ForegroundLockTimeout` value is set to 0. + +Additional information about Client UI tests configuration for various operating +systems can be obtained at [Automated client GUI testing system set up +requirements](https://wiki.openjdk.org/display/ClientLibs/Automated+client+GUI+testing+system+set+up+requirements) + --- # Override some definitions in the global css file that are not optimal for # this document. diff -Nru openjdk-17-17.0.7+7/googletest/.clang-format openjdk-17-17.0.9+9/googletest/.clang-format --- openjdk-17-17.0.7+7/googletest/.clang-format 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/.clang-format 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,4 @@ +# Run manually to reformat a file: +# clang-format -i --style=file +Language: Cpp +BasedOnStyle: Google diff -Nru openjdk-17-17.0.7+7/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml --- openjdk-17-17.0.7+7/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,53 @@ +name: Bug Report +description: Let us know that something does not work as expected. +title: "[Bug]: Please title this bug report" +body: + - type: textarea + id: what-happened + attributes: + label: Describe the issue + description: What happened, and what did you expect to happen? + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to reproduce the problem + description: It is important that we are able to reproduce the problem that you are experiencing. Please provide all code and relevant steps to reproduce the problem, including your `BUILD`/`CMakeLists.txt` file and build commands. Links to a GitHub branch or [godbolt.org](https://godbolt.org/) that demonstrate the problem are also helpful. + validations: + required: true + - type: textarea + id: version + attributes: + label: What version of GoogleTest are you using? + description: Please include the output of `git rev-parse HEAD` or the GoogleTest release version number that you are using. + validations: + required: true + - type: textarea + id: os + attributes: + label: What operating system and version are you using? + description: If you are using a Linux distribution please include the name and version of the distribution as well. + validations: + required: true + - type: textarea + id: compiler + attributes: + label: What compiler and version are you using? + description: Please include the output of `gcc -v` or `clang -v`, or the equivalent for your compiler. + validations: + required: true + - type: textarea + id: buildsystem + attributes: + label: What build system are you using? + description: Please include the output of `bazel --version` or `cmake --version`, or the equivalent for your build system. + validations: + required: true + - type: textarea + id: additional + attributes: + label: Additional context + description: Add any other context about the problem here. + validations: + required: false diff -Nru openjdk-17-17.0.7+7/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml --- openjdk-17-17.0.7+7/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,33 @@ +name: Feature request +description: Propose a new feature. +title: "[FR]: Please title this feature request" +labels: "enhancement" +body: + - type: textarea + id: version + attributes: + label: Does the feature exist in the most recent commit? + description: We recommend using the latest commit from GitHub in your projects. + validations: + required: true + - type: textarea + id: why + attributes: + label: Why do we need this feature? + description: Ideally, explain why a combination of existing features cannot be used instead. + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Describe the proposal. + description: Include a detailed description of the feature, with usage examples. + validations: + required: true + - type: textarea + id: platform + attributes: + label: Is the feature specific to an operating system, compiler, or build system version? + description: If it is, please specify which versions. + validations: + required: true diff -Nru openjdk-17-17.0.7+7/googletest/.github/ISSUE_TEMPLATE/config.yml openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/config.yml --- openjdk-17-17.0.7+7/googletest/.github/ISSUE_TEMPLATE/config.yml 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/.github/ISSUE_TEMPLATE/config.yml 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Get Help + url: https://github.com/google/googletest/discussions + about: Please ask and answer questions here. diff -Nru openjdk-17-17.0.7+7/googletest/.github/workflows/gtest-ci.yml openjdk-17-17.0.9+9/googletest/.github/workflows/gtest-ci.yml --- openjdk-17-17.0.7+7/googletest/.github/workflows/gtest-ci.yml 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/.github/workflows/gtest-ci.yml 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,43 @@ +name: ci + +on: + push: + pull_request: + +env: + BAZEL_CXXOPTS: -std=c++14 + +jobs: + Linux: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Tests + run: bazel test --cxxopt=-std=c++14 --features=external_include_paths --test_output=errors ... + + macOS: + runs-on: macos-latest + steps: + + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Tests + run: bazel test --cxxopt=-std=c++14 --features=external_include_paths --test_output=errors ... + + + Windows: + runs-on: windows-latest + steps: + + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Tests + run: bazel test --cxxopt=/std:c++14 --features=external_include_paths --test_output=errors ... diff -Nru openjdk-17-17.0.7+7/googletest/.gitignore openjdk-17-17.0.9+9/googletest/.gitignore --- openjdk-17-17.0.7+7/googletest/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/.gitignore 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,88 @@ +# Ignore CI build directory +build/ +xcuserdata +cmake-build-debug/ +.idea/ +bazel-bin +bazel-genfiles +bazel-googletest +bazel-out +bazel-testlogs +# python +*.pyc + +# Visual Studio files +.vs +*.sdf +*.opensdf +*.VC.opendb +*.suo +*.user +_ReSharper.Caches/ +Win32-Debug/ +Win32-Release/ +x64-Debug/ +x64-Release/ + +# VSCode files +.cache/ +cmake-variants.yaml + +# Ignore autoconf / automake files +Makefile.in +aclocal.m4 +configure +build-aux/ +autom4te.cache/ +googletest/m4/libtool.m4 +googletest/m4/ltoptions.m4 +googletest/m4/ltsugar.m4 +googletest/m4/ltversion.m4 +googletest/m4/lt~obsolete.m4 +googlemock/m4 + +# Ignore generated directories. +googlemock/fused-src/ +googletest/fused-src/ + +# macOS files +.DS_Store +googletest/.DS_Store +googletest/xcode/.DS_Store + +# Ignore cmake generated directories and files. +CMakeFiles +CTestTestfile.cmake +Makefile +cmake_install.cmake +googlemock/CMakeFiles +googlemock/CTestTestfile.cmake +googlemock/Makefile +googlemock/cmake_install.cmake +googlemock/gtest +/bin +/googlemock/gmock.dir +/googlemock/gmock_main.dir +/googlemock/RUN_TESTS.vcxproj.filters +/googlemock/RUN_TESTS.vcxproj +/googlemock/INSTALL.vcxproj.filters +/googlemock/INSTALL.vcxproj +/googlemock/gmock_main.vcxproj.filters +/googlemock/gmock_main.vcxproj +/googlemock/gmock.vcxproj.filters +/googlemock/gmock.vcxproj +/googlemock/gmock.sln +/googlemock/ALL_BUILD.vcxproj.filters +/googlemock/ALL_BUILD.vcxproj +/lib +/Win32 +/ZERO_CHECK.vcxproj.filters +/ZERO_CHECK.vcxproj +/RUN_TESTS.vcxproj.filters +/RUN_TESTS.vcxproj +/INSTALL.vcxproj.filters +/INSTALL.vcxproj +/googletest-distribution.sln +/CMakeCache.txt +/ALL_BUILD.vcxproj.filters +/ALL_BUILD.vcxproj diff -Nru openjdk-17-17.0.7+7/googletest/BUILD.bazel openjdk-17-17.0.9+9/googletest/BUILD.bazel --- openjdk-17-17.0.7+7/googletest/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/BUILD.bazel 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,219 @@ +# Copyright 2017 Google Inc. +# All Rights Reserved. +# +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Bazel Build for Google C++ Testing Framework(Google Test) + +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +exports_files(["LICENSE"]) + +config_setting( + name = "qnx", + constraint_values = ["@platforms//os:qnx"], +) + +config_setting( + name = "windows", + constraint_values = ["@platforms//os:windows"], +) + +config_setting( + name = "freebsd", + constraint_values = ["@platforms//os:freebsd"], +) + +config_setting( + name = "openbsd", + constraint_values = ["@platforms//os:openbsd"], +) + +config_setting( + name = "msvc_compiler", + flag_values = { + "@bazel_tools//tools/cpp:compiler": "msvc-cl", + }, + visibility = [":__subpackages__"], +) + +config_setting( + name = "has_absl", + values = {"define": "absl=1"}, +) + +# Library that defines the FRIEND_TEST macro. +cc_library( + name = "gtest_prod", + hdrs = ["googletest/include/gtest/gtest_prod.h"], + includes = ["googletest/include"], +) + +# Google Test including Google Mock +cc_library( + name = "gtest", + srcs = glob( + include = [ + "googletest/src/*.cc", + "googletest/src/*.h", + "googletest/include/gtest/**/*.h", + "googlemock/src/*.cc", + "googlemock/include/gmock/**/*.h", + ], + exclude = [ + "googletest/src/gtest-all.cc", + "googletest/src/gtest_main.cc", + "googlemock/src/gmock-all.cc", + "googlemock/src/gmock_main.cc", + ], + ), + hdrs = glob([ + "googletest/include/gtest/*.h", + "googlemock/include/gmock/*.h", + ]), + copts = select({ + ":qnx": [], + ":windows": [], + "//conditions:default": ["-pthread"], + }), + defines = select({ + ":has_absl": ["GTEST_HAS_ABSL=1"], + "//conditions:default": [], + }), + features = select({ + ":windows": ["windows_export_all_symbols"], + "//conditions:default": [], + }), + includes = [ + "googlemock", + "googlemock/include", + "googletest", + "googletest/include", + ], + linkopts = select({ + ":qnx": ["-lregex"], + ":windows": [], + ":freebsd": [ + "-lm", + "-pthread", + ], + ":openbsd": [ + "-lm", + "-pthread", + ], + "//conditions:default": ["-pthread"], + }), + deps = select({ + ":has_absl": [ + "@com_google_absl//absl/container:flat_hash_set", + "@com_google_absl//absl/debugging:failure_signal_handler", + "@com_google_absl//absl/debugging:stacktrace", + "@com_google_absl//absl/debugging:symbolize", + "@com_google_absl//absl/flags:flag", + "@com_google_absl//absl/flags:parse", + "@com_google_absl//absl/flags:reflection", + "@com_google_absl//absl/flags:usage", + "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:any", + "@com_google_absl//absl/types:optional", + "@com_google_absl//absl/types:variant", + "@com_googlesource_code_re2//:re2", + ], + "//conditions:default": [], + }), +) + +cc_library( + name = "gtest_main", + srcs = ["googlemock/src/gmock_main.cc"], + features = select({ + ":windows": ["windows_export_all_symbols"], + "//conditions:default": [], + }), + deps = [":gtest"], +) + +# The following rules build samples of how to use gTest. +cc_library( + name = "gtest_sample_lib", + srcs = [ + "googletest/samples/sample1.cc", + "googletest/samples/sample2.cc", + "googletest/samples/sample4.cc", + ], + hdrs = [ + "googletest/samples/prime_tables.h", + "googletest/samples/sample1.h", + "googletest/samples/sample2.h", + "googletest/samples/sample3-inl.h", + "googletest/samples/sample4.h", + ], + features = select({ + ":windows": ["windows_export_all_symbols"], + "//conditions:default": [], + }), +) + +cc_test( + name = "gtest_samples", + size = "small", + # All Samples except: + # sample9 (main) + # sample10 (main and takes a command line option and needs to be separate) + srcs = [ + "googletest/samples/sample1_unittest.cc", + "googletest/samples/sample2_unittest.cc", + "googletest/samples/sample3_unittest.cc", + "googletest/samples/sample4_unittest.cc", + "googletest/samples/sample5_unittest.cc", + "googletest/samples/sample6_unittest.cc", + "googletest/samples/sample7_unittest.cc", + "googletest/samples/sample8_unittest.cc", + ], + linkstatic = 0, + deps = [ + "gtest_sample_lib", + ":gtest_main", + ], +) + +cc_test( + name = "sample9_unittest", + size = "small", + srcs = ["googletest/samples/sample9_unittest.cc"], + deps = [":gtest"], +) + +cc_test( + name = "sample10_unittest", + size = "small", + srcs = ["googletest/samples/sample10_unittest.cc"], + deps = [":gtest"], +) diff -Nru openjdk-17-17.0.7+7/googletest/CMakeLists.txt openjdk-17-17.0.9+9/googletest/CMakeLists.txt --- openjdk-17-17.0.7+7/googletest/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/CMakeLists.txt 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,27 @@ +# Note: CMake support is community-based. The maintainers do not use CMake +# internally. + +cmake_minimum_required(VERSION 3.13) + +project(googletest-distribution) +set(GOOGLETEST_VERSION 1.14.0) + +if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX) + set(CMAKE_CXX_EXTENSIONS OFF) +endif() + +enable_testing() + +include(CMakeDependentOption) +include(GNUInstallDirs) + +#Note that googlemock target already builds googletest +option(BUILD_GMOCK "Builds the googlemock subproject" ON) +option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON) +option(GTEST_HAS_ABSL "Use Abseil and RE2. Requires Abseil and RE2 to be separately added to the build." OFF) + +if(BUILD_GMOCK) + add_subdirectory( googlemock ) +else() + add_subdirectory( googletest ) +endif() diff -Nru openjdk-17-17.0.7+7/googletest/CONTRIBUTING.md openjdk-17-17.0.9+9/googletest/CONTRIBUTING.md --- openjdk-17-17.0.7+7/googletest/CONTRIBUTING.md 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/CONTRIBUTING.md 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,141 @@ +# How to become a contributor and submit your own code + +## Contributor License Agreements + +We'd love to accept your patches! Before we can take them, we have to jump a +couple of legal hurdles. + +Please fill out either the individual or corporate Contributor License Agreement +(CLA). + +* If you are an individual writing original source code and you're sure you + own the intellectual property, then you'll need to sign an + [individual CLA](https://developers.google.com/open-source/cla/individual). +* If you work for a company that wants to allow you to contribute your work, + then you'll need to sign a + [corporate CLA](https://developers.google.com/open-source/cla/corporate). + +Follow either of the two links above to access the appropriate CLA and +instructions for how to sign and return it. Once we receive it, we'll be able to +accept your pull requests. + +## Are you a Googler? + +If you are a Googler, please make an attempt to submit an internal contribution +rather than a GitHub Pull Request. If you are not able to submit internally, a +PR is acceptable as an alternative. + +## Contributing A Patch + +1. Submit an issue describing your proposed change to the + [issue tracker](https://github.com/google/googletest/issues). +2. Please don't mix more than one logical change per submittal, because it + makes the history hard to follow. If you want to make a change that doesn't + have a corresponding issue in the issue tracker, please create one. +3. Also, coordinate with team members that are listed on the issue in question. + This ensures that work isn't being duplicated and communicating your plan + early also generally leads to better patches. +4. If your proposed change is accepted, and you haven't already done so, sign a + Contributor License Agreement + ([see details above](#contributor-license-agreements)). +5. Fork the desired repo, develop and test your code changes. +6. Ensure that your code adheres to the existing style in the sample to which + you are contributing. +7. Ensure that your code has an appropriate set of unit tests which all pass. +8. Submit a pull request. + +## The Google Test and Google Mock Communities + +The Google Test community exists primarily through the +[discussion group](http://groups.google.com/group/googletestframework) and the +GitHub repository. Likewise, the Google Mock community exists primarily through +their own [discussion group](http://groups.google.com/group/googlemock). You are +definitely encouraged to contribute to the discussion and you can also help us +to keep the effectiveness of the group high by following and promoting the +guidelines listed here. + +### Please Be Friendly + +Showing courtesy and respect to others is a vital part of the Google culture, +and we strongly encourage everyone participating in Google Test development to +join us in accepting nothing less. Of course, being courteous is not the same as +failing to constructively disagree with each other, but it does mean that we +should be respectful of each other when enumerating the 42 technical reasons +that a particular proposal may not be the best choice. There's never a reason to +be antagonistic or dismissive toward anyone who is sincerely trying to +contribute to a discussion. + +Sure, C++ testing is serious business and all that, but it's also a lot of fun. +Let's keep it that way. Let's strive to be one of the friendliest communities in +all of open source. + +As always, discuss Google Test in the official GoogleTest discussion group. You +don't have to actually submit code in order to sign up. Your participation +itself is a valuable contribution. + +## Style + +To keep the source consistent, readable, diffable and easy to merge, we use a +fairly rigid coding style, as defined by the +[google-styleguide](https://github.com/google/styleguide) project. All patches +will be expected to conform to the style outlined +[here](https://google.github.io/styleguide/cppguide.html). Use +[.clang-format](https://github.com/google/googletest/blob/main/.clang-format) to +check your formatting. + +## Requirements for Contributors + +If you plan to contribute a patch, you need to build Google Test, Google Mock, +and their own tests from a git checkout, which has further requirements: + +* [Python](https://www.python.org/) v3.6 or newer (for running some of the + tests and re-generating certain source files from templates) +* [CMake](https://cmake.org/) v2.8.12 or newer + +## Developing Google Test and Google Mock + +This section discusses how to make your own changes to the Google Test project. + +### Testing Google Test and Google Mock Themselves + +To make sure your changes work as intended and don't break existing +functionality, you'll want to compile and run Google Test and GoogleMock's own +tests. For that you can use CMake: + +``` +mkdir mybuild +cd mybuild +cmake -Dgtest_build_tests=ON -Dgmock_build_tests=ON ${GTEST_REPO_DIR} +``` + +To choose between building only Google Test or Google Mock, you may modify your +cmake command to be one of each + +``` +cmake -Dgtest_build_tests=ON ${GTEST_DIR} # sets up Google Test tests +cmake -Dgmock_build_tests=ON ${GMOCK_DIR} # sets up Google Mock tests +``` + +Make sure you have Python installed, as some of Google Test's tests are written +in Python. If the cmake command complains about not being able to find Python +(`Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)`), try telling it +explicitly where your Python executable can be found: + +``` +cmake -DPYTHON_EXECUTABLE=path/to/python ... +``` + +Next, you can build Google Test and / or Google Mock and all desired tests. On +\*nix, this is usually done by + +``` +make +``` + +To run the tests, do + +``` +make test +``` + +All tests should pass. diff -Nru openjdk-17-17.0.7+7/googletest/CONTRIBUTORS openjdk-17-17.0.9+9/googletest/CONTRIBUTORS --- openjdk-17-17.0.7+7/googletest/CONTRIBUTORS 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/CONTRIBUTORS 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,65 @@ +# This file contains a list of people who've made non-trivial +# contribution to the Google C++ Testing Framework project. People +# who commit code to the project are encouraged to add their names +# here. Please keep the list sorted by first names. + +Ajay Joshi +Balázs Dán +Benoit Sigoure +Bharat Mediratta +Bogdan Piloca +Chandler Carruth +Chris Prince +Chris Taylor +Dan Egnor +Dave MacLachlan +David Anderson +Dean Sturtevant +Eric Roman +Gene Volovich +Hady Zalek +Hal Burch +Jeffrey Yasskin +Jim Keller +Joe Walnes +Jon Wray +Jói Sigurðsson +Keir Mierle +Keith Ray +Kenton Varda +Kostya Serebryany +Krystian Kuzniarek +Lev Makhlis +Manuel Klimek +Mario Tanev +Mark Paskin +Markus Heule +Martijn Vels +Matthew Simmons +Mika Raento +Mike Bland +Miklós Fazekas +Neal Norwitz +Nermin Ozkiranartli +Owen Carlsen +Paneendra Ba +Pasi Valminen +Patrick Hanna +Patrick Riley +Paul Menage +Peter Kaminski +Piotr Kaminski +Preston Jackson +Rainer Klaffenboeck +Russ Cox +Russ Rufer +Sean Mcafee +Sigurður Ásgeirsson +Sverre Sundsdal +Szymon Sobik +Takeshi Yoshino +Tracy Bialik +Vadim Berman +Vlad Losev +Wolfgang Klier +Zhanyong Wan diff -Nru openjdk-17-17.0.7+7/googletest/LICENSE openjdk-17-17.0.9+9/googletest/LICENSE --- openjdk-17-17.0.7+7/googletest/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/LICENSE 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,28 @@ +Copyright 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -Nru openjdk-17-17.0.7+7/googletest/README.md openjdk-17-17.0.9+9/googletest/README.md --- openjdk-17-17.0.7+7/googletest/README.md 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/README.md 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,146 @@ +# GoogleTest + +### Announcements + +#### Live at Head + +GoogleTest now follows the +[Abseil Live at Head philosophy](https://abseil.io/about/philosophy#upgrade-support). +We recommend +[updating to the latest commit in the `main` branch as often as possible](https://github.com/abseil/abseil-cpp/blob/master/FAQ.md#what-is-live-at-head-and-how-do-i-do-it). +We do publish occasional semantic versions, tagged with +`v${major}.${minor}.${patch}` (e.g. `v1.13.0`). + +#### Documentation Updates + +Our documentation is now live on GitHub Pages at +https://google.github.io/googletest/. We recommend browsing the documentation on +GitHub Pages rather than directly in the repository. + +#### Release 1.13.0 + +[Release 1.13.0](https://github.com/google/googletest/releases/tag/v1.13.0) is +now available. + +The 1.13.x branch requires at least C++14. + +#### Continuous Integration + +We use Google's internal systems for continuous integration. \ +GitHub Actions were added for the convenience of open-source contributors. They +are exclusively maintained by the open-source community and not used by the +GoogleTest team. + +#### Coming Soon + +* We are planning to take a dependency on + [Abseil](https://github.com/abseil/abseil-cpp). +* More documentation improvements are planned. + +## Welcome to **GoogleTest**, Google's C++ test framework! + +This repository is a merger of the formerly separate GoogleTest and GoogleMock +projects. These were so closely related that it makes sense to maintain and +release them together. + +### Getting Started + +See the [GoogleTest User's Guide](https://google.github.io/googletest/) for +documentation. We recommend starting with the +[GoogleTest Primer](https://google.github.io/googletest/primer.html). + +More information about building GoogleTest can be found at +[googletest/README.md](googletest/README.md). + +## Features + +* xUnit test framework: \ + Googletest is based on the [xUnit](https://en.wikipedia.org/wiki/XUnit) + testing framework, a popular architecture for unit testing +* Test discovery: \ + Googletest automatically discovers and runs your tests, eliminating the need + to manually register your tests +* Rich set of assertions: \ + Googletest provides a variety of assertions, such as equality, inequality, + exceptions, and more, making it easy to test your code +* User-defined assertions: \ + You can define your own assertions with Googletest, making it simple to + write tests that are specific to your code +* Death tests: \ + Googletest supports death tests, which verify that your code exits in a + certain way, making it useful for testing error-handling code +* Fatal and non-fatal failures: \ + You can specify whether a test failure should be treated as fatal or + non-fatal with Googletest, allowing tests to continue running even if a + failure occurs +* Value-parameterized tests: \ + Googletest supports value-parameterized tests, which run multiple times with + different input values, making it useful for testing functions that take + different inputs +* Type-parameterized tests: \ + Googletest also supports type-parameterized tests, which run with different + data types, making it useful for testing functions that work with different + data types +* Various options for running tests: \ + Googletest provides many options for running tests including running + individual tests, running tests in a specific order and running tests in + parallel + +## Supported Platforms + +GoogleTest follows Google's +[Foundational C++ Support Policy](https://opensource.google/documentation/policies/cplusplus-support). +See +[this table](https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md) +for a list of currently supported versions of compilers, platforms, and build +tools. + +## Who Is Using GoogleTest? + +In addition to many internal projects at Google, GoogleTest is also used by the +following notable projects: + +* The [Chromium projects](http://www.chromium.org/) (behind the Chrome browser + and Chrome OS). +* The [LLVM](http://llvm.org/) compiler. +* [Protocol Buffers](https://github.com/google/protobuf), Google's data + interchange format. +* The [OpenCV](http://opencv.org/) computer vision library. + +## Related Open Source Projects + +[GTest Runner](https://github.com/nholthaus/gtest-runner) is a Qt5 based +automated test-runner and Graphical User Interface with powerful features for +Windows and Linux platforms. + +[GoogleTest UI](https://github.com/ospector/gtest-gbar) is a test runner that +runs your test binary, allows you to track its progress via a progress bar, and +displays a list of test failures. Clicking on one shows failure text. GoogleTest +UI is written in C#. + +[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event +listener for GoogleTest that implements the +[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test +result output. If your test runner understands TAP, you may find it useful. + +[gtest-parallel](https://github.com/google/gtest-parallel) is a test runner that +runs tests from your binary in parallel to provide significant speed-up. + +[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter) +is a VS Code extension allowing to view GoogleTest in a tree view and run/debug +your tests. + +[C++ TestMate](https://github.com/matepek/vscode-catch2-test-adapter) is a VS +Code extension allowing to view GoogleTest in a tree view and run/debug your +tests. + +[Cornichon](https://pypi.org/project/cornichon/) is a small Gherkin DSL parser +that generates stub code for GoogleTest. + +## Contributing Changes + +Please read +[`CONTRIBUTING.md`](https://github.com/google/googletest/blob/main/CONTRIBUTING.md) +for details on how to contribute to this project. + +Happy testing! diff -Nru openjdk-17-17.0.7+7/googletest/WORKSPACE openjdk-17-17.0.9+9/googletest/WORKSPACE --- openjdk-17-17.0.7+7/googletest/WORKSPACE 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/WORKSPACE 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,27 @@ +workspace(name = "com_google_googletest") + +load("//:googletest_deps.bzl", "googletest_deps") +googletest_deps() + +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "rules_python", # 2023-07-31T20:39:27Z + sha256 = "1250b59a33c591a1c4ba68c62e95fc88a84c334ec35a2e23f46cbc1b9a5a8b55", + strip_prefix = "rules_python-e355becc30275939d87116a4ec83dad4bb50d9e1", + urls = ["https://github.com/bazelbuild/rules_python/archive/e355becc30275939d87116a4ec83dad4bb50d9e1.zip"], +) + +http_archive( + name = "bazel_skylib", # 2023-05-31T19:24:07Z + sha256 = "08c0386f45821ce246bbbf77503c973246ed6ee5c3463e41efc197fa9bc3a7f4", + strip_prefix = "bazel-skylib-288731ef9f7f688932bd50e704a91a45ec185f9b", + urls = ["https://github.com/bazelbuild/bazel-skylib/archive/288731ef9f7f688932bd50e704a91a45ec185f9b.zip"], +) + +http_archive( + name = "platforms", # 2023-07-28T19:44:27Z + sha256 = "40eb313613ff00a5c03eed20aba58890046f4d38dec7344f00bb9a8867853526", + strip_prefix = "platforms-4ad40ef271da8176d4fc0194d2089b8a76e19d7b", + urls = ["https://github.com/bazelbuild/platforms/archive/4ad40ef271da8176d4fc0194d2089b8a76e19d7b.zip"], +) diff -Nru openjdk-17-17.0.7+7/googletest/ci/linux-presubmit.sh openjdk-17-17.0.9+9/googletest/ci/linux-presubmit.sh --- openjdk-17-17.0.7+7/googletest/ci/linux-presubmit.sh 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/ci/linux-presubmit.sh 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,137 @@ +#!/bin/bash +# +# Copyright 2020, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -euox pipefail + +readonly LINUX_LATEST_CONTAINER="gcr.io/google.com/absl-177019/linux_hybrid-latest:20230217" +readonly LINUX_GCC_FLOOR_CONTAINER="gcr.io/google.com/absl-177019/linux_gcc-floor:20230120" + +if [[ -z ${GTEST_ROOT:-} ]]; then + GTEST_ROOT="$(realpath $(dirname ${0})/..)" +fi + +if [[ -z ${STD:-} ]]; then + STD="c++14 c++17 c++20" +fi + +# Test the CMake build +for cc in /usr/local/bin/gcc /opt/llvm/clang/bin/clang; do + for cmake_off_on in OFF ON; do + time docker run \ + --volume="${GTEST_ROOT}:/src:ro" \ + --tmpfs="/build:exec" \ + --workdir="/build" \ + --rm \ + --env="CC=${cc}" \ + --env=CXXFLAGS="-Werror -Wdeprecated" \ + ${LINUX_LATEST_CONTAINER} \ + /bin/bash -c " + cmake /src \ + -DCMAKE_CXX_STANDARD=14 \ + -Dgtest_build_samples=ON \ + -Dgtest_build_tests=ON \ + -Dgmock_build_tests=ON \ + -Dcxx_no_exception=${cmake_off_on} \ + -Dcxx_no_rtti=${cmake_off_on} && \ + make -j$(nproc) && \ + ctest -j$(nproc) --output-on-failure" + done +done + +# Do one test with an older version of GCC +time docker run \ + --volume="${GTEST_ROOT}:/src:ro" \ + --workdir="/src" \ + --rm \ + --env="CC=/usr/local/bin/gcc" \ + --env="BAZEL_CXXOPTS=-std=c++14" \ + ${LINUX_GCC_FLOOR_CONTAINER} \ + /usr/local/bin/bazel test ... \ + --copt="-Wall" \ + --copt="-Werror" \ + --copt="-Wuninitialized" \ + --copt="-Wundef" \ + --copt="-Wno-error=pragmas" \ + --distdir="/bazel-distdir" \ + --features=external_include_paths \ + --keep_going \ + --show_timestamps \ + --test_output=errors + +# Test GCC +for std in ${STD}; do + for absl in 0 1; do + time docker run \ + --volume="${GTEST_ROOT}:/src:ro" \ + --workdir="/src" \ + --rm \ + --env="CC=/usr/local/bin/gcc" \ + --env="BAZEL_CXXOPTS=-std=${std}" \ + ${LINUX_LATEST_CONTAINER} \ + /usr/local/bin/bazel test ... \ + --copt="-Wall" \ + --copt="-Werror" \ + --copt="-Wuninitialized" \ + --copt="-Wundef" \ + --define="absl=${absl}" \ + --distdir="/bazel-distdir" \ + --features=external_include_paths \ + --keep_going \ + --show_timestamps \ + --test_output=errors + done +done + +# Test Clang +for std in ${STD}; do + for absl in 0 1; do + time docker run \ + --volume="${GTEST_ROOT}:/src:ro" \ + --workdir="/src" \ + --rm \ + --env="CC=/opt/llvm/clang/bin/clang" \ + --env="BAZEL_CXXOPTS=-std=${std}" \ + ${LINUX_LATEST_CONTAINER} \ + /usr/local/bin/bazel test ... \ + --copt="--gcc-toolchain=/usr/local" \ + --copt="-Wall" \ + --copt="-Werror" \ + --copt="-Wuninitialized" \ + --copt="-Wundef" \ + --define="absl=${absl}" \ + --distdir="/bazel-distdir" \ + --features=external_include_paths \ + --keep_going \ + --linkopt="--gcc-toolchain=/usr/local" \ + --show_timestamps \ + --test_output=errors + done +done diff -Nru openjdk-17-17.0.7+7/googletest/ci/macos-presubmit.sh openjdk-17-17.0.9+9/googletest/ci/macos-presubmit.sh --- openjdk-17-17.0.7+7/googletest/ci/macos-presubmit.sh 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/ci/macos-presubmit.sh 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,76 @@ +#!/bin/bash +# +# Copyright 2020, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -euox pipefail + +if [[ -z ${GTEST_ROOT:-} ]]; then + GTEST_ROOT="$(realpath $(dirname ${0})/..)" +fi + +# Test the CMake build +for cmake_off_on in OFF ON; do + BUILD_DIR=$(mktemp -d build_dir.XXXXXXXX) + cd ${BUILD_DIR} + time cmake ${GTEST_ROOT} \ + -DCMAKE_CXX_STANDARD=14 \ + -Dgtest_build_samples=ON \ + -Dgtest_build_tests=ON \ + -Dgmock_build_tests=ON \ + -Dcxx_no_exception=${cmake_off_on} \ + -Dcxx_no_rtti=${cmake_off_on} + time make + time ctest -j$(nproc) --output-on-failure +done + +# Test the Bazel build + +# If we are running on Kokoro, check for a versioned Bazel binary. +KOKORO_GFILE_BAZEL_BIN="bazel-5.1.1-darwin-x86_64" +if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -f ${KOKORO_GFILE_DIR}/${KOKORO_GFILE_BAZEL_BIN} ]]; then + BAZEL_BIN="${KOKORO_GFILE_DIR}/${KOKORO_GFILE_BAZEL_BIN}" + chmod +x ${BAZEL_BIN} +else + BAZEL_BIN="bazel" +fi + +cd ${GTEST_ROOT} +for absl in 0 1; do + ${BAZEL_BIN} test ... \ + --copt="-Wall" \ + --copt="-Werror" \ + --copt="-Wundef" \ + --cxxopt="-std=c++14" \ + --define="absl=${absl}" \ + --features=external_include_paths \ + --keep_going \ + --show_timestamps \ + --test_output=errors +done diff -Nru openjdk-17-17.0.7+7/googletest/ci/windows-presubmit.bat openjdk-17-17.0.9+9/googletest/ci/windows-presubmit.bat --- openjdk-17-17.0.7+7/googletest/ci/windows-presubmit.bat 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/ci/windows-presubmit.bat 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,58 @@ +SETLOCAL ENABLEDELAYEDEXPANSION + +SET BAZEL_EXE=%KOKORO_GFILE_DIR%\bazel-5.1.1-windows-x86_64.exe + +SET PATH=C:\Python34;%PATH% +SET BAZEL_PYTHON=C:\python34\python.exe +SET BAZEL_SH=C:\tools\msys64\usr\bin\bash.exe +SET CMAKE_BIN="cmake.exe" +SET CTEST_BIN="ctest.exe" +SET CTEST_OUTPUT_ON_FAILURE=1 +SET CMAKE_BUILD_PARALLEL_LEVEL=16 +SET CTEST_PARALLEL_LEVEL=16 + +IF EXIST git\googletest ( + CD git\googletest +) ELSE IF EXIST github\googletest ( + CD github\googletest +) + +IF %errorlevel% neq 0 EXIT /B 1 + +:: ---------------------------------------------------------------------------- +:: CMake +MKDIR cmake_msvc2022 +CD cmake_msvc2022 + +%CMAKE_BIN% .. ^ + -G "Visual Studio 17 2022" ^ + -DPYTHON_EXECUTABLE:FILEPATH=c:\python37\python.exe ^ + -DPYTHON_INCLUDE_DIR:PATH=c:\python37\include ^ + -DPYTHON_LIBRARY:FILEPATH=c:\python37\lib\site-packages\pip ^ + -Dgtest_build_samples=ON ^ + -Dgtest_build_tests=ON ^ + -Dgmock_build_tests=ON +IF %errorlevel% neq 0 EXIT /B 1 + +%CMAKE_BIN% --build . --target ALL_BUILD --config Debug -- -maxcpucount +IF %errorlevel% neq 0 EXIT /B 1 + +%CTEST_BIN% -C Debug --timeout 600 +IF %errorlevel% neq 0 EXIT /B 1 + +CD .. +RMDIR /S /Q cmake_msvc2022 + +:: ---------------------------------------------------------------------------- +:: Bazel + +SET BAZEL_VS=C:\Program Files\Microsoft Visual Studio\2022\Community +%BAZEL_EXE% test ... ^ + --compilation_mode=dbg ^ + --copt=/std:c++14 ^ + --copt=/WX ^ + --features=external_include_paths ^ + --keep_going ^ + --test_output=errors ^ + --test_tag_filters=-no_test_msvc2017 +IF %errorlevel% neq 0 EXIT /B 1 diff -Nru openjdk-17-17.0.7+7/googletest/docs/_config.yml openjdk-17-17.0.9+9/googletest/docs/_config.yml --- openjdk-17-17.0.7+7/googletest/docs/_config.yml 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/_config.yml 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1 @@ +title: GoogleTest diff -Nru openjdk-17-17.0.7+7/googletest/docs/_data/navigation.yml openjdk-17-17.0.9+9/googletest/docs/_data/navigation.yml --- openjdk-17-17.0.7+7/googletest/docs/_data/navigation.yml 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/_data/navigation.yml 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,43 @@ +nav: +- section: "Get Started" + items: + - title: "Supported Platforms" + url: "/platforms.html" + - title: "Quickstart: Bazel" + url: "/quickstart-bazel.html" + - title: "Quickstart: CMake" + url: "/quickstart-cmake.html" +- section: "Guides" + items: + - title: "GoogleTest Primer" + url: "/primer.html" + - title: "Advanced Topics" + url: "/advanced.html" + - title: "Mocking for Dummies" + url: "/gmock_for_dummies.html" + - title: "Mocking Cookbook" + url: "/gmock_cook_book.html" + - title: "Mocking Cheat Sheet" + url: "/gmock_cheat_sheet.html" +- section: "References" + items: + - title: "Testing Reference" + url: "/reference/testing.html" + - title: "Mocking Reference" + url: "/reference/mocking.html" + - title: "Assertions" + url: "/reference/assertions.html" + - title: "Matchers" + url: "/reference/matchers.html" + - title: "Actions" + url: "/reference/actions.html" + - title: "Testing FAQ" + url: "/faq.html" + - title: "Mocking FAQ" + url: "/gmock_faq.html" + - title: "Code Samples" + url: "/samples.html" + - title: "Using pkg-config" + url: "/pkgconfig.html" + - title: "Community Documentation" + url: "/community_created_documentation.html" diff -Nru openjdk-17-17.0.7+7/googletest/docs/_layouts/default.html openjdk-17-17.0.9+9/googletest/docs/_layouts/default.html --- openjdk-17-17.0.7+7/googletest/docs/_layouts/default.html 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/_layouts/default.html 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,58 @@ + + + + + + + +{% seo %} + + + + + + +
+
+ {{ content }} +
+ +
+ + + + diff -Nru openjdk-17-17.0.7+7/googletest/docs/_sass/main.scss openjdk-17-17.0.9+9/googletest/docs/_sass/main.scss --- openjdk-17-17.0.7+7/googletest/docs/_sass/main.scss 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/_sass/main.scss 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,200 @@ +// Styles for GoogleTest docs website on GitHub Pages. +// Color variables are defined in +// https://github.com/pages-themes/primer/tree/master/_sass/primer-support/lib/variables + +$sidebar-width: 260px; + +body { + display: flex; + margin: 0; +} + +.sidebar { + background: $black; + color: $text-white; + flex-shrink: 0; + height: 100vh; + overflow: auto; + position: sticky; + top: 0; + width: $sidebar-width; +} + +.sidebar h1 { + font-size: 1.5em; +} + +.sidebar h2 { + color: $gray-light; + font-size: 0.8em; + font-weight: normal; + margin-bottom: 0.8em; + padding-left: 2.5em; + text-transform: uppercase; +} + +.sidebar .header { + background: $black; + padding: 2em; + position: sticky; + top: 0; + width: 100%; +} + +.sidebar .header a { + color: $text-white; + text-decoration: none; +} + +.sidebar .nav-toggle { + display: none; +} + +.sidebar .expander { + cursor: pointer; + display: none; + height: 3em; + position: absolute; + right: 1em; + top: 1.5em; + width: 3em; +} + +.sidebar .expander .arrow { + border: solid $white; + border-width: 0 3px 3px 0; + display: block; + height: 0.7em; + margin: 1em auto; + transform: rotate(45deg); + transition: transform 0.5s; + width: 0.7em; +} + +.sidebar nav { + width: 100%; +} + +.sidebar nav ul { + list-style-type: none; + margin-bottom: 1em; + padding: 0; + + &:last-child { + margin-bottom: 2em; + } + + a { + text-decoration: none; + } + + li { + color: $text-white; + padding-left: 2em; + text-decoration: none; + } + + li.active { + background: $border-gray-darker; + font-weight: bold; + } + + li:hover { + background: $border-gray-darker; + } +} + +.main { + background-color: $bg-gray; + width: calc(100% - #{$sidebar-width}); +} + +.main .main-inner { + background-color: $white; + padding: 2em; +} + +.main .footer { + margin: 0; + padding: 2em; +} + +.main table th { + text-align: left; +} + +.main .callout { + border-left: 0.25em solid $white; + padding: 1em; + + a { + text-decoration: underline; + } + + &.important { + background-color: $bg-yellow-light; + border-color: $bg-yellow; + color: $black; + } + + &.note { + background-color: $bg-blue-light; + border-color: $text-blue; + color: $text-blue; + } + + &.tip { + background-color: $green-000; + border-color: $green-700; + color: $green-700; + } + + &.warning { + background-color: $red-000; + border-color: $text-red; + color: $text-red; + } +} + +.main .good pre { + background-color: $bg-green-light; +} + +.main .bad pre { + background-color: $red-000; +} + +@media all and (max-width: 768px) { + body { + flex-direction: column; + } + + .sidebar { + height: auto; + position: relative; + width: 100%; + } + + .sidebar .expander { + display: block; + } + + .sidebar nav { + height: 0; + overflow: hidden; + } + + .sidebar .nav-toggle:checked { + & ~ nav { + height: auto; + } + + & + .expander .arrow { + transform: rotate(-135deg); + } + } + + .main { + width: 100%; + } +} diff -Nru openjdk-17-17.0.7+7/googletest/docs/advanced.md openjdk-17-17.0.9+9/googletest/docs/advanced.md --- openjdk-17-17.0.7+7/googletest/docs/advanced.md 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/advanced.md 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,2436 @@ +# Advanced GoogleTest Topics + +## Introduction + +Now that you have read the [GoogleTest Primer](primer.md) and learned how to +write tests using GoogleTest, it's time to learn some new tricks. This document +will show you more assertions as well as how to construct complex failure +messages, propagate fatal failures, reuse and speed up your test fixtures, and +use various flags with your tests. + +## More Assertions + +This section covers some less frequently used, but still significant, +assertions. + +### Explicit Success and Failure + +See [Explicit Success and Failure](reference/assertions.md#success-failure) in +the Assertions Reference. + +### Exception Assertions + +See [Exception Assertions](reference/assertions.md#exceptions) in the Assertions +Reference. + +### Predicate Assertions for Better Error Messages + +Even though GoogleTest has a rich set of assertions, they can never be complete, +as it's impossible (nor a good idea) to anticipate all scenarios a user might +run into. Therefore, sometimes a user has to use `EXPECT_TRUE()` to check a +complex expression, for lack of a better macro. This has the problem of not +showing you the values of the parts of the expression, making it hard to +understand what went wrong. As a workaround, some users choose to construct the +failure message by themselves, streaming it into `EXPECT_TRUE()`. However, this +is awkward especially when the expression has side-effects or is expensive to +evaluate. + +GoogleTest gives you three different options to solve this problem: + +#### Using an Existing Boolean Function + +If you already have a function or functor that returns `bool` (or a type that +can be implicitly converted to `bool`), you can use it in a *predicate +assertion* to get the function arguments printed for free. See +[`EXPECT_PRED*`](reference/assertions.md#EXPECT_PRED) in the Assertions +Reference for details. + +#### Using a Function That Returns an AssertionResult + +While `EXPECT_PRED*()` and friends are handy for a quick job, the syntax is not +satisfactory: you have to use different macros for different arities, and it +feels more like Lisp than C++. The `::testing::AssertionResult` class solves +this problem. + +An `AssertionResult` object represents the result of an assertion (whether it's +a success or a failure, and an associated message). You can create an +`AssertionResult` using one of these factory functions: + +```c++ +namespace testing { + +// Returns an AssertionResult object to indicate that an assertion has +// succeeded. +AssertionResult AssertionSuccess(); + +// Returns an AssertionResult object to indicate that an assertion has +// failed. +AssertionResult AssertionFailure(); + +} +``` + +You can then use the `<<` operator to stream messages to the `AssertionResult` +object. + +To provide more readable messages in Boolean assertions (e.g. `EXPECT_TRUE()`), +write a predicate function that returns `AssertionResult` instead of `bool`. For +example, if you define `IsEven()` as: + +```c++ +testing::AssertionResult IsEven(int n) { + if ((n % 2) == 0) + return testing::AssertionSuccess(); + else + return testing::AssertionFailure() << n << " is odd"; +} +``` + +instead of: + +```c++ +bool IsEven(int n) { + return (n % 2) == 0; +} +``` + +the failed assertion `EXPECT_TRUE(IsEven(Fib(4)))` will print: + +```none +Value of: IsEven(Fib(4)) + Actual: false (3 is odd) +Expected: true +``` + +instead of a more opaque + +```none +Value of: IsEven(Fib(4)) + Actual: false +Expected: true +``` + +If you want informative messages in `EXPECT_FALSE` and `ASSERT_FALSE` as well +(one third of Boolean assertions in the Google code base are negative ones), and +are fine with making the predicate slower in the success case, you can supply a +success message: + +```c++ +testing::AssertionResult IsEven(int n) { + if ((n % 2) == 0) + return testing::AssertionSuccess() << n << " is even"; + else + return testing::AssertionFailure() << n << " is odd"; +} +``` + +Then the statement `EXPECT_FALSE(IsEven(Fib(6)))` will print + +```none + Value of: IsEven(Fib(6)) + Actual: true (8 is even) + Expected: false +``` + +#### Using a Predicate-Formatter + +If you find the default message generated by +[`EXPECT_PRED*`](reference/assertions.md#EXPECT_PRED) and +[`EXPECT_TRUE`](reference/assertions.md#EXPECT_TRUE) unsatisfactory, or some +arguments to your predicate do not support streaming to `ostream`, you can +instead use *predicate-formatter assertions* to *fully* customize how the +message is formatted. See +[`EXPECT_PRED_FORMAT*`](reference/assertions.md#EXPECT_PRED_FORMAT) in the +Assertions Reference for details. + +### Floating-Point Comparison + +See [Floating-Point Comparison](reference/assertions.md#floating-point) in the +Assertions Reference. + +#### Floating-Point Predicate-Format Functions + +Some floating-point operations are useful, but not that often used. In order to +avoid an explosion of new macros, we provide them as predicate-format functions +that can be used in the predicate assertion macro +[`EXPECT_PRED_FORMAT2`](reference/assertions.md#EXPECT_PRED_FORMAT), for +example: + +```c++ +using ::testing::FloatLE; +using ::testing::DoubleLE; +... +EXPECT_PRED_FORMAT2(FloatLE, val1, val2); +EXPECT_PRED_FORMAT2(DoubleLE, val1, val2); +``` + +The above code verifies that `val1` is less than, or approximately equal to, +`val2`. + +### Asserting Using gMock Matchers + +See [`EXPECT_THAT`](reference/assertions.md#EXPECT_THAT) in the Assertions +Reference. + +### More String Assertions + +(Please read the [previous](#asserting-using-gmock-matchers) section first if +you haven't.) + +You can use the gMock [string matchers](reference/matchers.md#string-matchers) +with [`EXPECT_THAT`](reference/assertions.md#EXPECT_THAT) to do more string +comparison tricks (sub-string, prefix, suffix, regular expression, and etc). For +example, + +```c++ +using ::testing::HasSubstr; +using ::testing::MatchesRegex; +... + ASSERT_THAT(foo_string, HasSubstr("needle")); + EXPECT_THAT(bar_string, MatchesRegex("\\w*\\d+")); +``` + +### Windows HRESULT assertions + +See [Windows HRESULT Assertions](reference/assertions.md#HRESULT) in the +Assertions Reference. + +### Type Assertions + +You can call the function + +```c++ +::testing::StaticAssertTypeEq(); +``` + +to assert that types `T1` and `T2` are the same. The function does nothing if +the assertion is satisfied. If the types are different, the function call will +fail to compile, the compiler error message will say that `T1 and T2 are not the +same type` and most likely (depending on the compiler) show you the actual +values of `T1` and `T2`. This is mainly useful inside template code. + +**Caveat**: When used inside a member function of a class template or a function +template, `StaticAssertTypeEq()` is effective only if the function is +instantiated. For example, given: + +```c++ +template class Foo { + public: + void Bar() { testing::StaticAssertTypeEq(); } +}; +``` + +the code: + +```c++ +void Test1() { Foo foo; } +``` + +will not generate a compiler error, as `Foo::Bar()` is never actually +instantiated. Instead, you need: + +```c++ +void Test2() { Foo foo; foo.Bar(); } +``` + +to cause a compiler error. + +### Assertion Placement + +You can use assertions in any C++ function. In particular, it doesn't have to be +a method of the test fixture class. The one constraint is that assertions that +generate a fatal failure (`FAIL*` and `ASSERT_*`) can only be used in +void-returning functions. This is a consequence of Google's not using +exceptions. By placing it in a non-void function you'll get a confusing compile +error like `"error: void value not ignored as it ought to be"` or `"cannot +initialize return object of type 'bool' with an rvalue of type 'void'"` or +`"error: no viable conversion from 'void' to 'string'"`. + +If you need to use fatal assertions in a function that returns non-void, one +option is to make the function return the value in an out parameter instead. For +example, you can rewrite `T2 Foo(T1 x)` to `void Foo(T1 x, T2* result)`. You +need to make sure that `*result` contains some sensible value even when the +function returns prematurely. As the function now returns `void`, you can use +any assertion inside of it. + +If changing the function's type is not an option, you should just use assertions +that generate non-fatal failures, such as `ADD_FAILURE*` and `EXPECT_*`. + +{: .callout .note} +NOTE: Constructors and destructors are not considered void-returning functions, +according to the C++ language specification, and so you may not use fatal +assertions in them; you'll get a compilation error if you try. Instead, either +call `abort` and crash the entire test executable, or put the fatal assertion in +a `SetUp`/`TearDown` function; see +[constructor/destructor vs. `SetUp`/`TearDown`](faq.md#CtorVsSetUp) + +{: .callout .warning} +WARNING: A fatal assertion in a helper function (private void-returning method) +called from a constructor or destructor does not terminate the current test, as +your intuition might suggest: it merely returns from the constructor or +destructor early, possibly leaving your object in a partially-constructed or +partially-destructed state! You almost certainly want to `abort` or use +`SetUp`/`TearDown` instead. + +## Skipping test execution + +Related to the assertions `SUCCEED()` and `FAIL()`, you can prevent further test +execution at runtime with the `GTEST_SKIP()` macro. This is useful when you need +to check for preconditions of the system under test during runtime and skip +tests in a meaningful way. + +`GTEST_SKIP()` can be used in individual test cases or in the `SetUp()` methods +of classes derived from either `::testing::Environment` or `::testing::Test`. +For example: + +```c++ +TEST(SkipTest, DoesSkip) { + GTEST_SKIP() << "Skipping single test"; + EXPECT_EQ(0, 1); // Won't fail; it won't be executed +} + +class SkipFixture : public ::testing::Test { + protected: + void SetUp() override { + GTEST_SKIP() << "Skipping all tests for this fixture"; + } +}; + +// Tests for SkipFixture won't be executed. +TEST_F(SkipFixture, SkipsOneTest) { + EXPECT_EQ(5, 7); // Won't fail +} +``` + +As with assertion macros, you can stream a custom message into `GTEST_SKIP()`. + +## Teaching GoogleTest How to Print Your Values + +When a test assertion such as `EXPECT_EQ` fails, GoogleTest prints the argument +values to help you debug. It does this using a user-extensible value printer. + +This printer knows how to print built-in C++ types, native arrays, STL +containers, and any type that supports the `<<` operator. For other types, it +prints the raw bytes in the value and hopes that you the user can figure it out. + +As mentioned earlier, the printer is *extensible*. That means you can teach it +to do a better job at printing your particular type than to dump the bytes. To +do that, define an `AbslStringify()` overload as a `friend` function template +for your type: + +```cpp +namespace foo { + +class Point { // We want GoogleTest to be able to print instances of this. + ... + // Provide a friend overload. + template + friend void AbslStringify(Sink& sink, const Point& point) { + absl::Format(&sink, "(%d, %d)", point.x, point.y); + } + + int x; + int y; +}; + +// If you can't declare the function in the class it's important that the +// AbslStringify overload is defined in the SAME namespace that defines Point. +// C++'s look-up rules rely on that. +enum class EnumWithStringify { kMany = 0, kChoices = 1 }; + +template +void AbslStringify(Sink& sink, EnumWithStringify e) { + absl::Format(&sink, "%s", e == EnumWithStringify::kMany ? "Many" : "Choices"); +} + +} // namespace foo +``` + +{: .callout .note} +Note: `AbslStringify()` utilizes a generic "sink" buffer to construct its +string. For more information about supported operations on `AbslStringify()`'s +sink, see go/abslstringify. + +`AbslStringify()` can also use `absl::StrFormat`'s catch-all `%v` type specifier +within its own format strings to perform type deduction. `Point` above could be +formatted as `"(%v, %v)"` for example, and deduce the `int` values as `%d`. + +Sometimes, `AbslStringify()` might not be an option: your team may wish to print +types with extra debugging information for testing purposes only. If so, you can +instead define a `PrintTo()` function like this: + +```c++ +#include + +namespace foo { + +class Point { + ... + friend void PrintTo(const Point& point, std::ostream* os) { + *os << "(" << point.x << "," << point.y << ")"; + } + + int x; + int y; +}; + +// If you can't declare the function in the class it's important that PrintTo() +// is defined in the SAME namespace that defines Point. C++'s look-up rules +// rely on that. +void PrintTo(const Point& point, std::ostream* os) { + *os << "(" << point.x << "," << point.y << ")"; +} + +} // namespace foo +``` + +If you have defined both `AbslStringify()` and `PrintTo()`, the latter will be +used by GoogleTest. This allows you to customize how the value appears in +GoogleTest's output without affecting code that relies on the behavior of +`AbslStringify()`. + +If you have an existing `<<` operator and would like to define an +`AbslStringify()`, the latter will be used for GoogleTest printing. + +If you want to print a value `x` using GoogleTest's value printer yourself, just +call `::testing::PrintToString(x)`, which returns an `std::string`: + +```c++ +vector > point_ints = GetPointIntVector(); + +EXPECT_TRUE(IsCorrectPointIntVector(point_ints)) + << "point_ints = " << testing::PrintToString(point_ints); +``` + +For more details regarding `AbslStringify()` and its integration with other +libraries, see go/abslstringify. + +## Death Tests + +In many applications, there are assertions that can cause application failure if +a condition is not met. These consistency checks, which ensure that the program +is in a known good state, are there to fail at the earliest possible time after +some program state is corrupted. If the assertion checks the wrong condition, +then the program may proceed in an erroneous state, which could lead to memory +corruption, security holes, or worse. Hence it is vitally important to test that +such assertion statements work as expected. + +Since these precondition checks cause the processes to die, we call such tests +_death tests_. More generally, any test that checks that a program terminates +(except by throwing an exception) in an expected fashion is also a death test. + +Note that if a piece of code throws an exception, we don't consider it "death" +for the purpose of death tests, as the caller of the code could catch the +exception and avoid the crash. If you want to verify exceptions thrown by your +code, see [Exception Assertions](#ExceptionAssertions). + +If you want to test `EXPECT_*()/ASSERT_*()` failures in your test code, see +["Catching" Failures](#catching-failures). + +### How to Write a Death Test + +GoogleTest provides assertion macros to support death tests. See +[Death Assertions](reference/assertions.md#death) in the Assertions Reference +for details. + +To write a death test, simply use one of the macros inside your test function. +For example, + +```c++ +TEST(MyDeathTest, Foo) { + // This death test uses a compound statement. + ASSERT_DEATH({ + int n = 5; + Foo(&n); + }, "Error on line .* of Foo()"); +} + +TEST(MyDeathTest, NormalExit) { + EXPECT_EXIT(NormalExit(), testing::ExitedWithCode(0), "Success"); +} + +TEST(MyDeathTest, KillProcess) { + EXPECT_EXIT(KillProcess(), testing::KilledBySignal(SIGKILL), + "Sending myself unblockable signal"); +} +``` + +verifies that: + +* calling `Foo(5)` causes the process to die with the given error message, +* calling `NormalExit()` causes the process to print `"Success"` to stderr and + exit with exit code 0, and +* calling `KillProcess()` kills the process with signal `SIGKILL`. + +The test function body may contain other assertions and statements as well, if +necessary. + +Note that a death test only cares about three things: + +1. does `statement` abort or exit the process? +2. (in the case of `ASSERT_EXIT` and `EXPECT_EXIT`) does the exit status + satisfy `predicate`? Or (in the case of `ASSERT_DEATH` and `EXPECT_DEATH`) + is the exit status non-zero? And +3. does the stderr output match `matcher`? + +In particular, if `statement` generates an `ASSERT_*` or `EXPECT_*` failure, it +will **not** cause the death test to fail, as GoogleTest assertions don't abort +the process. + +### Death Test Naming + +{: .callout .important} +IMPORTANT: We strongly recommend you to follow the convention of naming your +**test suite** (not test) `*DeathTest` when it contains a death test, as +demonstrated in the above example. The +[Death Tests And Threads](#death-tests-and-threads) section below explains why. + +If a test fixture class is shared by normal tests and death tests, you can use +`using` or `typedef` to introduce an alias for the fixture class and avoid +duplicating its code: + +```c++ +class FooTest : public testing::Test { ... }; + +using FooDeathTest = FooTest; + +TEST_F(FooTest, DoesThis) { + // normal test +} + +TEST_F(FooDeathTest, DoesThat) { + // death test +} +``` + +### Regular Expression Syntax + +When built with Bazel and using Abseil, GoogleTest uses the +[RE2](https://github.com/google/re2/wiki/Syntax) syntax. Otherwise, for POSIX +systems (Linux, Cygwin, Mac), GoogleTest uses the +[POSIX extended regular expression](http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04) +syntax. To learn about POSIX syntax, you may want to read this +[Wikipedia entry](http://en.wikipedia.org/wiki/Regular_expression#POSIX_extended). + +On Windows, GoogleTest uses its own simple regular expression implementation. It +lacks many features. For example, we don't support union (`"x|y"`), grouping +(`"(xy)"`), brackets (`"[xy]"`), and repetition count (`"x{5,7}"`), among +others. Below is what we do support (`A` denotes a literal character, period +(`.`), or a single `\\ ` escape sequence; `x` and `y` denote regular +expressions.): + +Expression | Meaning +---------- | -------------------------------------------------------------- +`c` | matches any literal character `c` +`\\d` | matches any decimal digit +`\\D` | matches any character that's not a decimal digit +`\\f` | matches `\f` +`\\n` | matches `\n` +`\\r` | matches `\r` +`\\s` | matches any ASCII whitespace, including `\n` +`\\S` | matches any character that's not a whitespace +`\\t` | matches `\t` +`\\v` | matches `\v` +`\\w` | matches any letter, `_`, or decimal digit +`\\W` | matches any character that `\\w` doesn't match +`\\c` | matches any literal character `c`, which must be a punctuation +`.` | matches any single character except `\n` +`A?` | matches 0 or 1 occurrences of `A` +`A*` | matches 0 or many occurrences of `A` +`A+` | matches 1 or many occurrences of `A` +`^` | matches the beginning of a string (not that of each line) +`$` | matches the end of a string (not that of each line) +`xy` | matches `x` followed by `y` + +To help you determine which capability is available on your system, GoogleTest +defines macros to govern which regular expression it is using. The macros are: +`GTEST_USES_SIMPLE_RE=1` or `GTEST_USES_POSIX_RE=1`. If you want your death +tests to work in all cases, you can either `#if` on these macros or use the more +limited syntax only. + +### How It Works + +See [Death Assertions](reference/assertions.md#death) in the Assertions +Reference. + +### Death Tests And Threads + +The reason for the two death test styles has to do with thread safety. Due to +well-known problems with forking in the presence of threads, death tests should +be run in a single-threaded context. Sometimes, however, it isn't feasible to +arrange that kind of environment. For example, statically-initialized modules +may start threads before main is ever reached. Once threads have been created, +it may be difficult or impossible to clean them up. + +GoogleTest has three features intended to raise awareness of threading issues. + +1. A warning is emitted if multiple threads are running when a death test is + encountered. +2. Test suites with a name ending in "DeathTest" are run before all other + tests. +3. It uses `clone()` instead of `fork()` to spawn the child process on Linux + (`clone()` is not available on Cygwin and Mac), as `fork()` is more likely + to cause the child to hang when the parent process has multiple threads. + +It's perfectly fine to create threads inside a death test statement; they are +executed in a separate process and cannot affect the parent. + +### Death Test Styles + +The "threadsafe" death test style was introduced in order to help mitigate the +risks of testing in a possibly multithreaded environment. It trades increased +test execution time (potentially dramatically so) for improved thread safety. + +The automated testing framework does not set the style flag. You can choose a +particular style of death tests by setting the flag programmatically: + +```c++ +GTEST_FLAG_SET(death_test_style, "threadsafe"); +``` + +You can do this in `main()` to set the style for all death tests in the binary, +or in individual tests. Recall that flags are saved before running each test and +restored afterwards, so you need not do that yourself. For example: + +```c++ +int main(int argc, char** argv) { + testing::InitGoogleTest(&argc, argv); + GTEST_FLAG_SET(death_test_style, "fast"); + return RUN_ALL_TESTS(); +} + +TEST(MyDeathTest, TestOne) { + GTEST_FLAG_SET(death_test_style, "threadsafe"); + // This test is run in the "threadsafe" style: + ASSERT_DEATH(ThisShouldDie(), ""); +} + +TEST(MyDeathTest, TestTwo) { + // This test is run in the "fast" style: + ASSERT_DEATH(ThisShouldDie(), ""); +} +``` + +### Caveats + +The `statement` argument of `ASSERT_EXIT()` can be any valid C++ statement. If +it leaves the current function via a `return` statement or by throwing an +exception, the death test is considered to have failed. Some GoogleTest macros +may return from the current function (e.g. `ASSERT_TRUE()`), so be sure to avoid +them in `statement`. + +Since `statement` runs in the child process, any in-memory side effect (e.g. +modifying a variable, releasing memory, etc) it causes will *not* be observable +in the parent process. In particular, if you release memory in a death test, +your program will fail the heap check as the parent process will never see the +memory reclaimed. To solve this problem, you can + +1. try not to free memory in a death test; +2. free the memory again in the parent process; or +3. do not use the heap checker in your program. + +Due to an implementation detail, you cannot place multiple death test assertions +on the same line; otherwise, compilation will fail with an unobvious error +message. + +Despite the improved thread safety afforded by the "threadsafe" style of death +test, thread problems such as deadlock are still possible in the presence of +handlers registered with `pthread_atfork(3)`. + +## Using Assertions in Sub-routines + +{: .callout .note} +Note: If you want to put a series of test assertions in a subroutine to check +for a complex condition, consider using +[a custom GMock matcher](gmock_cook_book.md#NewMatchers) instead. This lets you +provide a more readable error message in case of failure and avoid all of the +issues described below. + +### Adding Traces to Assertions + +If a test sub-routine is called from several places, when an assertion inside it +fails, it can be hard to tell which invocation of the sub-routine the failure is +from. You can alleviate this problem using extra logging or custom failure +messages, but that usually clutters up your tests. A better solution is to use +the `SCOPED_TRACE` macro or the `ScopedTrace` utility: + +```c++ +SCOPED_TRACE(message); +``` + +```c++ +ScopedTrace trace("file_path", line_number, message); +``` + +where `message` can be anything streamable to `std::ostream`. `SCOPED_TRACE` +macro will cause the current file name, line number, and the given message to be +added in every failure message. `ScopedTrace` accepts explicit file name and +line number in arguments, which is useful for writing test helpers. The effect +will be undone when the control leaves the current lexical scope. + +For example, + +```c++ +10: void Sub1(int n) { +11: EXPECT_EQ(Bar(n), 1); +12: EXPECT_EQ(Bar(n + 1), 2); +13: } +14: +15: TEST(FooTest, Bar) { +16: { +17: SCOPED_TRACE("A"); // This trace point will be included in +18: // every failure in this scope. +19: Sub1(1); +20: } +21: // Now it won't. +22: Sub1(9); +23: } +``` + +could result in messages like these: + +```none +path/to/foo_test.cc:11: Failure +Value of: Bar(n) +Expected: 1 + Actual: 2 +Google Test trace: +path/to/foo_test.cc:17: A + +path/to/foo_test.cc:12: Failure +Value of: Bar(n + 1) +Expected: 2 + Actual: 3 +``` + +Without the trace, it would've been difficult to know which invocation of +`Sub1()` the two failures come from respectively. (You could add an extra +message to each assertion in `Sub1()` to indicate the value of `n`, but that's +tedious.) + +Some tips on using `SCOPED_TRACE`: + +1. With a suitable message, it's often enough to use `SCOPED_TRACE` at the + beginning of a sub-routine, instead of at each call site. +2. When calling sub-routines inside a loop, make the loop iterator part of the + message in `SCOPED_TRACE` such that you can know which iteration the failure + is from. +3. Sometimes the line number of the trace point is enough for identifying the + particular invocation of a sub-routine. In this case, you don't have to + choose a unique message for `SCOPED_TRACE`. You can simply use `""`. +4. You can use `SCOPED_TRACE` in an inner scope when there is one in the outer + scope. In this case, all active trace points will be included in the failure + messages, in reverse order they are encountered. +5. The trace dump is clickable in Emacs - hit `return` on a line number and + you'll be taken to that line in the source file! + +### Propagating Fatal Failures + +A common pitfall when using `ASSERT_*` and `FAIL*` is not understanding that +when they fail they only abort the _current function_, not the entire test. For +example, the following test will segfault: + +```c++ +void Subroutine() { + // Generates a fatal failure and aborts the current function. + ASSERT_EQ(1, 2); + + // The following won't be executed. + ... +} + +TEST(FooTest, Bar) { + Subroutine(); // The intended behavior is for the fatal failure + // in Subroutine() to abort the entire test. + + // The actual behavior: the function goes on after Subroutine() returns. + int* p = nullptr; + *p = 3; // Segfault! +} +``` + +To alleviate this, GoogleTest provides three different solutions. You could use +either exceptions, the `(ASSERT|EXPECT)_NO_FATAL_FAILURE` assertions or the +`HasFatalFailure()` function. They are described in the following two +subsections. + +#### Asserting on Subroutines with an exception + +The following code can turn ASSERT-failure into an exception: + +```c++ +class ThrowListener : public testing::EmptyTestEventListener { + void OnTestPartResult(const testing::TestPartResult& result) override { + if (result.type() == testing::TestPartResult::kFatalFailure) { + throw testing::AssertionException(result); + } + } +}; +int main(int argc, char** argv) { + ... + testing::UnitTest::GetInstance()->listeners().Append(new ThrowListener); + return RUN_ALL_TESTS(); +} +``` + +This listener should be added after other listeners if you have any, otherwise +they won't see failed `OnTestPartResult`. + +#### Asserting on Subroutines + +As shown above, if your test calls a subroutine that has an `ASSERT_*` failure +in it, the test will continue after the subroutine returns. This may not be what +you want. + +Often people want fatal failures to propagate like exceptions. For that +GoogleTest offers the following macros: + +Fatal assertion | Nonfatal assertion | Verifies +------------------------------------- | ------------------------------------- | -------- +`ASSERT_NO_FATAL_FAILURE(statement);` | `EXPECT_NO_FATAL_FAILURE(statement);` | `statement` doesn't generate any new fatal failures in the current thread. + +Only failures in the thread that executes the assertion are checked to determine +the result of this type of assertions. If `statement` creates new threads, +failures in these threads are ignored. + +Examples: + +```c++ +ASSERT_NO_FATAL_FAILURE(Foo()); + +int i; +EXPECT_NO_FATAL_FAILURE({ + i = Bar(); +}); +``` + +Assertions from multiple threads are currently not supported on Windows. + +#### Checking for Failures in the Current Test + +`HasFatalFailure()` in the `::testing::Test` class returns `true` if an +assertion in the current test has suffered a fatal failure. This allows +functions to catch fatal failures in a sub-routine and return early. + +```c++ +class Test { + public: + ... + static bool HasFatalFailure(); +}; +``` + +The typical usage, which basically simulates the behavior of a thrown exception, +is: + +```c++ +TEST(FooTest, Bar) { + Subroutine(); + // Aborts if Subroutine() had a fatal failure. + if (HasFatalFailure()) return; + + // The following won't be executed. + ... +} +``` + +If `HasFatalFailure()` is used outside of `TEST()` , `TEST_F()` , or a test +fixture, you must add the `::testing::Test::` prefix, as in: + +```c++ +if (testing::Test::HasFatalFailure()) return; +``` + +Similarly, `HasNonfatalFailure()` returns `true` if the current test has at +least one non-fatal failure, and `HasFailure()` returns `true` if the current +test has at least one failure of either kind. + +## Logging Additional Information + +In your test code, you can call `RecordProperty("key", value)` to log additional +information, where `value` can be either a string or an `int`. The *last* value +recorded for a key will be emitted to the +[XML output](#generating-an-xml-report) if you specify one. For example, the +test + +```c++ +TEST_F(WidgetUsageTest, MinAndMaxWidgets) { + RecordProperty("MaximumWidgets", ComputeMaxUsage()); + RecordProperty("MinimumWidgets", ComputeMinUsage()); +} +``` + +will output XML like this: + +```xml + ... + + ... +``` + +{: .callout .note} +> NOTE: +> +> * `RecordProperty()` is a static member of the `Test` class. Therefore it +> needs to be prefixed with `::testing::Test::` if used outside of the +> `TEST` body and the test fixture class. +> * *`key`* must be a valid XML attribute name, and cannot conflict with the +> ones already used by GoogleTest (`name`, `status`, `time`, `classname`, +> `type_param`, and `value_param`). +> * Calling `RecordProperty()` outside of the lifespan of a test is allowed. +> If it's called outside of a test but between a test suite's +> `SetUpTestSuite()` and `TearDownTestSuite()` methods, it will be +> attributed to the XML element for the test suite. If it's called outside +> of all test suites (e.g. in a test environment), it will be attributed to +> the top-level XML element. + +## Sharing Resources Between Tests in the Same Test Suite + +GoogleTest creates a new test fixture object for each test in order to make +tests independent and easier to debug. However, sometimes tests use resources +that are expensive to set up, making the one-copy-per-test model prohibitively +expensive. + +If the tests don't change the resource, there's no harm in their sharing a +single resource copy. So, in addition to per-test set-up/tear-down, GoogleTest +also supports per-test-suite set-up/tear-down. To use it: + +1. In your test fixture class (say `FooTest` ), declare as `static` some member + variables to hold the shared resources. +2. Outside your test fixture class (typically just below it), define those + member variables, optionally giving them initial values. +3. In the same test fixture class, define a `static void SetUpTestSuite()` + function (remember not to spell it as **`SetupTestSuite`** with a small + `u`!) to set up the shared resources and a `static void TearDownTestSuite()` + function to tear them down. + +That's it! GoogleTest automatically calls `SetUpTestSuite()` before running the +*first test* in the `FooTest` test suite (i.e. before creating the first +`FooTest` object), and calls `TearDownTestSuite()` after running the *last test* +in it (i.e. after deleting the last `FooTest` object). In between, the tests can +use the shared resources. + +Remember that the test order is undefined, so your code can't depend on a test +preceding or following another. Also, the tests must either not modify the state +of any shared resource, or, if they do modify the state, they must restore the +state to its original value before passing control to the next test. + +Note that `SetUpTestSuite()` may be called multiple times for a test fixture +class that has derived classes, so you should not expect code in the function +body to be run only once. Also, derived classes still have access to shared +resources defined as static members, so careful consideration is needed when +managing shared resources to avoid memory leaks if shared resources are not +properly cleaned up in `TearDownTestSuite()`. + +Here's an example of per-test-suite set-up and tear-down: + +```c++ +class FooTest : public testing::Test { + protected: + // Per-test-suite set-up. + // Called before the first test in this test suite. + // Can be omitted if not needed. + static void SetUpTestSuite() { + shared_resource_ = new ...; + + // If `shared_resource_` is **not deleted** in `TearDownTestSuite()`, + // reallocation should be prevented because `SetUpTestSuite()` may be called + // in subclasses of FooTest and lead to memory leak. + // + // if (shared_resource_ == nullptr) { + // shared_resource_ = new ...; + // } + } + + // Per-test-suite tear-down. + // Called after the last test in this test suite. + // Can be omitted if not needed. + static void TearDownTestSuite() { + delete shared_resource_; + shared_resource_ = nullptr; + } + + // You can define per-test set-up logic as usual. + void SetUp() override { ... } + + // You can define per-test tear-down logic as usual. + void TearDown() override { ... } + + // Some expensive resource shared by all tests. + static T* shared_resource_; +}; + +T* FooTest::shared_resource_ = nullptr; + +TEST_F(FooTest, Test1) { + ... you can refer to shared_resource_ here ... +} + +TEST_F(FooTest, Test2) { + ... you can refer to shared_resource_ here ... +} +``` + +{: .callout .note} +NOTE: Though the above code declares `SetUpTestSuite()` protected, it may +sometimes be necessary to declare it public, such as when using it with +`TEST_P`. + +## Global Set-Up and Tear-Down + +Just as you can do set-up and tear-down at the test level and the test suite +level, you can also do it at the test program level. Here's how. + +First, you subclass the `::testing::Environment` class to define a test +environment, which knows how to set-up and tear-down: + +```c++ +class Environment : public ::testing::Environment { + public: + ~Environment() override {} + + // Override this to define how to set up the environment. + void SetUp() override {} + + // Override this to define how to tear down the environment. + void TearDown() override {} +}; +``` + +Then, you register an instance of your environment class with GoogleTest by +calling the `::testing::AddGlobalTestEnvironment()` function: + +```c++ +Environment* AddGlobalTestEnvironment(Environment* env); +``` + +Now, when `RUN_ALL_TESTS()` is called, it first calls the `SetUp()` method of +each environment object, then runs the tests if none of the environments +reported fatal failures and `GTEST_SKIP()` was not called. `RUN_ALL_TESTS()` +always calls `TearDown()` with each environment object, regardless of whether or +not the tests were run. + +It's OK to register multiple environment objects. In this suite, their `SetUp()` +will be called in the order they are registered, and their `TearDown()` will be +called in the reverse order. + +Note that GoogleTest takes ownership of the registered environment objects. +Therefore **do not delete them** by yourself. + +You should call `AddGlobalTestEnvironment()` before `RUN_ALL_TESTS()` is called, +probably in `main()`. If you use `gtest_main`, you need to call this before +`main()` starts for it to take effect. One way to do this is to define a global +variable like this: + +```c++ +testing::Environment* const foo_env = + testing::AddGlobalTestEnvironment(new FooEnvironment); +``` + +However, we strongly recommend you to write your own `main()` and call +`AddGlobalTestEnvironment()` there, as relying on initialization of global +variables makes the code harder to read and may cause problems when you register +multiple environments from different translation units and the environments have +dependencies among them (remember that the compiler doesn't guarantee the order +in which global variables from different translation units are initialized). + +## Value-Parameterized Tests + +*Value-parameterized tests* allow you to test your code with different +parameters without writing multiple copies of the same test. This is useful in a +number of situations, for example: + +* You have a piece of code whose behavior is affected by one or more + command-line flags. You want to make sure your code performs correctly for + various values of those flags. +* You want to test different implementations of an OO interface. +* You want to test your code over various inputs (a.k.a. data-driven testing). + This feature is easy to abuse, so please exercise your good sense when doing + it! + +### How to Write Value-Parameterized Tests + +To write value-parameterized tests, first you should define a fixture class. It +must be derived from both `testing::Test` and `testing::WithParamInterface` +(the latter is a pure interface), where `T` is the type of your parameter +values. For convenience, you can just derive the fixture class from +`testing::TestWithParam`, which itself is derived from both `testing::Test` +and `testing::WithParamInterface`. `T` can be any copyable type. If it's a +raw pointer, you are responsible for managing the lifespan of the pointed +values. + +{: .callout .note} +NOTE: If your test fixture defines `SetUpTestSuite()` or `TearDownTestSuite()` +they must be declared **public** rather than **protected** in order to use +`TEST_P`. + +```c++ +class FooTest : + public testing::TestWithParam { + // You can implement all the usual fixture class members here. + // To access the test parameter, call GetParam() from class + // TestWithParam. +}; + +// Or, when you want to add parameters to a pre-existing fixture class: +class BaseTest : public testing::Test { + ... +}; +class BarTest : public BaseTest, + public testing::WithParamInterface { + ... +}; +``` + +Then, use the `TEST_P` macro to define as many test patterns using this fixture +as you want. The `_P` suffix is for "parameterized" or "pattern", whichever you +prefer to think. + +```c++ +TEST_P(FooTest, DoesBlah) { + // Inside a test, access the test parameter with the GetParam() method + // of the TestWithParam class: + EXPECT_TRUE(foo.Blah(GetParam())); + ... +} + +TEST_P(FooTest, HasBlahBlah) { + ... +} +``` + +Finally, you can use the `INSTANTIATE_TEST_SUITE_P` macro to instantiate the +test suite with any set of parameters you want. GoogleTest defines a number of +functions for generating test parameters—see details at +[`INSTANTIATE_TEST_SUITE_P`](reference/testing.md#INSTANTIATE_TEST_SUITE_P) in +the Testing Reference. + +For example, the following statement will instantiate tests from the `FooTest` +test suite each with parameter values `"meeny"`, `"miny"`, and `"moe"` using the +[`Values`](reference/testing.md#param-generators) parameter generator: + +```c++ +INSTANTIATE_TEST_SUITE_P(MeenyMinyMoe, + FooTest, + testing::Values("meeny", "miny", "moe")); +``` + +{: .callout .note} +NOTE: The code above must be placed at global or namespace scope, not at +function scope. + +The first argument to `INSTANTIATE_TEST_SUITE_P` is a unique name for the +instantiation of the test suite. The next argument is the name of the test +pattern, and the last is the +[parameter generator](reference/testing.md#param-generators). + +The parameter generator expression is not evaluated until GoogleTest is +initialized (via `InitGoogleTest()`). Any prior initialization done in the +`main` function will be accessible from the parameter generator, for example, +the results of flag parsing. + +You can instantiate a test pattern more than once, so to distinguish different +instances of the pattern, the instantiation name is added as a prefix to the +actual test suite name. Remember to pick unique prefixes for different +instantiations. The tests from the instantiation above will have these names: + +* `MeenyMinyMoe/FooTest.DoesBlah/0` for `"meeny"` +* `MeenyMinyMoe/FooTest.DoesBlah/1` for `"miny"` +* `MeenyMinyMoe/FooTest.DoesBlah/2` for `"moe"` +* `MeenyMinyMoe/FooTest.HasBlahBlah/0` for `"meeny"` +* `MeenyMinyMoe/FooTest.HasBlahBlah/1` for `"miny"` +* `MeenyMinyMoe/FooTest.HasBlahBlah/2` for `"moe"` + +You can use these names in [`--gtest_filter`](#running-a-subset-of-the-tests). + +The following statement will instantiate all tests from `FooTest` again, each +with parameter values `"cat"` and `"dog"` using the +[`ValuesIn`](reference/testing.md#param-generators) parameter generator: + +```c++ +constexpr absl::string_view kPets[] = {"cat", "dog"}; +INSTANTIATE_TEST_SUITE_P(Pets, FooTest, testing::ValuesIn(kPets)); +``` + +The tests from the instantiation above will have these names: + +* `Pets/FooTest.DoesBlah/0` for `"cat"` +* `Pets/FooTest.DoesBlah/1` for `"dog"` +* `Pets/FooTest.HasBlahBlah/0` for `"cat"` +* `Pets/FooTest.HasBlahBlah/1` for `"dog"` + +Please note that `INSTANTIATE_TEST_SUITE_P` will instantiate *all* tests in the +given test suite, whether their definitions come before or *after* the +`INSTANTIATE_TEST_SUITE_P` statement. + +Additionally, by default, every `TEST_P` without a corresponding +`INSTANTIATE_TEST_SUITE_P` causes a failing test in test suite +`GoogleTestVerification`. If you have a test suite where that omission is not an +error, for example it is in a library that may be linked in for other reasons or +where the list of test cases is dynamic and may be empty, then this check can be +suppressed by tagging the test suite: + +```c++ +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(FooTest); +``` + +You can see [sample7_unittest.cc] and [sample8_unittest.cc] for more examples. + +[sample7_unittest.cc]: https://github.com/google/googletest/blob/main/googletest/samples/sample7_unittest.cc "Parameterized Test example" +[sample8_unittest.cc]: https://github.com/google/googletest/blob/main/googletest/samples/sample8_unittest.cc "Parameterized Test example with multiple parameters" + +### Creating Value-Parameterized Abstract Tests + +In the above, we define and instantiate `FooTest` in the *same* source file. +Sometimes you may want to define value-parameterized tests in a library and let +other people instantiate them later. This pattern is known as *abstract tests*. +As an example of its application, when you are designing an interface you can +write a standard suite of abstract tests (perhaps using a factory function as +the test parameter) that all implementations of the interface are expected to +pass. When someone implements the interface, they can instantiate your suite to +get all the interface-conformance tests for free. + +To define abstract tests, you should organize your code like this: + +1. Put the definition of the parameterized test fixture class (e.g. `FooTest`) + in a header file, say `foo_param_test.h`. Think of this as *declaring* your + abstract tests. +2. Put the `TEST_P` definitions in `foo_param_test.cc`, which includes + `foo_param_test.h`. Think of this as *implementing* your abstract tests. + +Once they are defined, you can instantiate them by including `foo_param_test.h`, +invoking `INSTANTIATE_TEST_SUITE_P()`, and depending on the library target that +contains `foo_param_test.cc`. You can instantiate the same abstract test suite +multiple times, possibly in different source files. + +### Specifying Names for Value-Parameterized Test Parameters + +The optional last argument to `INSTANTIATE_TEST_SUITE_P()` allows the user to +specify a function or functor that generates custom test name suffixes based on +the test parameters. The function should accept one argument of type +`testing::TestParamInfo`, and return `std::string`. + +`testing::PrintToStringParamName` is a builtin test suffix generator that +returns the value of `testing::PrintToString(GetParam())`. It does not work for +`std::string` or C strings. + +{: .callout .note} +NOTE: test names must be non-empty, unique, and may only contain ASCII +alphanumeric characters. In particular, they +[should not contain underscores](faq.md#why-should-test-suite-names-and-test-names-not-contain-underscore) + +```c++ +class MyTestSuite : public testing::TestWithParam {}; + +TEST_P(MyTestSuite, MyTest) +{ + std::cout << "Example Test Param: " << GetParam() << std::endl; +} + +INSTANTIATE_TEST_SUITE_P(MyGroup, MyTestSuite, testing::Range(0, 10), + testing::PrintToStringParamName()); +``` + +Providing a custom functor allows for more control over test parameter name +generation, especially for types where the automatic conversion does not +generate helpful parameter names (e.g. strings as demonstrated above). The +following example illustrates this for multiple parameters, an enumeration type +and a string, and also demonstrates how to combine generators. It uses a lambda +for conciseness: + +```c++ +enum class MyType { MY_FOO = 0, MY_BAR = 1 }; + +class MyTestSuite : public testing::TestWithParam> { +}; + +INSTANTIATE_TEST_SUITE_P( + MyGroup, MyTestSuite, + testing::Combine( + testing::Values(MyType::MY_FOO, MyType::MY_BAR), + testing::Values("A", "B")), + [](const testing::TestParamInfo& info) { + std::string name = absl::StrCat( + std::get<0>(info.param) == MyType::MY_FOO ? "Foo" : "Bar", + std::get<1>(info.param)); + absl::c_replace_if(name, [](char c) { return !std::isalnum(c); }, '_'); + return name; + }); +``` + +## Typed Tests + +Suppose you have multiple implementations of the same interface and want to make +sure that all of them satisfy some common requirements. Or, you may have defined +several types that are supposed to conform to the same "concept" and you want to +verify it. In both cases, you want the same test logic repeated for different +types. + +While you can write one `TEST` or `TEST_F` for each type you want to test (and +you may even factor the test logic into a function template that you invoke from +the `TEST`), it's tedious and doesn't scale: if you want `m` tests over `n` +types, you'll end up writing `m*n` `TEST`s. + +*Typed tests* allow you to repeat the same test logic over a list of types. You +only need to write the test logic once, although you must know the type list +when writing typed tests. Here's how you do it: + +First, define a fixture class template. It should be parameterized by a type. +Remember to derive it from `::testing::Test`: + +```c++ +template +class FooTest : public testing::Test { + public: + ... + using List = std::list; + static T shared_; + T value_; +}; +``` + +Next, associate a list of types with the test suite, which will be repeated for +each type in the list: + +```c++ +using MyTypes = ::testing::Types; +TYPED_TEST_SUITE(FooTest, MyTypes); +``` + +The type alias (`using` or `typedef`) is necessary for the `TYPED_TEST_SUITE` +macro to parse correctly. Otherwise the compiler will think that each comma in +the type list introduces a new macro argument. + +Then, use `TYPED_TEST()` instead of `TEST_F()` to define a typed test for this +test suite. You can repeat this as many times as you want: + +```c++ +TYPED_TEST(FooTest, DoesBlah) { + // Inside a test, refer to the special name TypeParam to get the type + // parameter. Since we are inside a derived class template, C++ requires + // us to visit the members of FooTest via 'this'. + TypeParam n = this->value_; + + // To visit static members of the fixture, add the 'TestFixture::' + // prefix. + n += TestFixture::shared_; + + // To refer to typedefs in the fixture, add the 'typename TestFixture::' + // prefix. The 'typename' is required to satisfy the compiler. + typename TestFixture::List values; + + values.push_back(n); + ... +} + +TYPED_TEST(FooTest, HasPropertyA) { ... } +``` + +You can see [sample6_unittest.cc] for a complete example. + +[sample6_unittest.cc]: https://github.com/google/googletest/blob/main/googletest/samples/sample6_unittest.cc "Typed Test example" + +## Type-Parameterized Tests + +*Type-parameterized tests* are like typed tests, except that they don't require +you to know the list of types ahead of time. Instead, you can define the test +logic first and instantiate it with different type lists later. You can even +instantiate it more than once in the same program. + +If you are designing an interface or concept, you can define a suite of +type-parameterized tests to verify properties that any valid implementation of +the interface/concept should have. Then, the author of each implementation can +just instantiate the test suite with their type to verify that it conforms to +the requirements, without having to write similar tests repeatedly. Here's an +example: + +First, define a fixture class template, as we did with typed tests: + +```c++ +template +class FooTest : public testing::Test { + void DoSomethingInteresting(); + ... +}; +``` + +Next, declare that you will define a type-parameterized test suite: + +```c++ +TYPED_TEST_SUITE_P(FooTest); +``` + +Then, use `TYPED_TEST_P()` to define a type-parameterized test. You can repeat +this as many times as you want: + +```c++ +TYPED_TEST_P(FooTest, DoesBlah) { + // Inside a test, refer to TypeParam to get the type parameter. + TypeParam n = 0; + + // You will need to use `this` explicitly to refer to fixture members. + this->DoSomethingInteresting() + ... +} + +TYPED_TEST_P(FooTest, HasPropertyA) { ... } +``` + +Now the tricky part: you need to register all test patterns using the +`REGISTER_TYPED_TEST_SUITE_P` macro before you can instantiate them. The first +argument of the macro is the test suite name; the rest are the names of the +tests in this test suite: + +```c++ +REGISTER_TYPED_TEST_SUITE_P(FooTest, + DoesBlah, HasPropertyA); +``` + +Finally, you are free to instantiate the pattern with the types you want. If you +put the above code in a header file, you can `#include` it in multiple C++ +source files and instantiate it multiple times. + +```c++ +using MyTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, MyTypes); +``` + +To distinguish different instances of the pattern, the first argument to the +`INSTANTIATE_TYPED_TEST_SUITE_P` macro is a prefix that will be added to the +actual test suite name. Remember to pick unique prefixes for different +instances. + +In the special case where the type list contains only one type, you can write +that type directly without `::testing::Types<...>`, like this: + +```c++ +INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, int); +``` + +You can see [sample6_unittest.cc] for a complete example. + +## Testing Private Code + +If you change your software's internal implementation, your tests should not +break as long as the change is not observable by users. Therefore, **per the +black-box testing principle, most of the time you should test your code through +its public interfaces.** + +**If you still find yourself needing to test internal implementation code, +consider if there's a better design.** The desire to test internal +implementation is often a sign that the class is doing too much. Consider +extracting an implementation class, and testing it. Then use that implementation +class in the original class. + +If you absolutely have to test non-public interface code though, you can. There +are two cases to consider: + +* Static functions ( *not* the same as static member functions!) or unnamed + namespaces, and +* Private or protected class members + +To test them, we use the following special techniques: + +* Both static functions and definitions/declarations in an unnamed namespace + are only visible within the same translation unit. To test them, you can + `#include` the entire `.cc` file being tested in your `*_test.cc` file. + (#including `.cc` files is not a good way to reuse code - you should not do + this in production code!) + + However, a better approach is to move the private code into the + `foo::internal` namespace, where `foo` is the namespace your project + normally uses, and put the private declarations in a `*-internal.h` file. + Your production `.cc` files and your tests are allowed to include this + internal header, but your clients are not. This way, you can fully test your + internal implementation without leaking it to your clients. + +* Private class members are only accessible from within the class or by + friends. To access a class' private members, you can declare your test + fixture as a friend to the class and define accessors in your fixture. Tests + using the fixture can then access the private members of your production + class via the accessors in the fixture. Note that even though your fixture + is a friend to your production class, your tests are not automatically + friends to it, as they are technically defined in sub-classes of the + fixture. + + Another way to test private members is to refactor them into an + implementation class, which is then declared in a `*-internal.h` file. Your + clients aren't allowed to include this header but your tests can. Such is + called the + [Pimpl](https://www.gamedev.net/articles/programming/general-and-gameplay-programming/the-c-pimpl-r1794/) + (Private Implementation) idiom. + + Or, you can declare an individual test as a friend of your class by adding + this line in the class body: + + ```c++ + FRIEND_TEST(TestSuiteName, TestName); + ``` + + For example, + + ```c++ + // foo.h + class Foo { + ... + private: + FRIEND_TEST(FooTest, BarReturnsZeroOnNull); + + int Bar(void* x); + }; + + // foo_test.cc + ... + TEST(FooTest, BarReturnsZeroOnNull) { + Foo foo; + EXPECT_EQ(foo.Bar(NULL), 0); // Uses Foo's private member Bar(). + } + ``` + + Pay special attention when your class is defined in a namespace. If you want + your test fixtures and tests to be friends of your class, then they must be + defined in the exact same namespace (no anonymous or inline namespaces). + + For example, if the code to be tested looks like: + + ```c++ + namespace my_namespace { + + class Foo { + friend class FooTest; + FRIEND_TEST(FooTest, Bar); + FRIEND_TEST(FooTest, Baz); + ... definition of the class Foo ... + }; + + } // namespace my_namespace + ``` + + Your test code should be something like: + + ```c++ + namespace my_namespace { + + class FooTest : public testing::Test { + protected: + ... + }; + + TEST_F(FooTest, Bar) { ... } + TEST_F(FooTest, Baz) { ... } + + } // namespace my_namespace + ``` + +## "Catching" Failures + +If you are building a testing utility on top of GoogleTest, you'll want to test +your utility. What framework would you use to test it? GoogleTest, of course. + +The challenge is to verify that your testing utility reports failures correctly. +In frameworks that report a failure by throwing an exception, you could catch +the exception and assert on it. But GoogleTest doesn't use exceptions, so how do +we test that a piece of code generates an expected failure? + +`"gtest/gtest-spi.h"` contains some constructs to do this. +After #including this header, you can use + +```c++ + EXPECT_FATAL_FAILURE(statement, substring); +``` + +to assert that `statement` generates a fatal (e.g. `ASSERT_*`) failure in the +current thread whose message contains the given `substring`, or use + +```c++ + EXPECT_NONFATAL_FAILURE(statement, substring); +``` + +if you are expecting a non-fatal (e.g. `EXPECT_*`) failure. + +Only failures in the current thread are checked to determine the result of this +type of expectations. If `statement` creates new threads, failures in these +threads are also ignored. If you want to catch failures in other threads as +well, use one of the following macros instead: + +```c++ + EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substring); + EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substring); +``` + +{: .callout .note} +NOTE: Assertions from multiple threads are currently not supported on Windows. + +For technical reasons, there are some caveats: + +1. You cannot stream a failure message to either macro. + +2. `statement` in `EXPECT_FATAL_FAILURE{_ON_ALL_THREADS}()` cannot reference + local non-static variables or non-static members of `this` object. + +3. `statement` in `EXPECT_FATAL_FAILURE{_ON_ALL_THREADS}()` cannot return a + value. + +## Registering tests programmatically + +The `TEST` macros handle the vast majority of all use cases, but there are few +where runtime registration logic is required. For those cases, the framework +provides the `::testing::RegisterTest` that allows callers to register arbitrary +tests dynamically. + +This is an advanced API only to be used when the `TEST` macros are insufficient. +The macros should be preferred when possible, as they avoid most of the +complexity of calling this function. + +It provides the following signature: + +```c++ +template +TestInfo* RegisterTest(const char* test_suite_name, const char* test_name, + const char* type_param, const char* value_param, + const char* file, int line, Factory factory); +``` + +The `factory` argument is a factory callable (move-constructible) object or +function pointer that creates a new instance of the Test object. It handles +ownership to the caller. The signature of the callable is `Fixture*()`, where +`Fixture` is the test fixture class for the test. All tests registered with the +same `test_suite_name` must return the same fixture type. This is checked at +runtime. + +The framework will infer the fixture class from the factory and will call the +`SetUpTestSuite` and `TearDownTestSuite` for it. + +Must be called before `RUN_ALL_TESTS()` is invoked, otherwise behavior is +undefined. + +Use case example: + +```c++ +class MyFixture : public testing::Test { + public: + // All of these optional, just like in regular macro usage. + static void SetUpTestSuite() { ... } + static void TearDownTestSuite() { ... } + void SetUp() override { ... } + void TearDown() override { ... } +}; + +class MyTest : public MyFixture { + public: + explicit MyTest(int data) : data_(data) {} + void TestBody() override { ... } + + private: + int data_; +}; + +void RegisterMyTests(const std::vector& values) { + for (int v : values) { + testing::RegisterTest( + "MyFixture", ("Test" + std::to_string(v)).c_str(), nullptr, + std::to_string(v).c_str(), + __FILE__, __LINE__, + // Important to use the fixture type as the return type here. + [=]() -> MyFixture* { return new MyTest(v); }); + } +} +... +int main(int argc, char** argv) { + testing::InitGoogleTest(&argc, argv); + std::vector values_to_test = LoadValuesFromConfig(); + RegisterMyTests(values_to_test); + ... + return RUN_ALL_TESTS(); +} +``` + +## Getting the Current Test's Name + +Sometimes a function may need to know the name of the currently running test. +For example, you may be using the `SetUp()` method of your test fixture to set +the golden file name based on which test is running. The +[`TestInfo`](reference/testing.md#TestInfo) class has this information. + +To obtain a `TestInfo` object for the currently running test, call +`current_test_info()` on the [`UnitTest`](reference/testing.md#UnitTest) +singleton object: + +```c++ + // Gets information about the currently running test. + // Do NOT delete the returned object - it's managed by the UnitTest class. + const testing::TestInfo* const test_info = + testing::UnitTest::GetInstance()->current_test_info(); + + printf("We are in test %s of test suite %s.\n", + test_info->name(), + test_info->test_suite_name()); +``` + +`current_test_info()` returns a null pointer if no test is running. In +particular, you cannot find the test suite name in `SetUpTestSuite()`, +`TearDownTestSuite()` (where you know the test suite name implicitly), or +functions called from them. + +## Extending GoogleTest by Handling Test Events + +GoogleTest provides an **event listener API** to let you receive notifications +about the progress of a test program and test failures. The events you can +listen to include the start and end of the test program, a test suite, or a test +method, among others. You may use this API to augment or replace the standard +console output, replace the XML output, or provide a completely different form +of output, such as a GUI or a database. You can also use test events as +checkpoints to implement a resource leak checker, for example. + +### Defining Event Listeners + +To define a event listener, you subclass either +[`testing::TestEventListener`](reference/testing.md#TestEventListener) or +[`testing::EmptyTestEventListener`](reference/testing.md#EmptyTestEventListener) +The former is an (abstract) interface, where *each pure virtual method can be +overridden to handle a test event* (For example, when a test starts, the +`OnTestStart()` method will be called.). The latter provides an empty +implementation of all methods in the interface, such that a subclass only needs +to override the methods it cares about. + +When an event is fired, its context is passed to the handler function as an +argument. The following argument types are used: + +* UnitTest reflects the state of the entire test program, +* TestSuite has information about a test suite, which can contain one or more + tests, +* TestInfo contains the state of a test, and +* TestPartResult represents the result of a test assertion. + +An event handler function can examine the argument it receives to find out +interesting information about the event and the test program's state. + +Here's an example: + +```c++ + class MinimalistPrinter : public testing::EmptyTestEventListener { + // Called before a test starts. + void OnTestStart(const testing::TestInfo& test_info) override { + printf("*** Test %s.%s starting.\n", + test_info.test_suite_name(), test_info.name()); + } + + // Called after a failed assertion or a SUCCESS(). + void OnTestPartResult(const testing::TestPartResult& test_part_result) override { + printf("%s in %s:%d\n%s\n", + test_part_result.failed() ? "*** Failure" : "Success", + test_part_result.file_name(), + test_part_result.line_number(), + test_part_result.summary()); + } + + // Called after a test ends. + void OnTestEnd(const testing::TestInfo& test_info) override { + printf("*** Test %s.%s ending.\n", + test_info.test_suite_name(), test_info.name()); + } + }; +``` + +### Using Event Listeners + +To use the event listener you have defined, add an instance of it to the +GoogleTest event listener list (represented by class +[`TestEventListeners`](reference/testing.md#TestEventListeners) - note the "s" +at the end of the name) in your `main()` function, before calling +`RUN_ALL_TESTS()`: + +```c++ +int main(int argc, char** argv) { + testing::InitGoogleTest(&argc, argv); + // Gets hold of the event listener list. + testing::TestEventListeners& listeners = + testing::UnitTest::GetInstance()->listeners(); + // Adds a listener to the end. GoogleTest takes the ownership. + listeners.Append(new MinimalistPrinter); + return RUN_ALL_TESTS(); +} +``` + +There's only one problem: the default test result printer is still in effect, so +its output will mingle with the output from your minimalist printer. To suppress +the default printer, just release it from the event listener list and delete it. +You can do so by adding one line: + +```c++ + ... + delete listeners.Release(listeners.default_result_printer()); + listeners.Append(new MinimalistPrinter); + return RUN_ALL_TESTS(); +``` + +Now, sit back and enjoy a completely different output from your tests. For more +details, see [sample9_unittest.cc]. + +[sample9_unittest.cc]: https://github.com/google/googletest/blob/main/googletest/samples/sample9_unittest.cc "Event listener example" + +You may append more than one listener to the list. When an `On*Start()` or +`OnTestPartResult()` event is fired, the listeners will receive it in the order +they appear in the list (since new listeners are added to the end of the list, +the default text printer and the default XML generator will receive the event +first). An `On*End()` event will be received by the listeners in the *reverse* +order. This allows output by listeners added later to be framed by output from +listeners added earlier. + +### Generating Failures in Listeners + +You may use failure-raising macros (`EXPECT_*()`, `ASSERT_*()`, `FAIL()`, etc) +when processing an event. There are some restrictions: + +1. You cannot generate any failure in `OnTestPartResult()` (otherwise it will + cause `OnTestPartResult()` to be called recursively). +2. A listener that handles `OnTestPartResult()` is not allowed to generate any + failure. + +When you add listeners to the listener list, you should put listeners that +handle `OnTestPartResult()` *before* listeners that can generate failures. This +ensures that failures generated by the latter are attributed to the right test +by the former. + +See [sample10_unittest.cc] for an example of a failure-raising listener. + +[sample10_unittest.cc]: https://github.com/google/googletest/blob/main/googletest/samples/sample10_unittest.cc "Failure-raising listener example" + +## Running Test Programs: Advanced Options + +GoogleTest test programs are ordinary executables. Once built, you can run them +directly and affect their behavior via the following environment variables +and/or command line flags. For the flags to work, your programs must call +`::testing::InitGoogleTest()` before calling `RUN_ALL_TESTS()`. + +To see a list of supported flags and their usage, please run your test program +with the `--help` flag. You can also use `-h`, `-?`, or `/?` for short. + +If an option is specified both by an environment variable and by a flag, the +latter takes precedence. + +### Selecting Tests + +#### Listing Test Names + +Sometimes it is necessary to list the available tests in a program before +running them so that a filter may be applied if needed. Including the flag +`--gtest_list_tests` overrides all other flags and lists tests in the following +format: + +```none +TestSuite1. + TestName1 + TestName2 +TestSuite2. + TestName +``` + +None of the tests listed are actually run if the flag is provided. There is no +corresponding environment variable for this flag. + +#### Running a Subset of the Tests + +By default, a GoogleTest program runs all tests the user has defined. Sometimes, +you want to run only a subset of the tests (e.g. for debugging or quickly +verifying a change). If you set the `GTEST_FILTER` environment variable or the +`--gtest_filter` flag to a filter string, GoogleTest will only run the tests +whose full names (in the form of `TestSuiteName.TestName`) match the filter. + +The format of a filter is a '`:`'-separated list of wildcard patterns (called +the *positive patterns*) optionally followed by a '`-`' and another +'`:`'-separated pattern list (called the *negative patterns*). A test matches +the filter if and only if it matches any of the positive patterns but does not +match any of the negative patterns. + +A pattern may contain `'*'` (matches any string) or `'?'` (matches any single +character). For convenience, the filter `'*-NegativePatterns'` can be also +written as `'-NegativePatterns'`. + +For example: + +* `./foo_test` Has no flag, and thus runs all its tests. +* `./foo_test --gtest_filter=*` Also runs everything, due to the single + match-everything `*` value. +* `./foo_test --gtest_filter=FooTest.*` Runs everything in test suite + `FooTest` . +* `./foo_test --gtest_filter=*Null*:*Constructor*` Runs any test whose full + name contains either `"Null"` or `"Constructor"` . +* `./foo_test --gtest_filter=-*DeathTest.*` Runs all non-death tests. +* `./foo_test --gtest_filter=FooTest.*-FooTest.Bar` Runs everything in test + suite `FooTest` except `FooTest.Bar`. +* `./foo_test --gtest_filter=FooTest.*:BarTest.*-FooTest.Bar:BarTest.Foo` Runs + everything in test suite `FooTest` except `FooTest.Bar` and everything in + test suite `BarTest` except `BarTest.Foo`. + +#### Stop test execution upon first failure + +By default, a GoogleTest program runs all tests the user has defined. In some +cases (e.g. iterative test development & execution) it may be desirable stop +test execution upon first failure (trading improved latency for completeness). +If `GTEST_FAIL_FAST` environment variable or `--gtest_fail_fast` flag is set, +the test runner will stop execution as soon as the first test failure is found. + +#### Temporarily Disabling Tests + +If you have a broken test that you cannot fix right away, you can add the +`DISABLED_` prefix to its name. This will exclude it from execution. This is +better than commenting out the code or using `#if 0`, as disabled tests are +still compiled (and thus won't rot). + +If you need to disable all tests in a test suite, you can either add `DISABLED_` +to the front of the name of each test, or alternatively add it to the front of +the test suite name. + +For example, the following tests won't be run by GoogleTest, even though they +will still be compiled: + +```c++ +// Tests that Foo does Abc. +TEST(FooTest, DISABLED_DoesAbc) { ... } + +class DISABLED_BarTest : public testing::Test { ... }; + +// Tests that Bar does Xyz. +TEST_F(DISABLED_BarTest, DoesXyz) { ... } +``` + +{: .callout .note} +NOTE: This feature should only be used for temporary pain-relief. You still have +to fix the disabled tests at a later date. As a reminder, GoogleTest will print +a banner warning you if a test program contains any disabled tests. + +{: .callout .tip} +TIP: You can easily count the number of disabled tests you have using +`grep`. This number can be used as a metric for +improving your test quality. + +#### Temporarily Enabling Disabled Tests + +To include disabled tests in test execution, just invoke the test program with +the `--gtest_also_run_disabled_tests` flag or set the +`GTEST_ALSO_RUN_DISABLED_TESTS` environment variable to a value other than `0`. +You can combine this with the `--gtest_filter` flag to further select which +disabled tests to run. + +### Repeating the Tests + +Once in a while you'll run into a test whose result is hit-or-miss. Perhaps it +will fail only 1% of the time, making it rather hard to reproduce the bug under +a debugger. This can be a major source of frustration. + +The `--gtest_repeat` flag allows you to repeat all (or selected) test methods in +a program many times. Hopefully, a flaky test will eventually fail and give you +a chance to debug. Here's how to use it: + +```none +$ foo_test --gtest_repeat=1000 +Repeat foo_test 1000 times and don't stop at failures. + +$ foo_test --gtest_repeat=-1 +A negative count means repeating forever. + +$ foo_test --gtest_repeat=1000 --gtest_break_on_failure +Repeat foo_test 1000 times, stopping at the first failure. This +is especially useful when running under a debugger: when the test +fails, it will drop into the debugger and you can then inspect +variables and stacks. + +$ foo_test --gtest_repeat=1000 --gtest_filter=FooBar.* +Repeat the tests whose name matches the filter 1000 times. +``` + +If your test program contains +[global set-up/tear-down](#global-set-up-and-tear-down) code, it will be +repeated in each iteration as well, as the flakiness may be in it. To avoid +repeating global set-up/tear-down, specify +`--gtest_recreate_environments_when_repeating=false`{.nowrap}. + +You can also specify the repeat count by setting the `GTEST_REPEAT` environment +variable. + +### Shuffling the Tests + +You can specify the `--gtest_shuffle` flag (or set the `GTEST_SHUFFLE` +environment variable to `1`) to run the tests in a program in a random order. +This helps to reveal bad dependencies between tests. + +By default, GoogleTest uses a random seed calculated from the current time. +Therefore you'll get a different order every time. The console output includes +the random seed value, such that you can reproduce an order-related test failure +later. To specify the random seed explicitly, use the `--gtest_random_seed=SEED` +flag (or set the `GTEST_RANDOM_SEED` environment variable), where `SEED` is an +integer in the range [0, 99999]. The seed value 0 is special: it tells +GoogleTest to do the default behavior of calculating the seed from the current +time. + +If you combine this with `--gtest_repeat=N`, GoogleTest will pick a different +random seed and re-shuffle the tests in each iteration. + +### Distributing Test Functions to Multiple Machines + +If you have more than one machine you can use to run a test program, you might +want to run the test functions in parallel and get the result faster. We call +this technique *sharding*, where each machine is called a *shard*. + +GoogleTest is compatible with test sharding. To take advantage of this feature, +your test runner (not part of GoogleTest) needs to do the following: + +1. Allocate a number of machines (shards) to run the tests. +1. On each shard, set the `GTEST_TOTAL_SHARDS` environment variable to the total + number of shards. It must be the same for all shards. +1. On each shard, set the `GTEST_SHARD_INDEX` environment variable to the index + of the shard. Different shards must be assigned different indices, which + must be in the range `[0, GTEST_TOTAL_SHARDS - 1]`. +1. Run the same test program on all shards. When GoogleTest sees the above two + environment variables, it will select a subset of the test functions to run. + Across all shards, each test function in the program will be run exactly + once. +1. Wait for all shards to finish, then collect and report the results. + +Your project may have tests that were written without GoogleTest and thus don't +understand this protocol. In order for your test runner to figure out which test +supports sharding, it can set the environment variable `GTEST_SHARD_STATUS_FILE` +to a non-existent file path. If a test program supports sharding, it will create +this file to acknowledge that fact; otherwise it will not create it. The actual +contents of the file are not important at this time, although we may put some +useful information in it in the future. + +Here's an example to make it clear. Suppose you have a test program `foo_test` +that contains the following 5 test functions: + +``` +TEST(A, V) +TEST(A, W) +TEST(B, X) +TEST(B, Y) +TEST(B, Z) +``` + +Suppose you have 3 machines at your disposal. To run the test functions in +parallel, you would set `GTEST_TOTAL_SHARDS` to 3 on all machines, and set +`GTEST_SHARD_INDEX` to 0, 1, and 2 on the machines respectively. Then you would +run the same `foo_test` on each machine. + +GoogleTest reserves the right to change how the work is distributed across the +shards, but here's one possible scenario: + +* Machine #0 runs `A.V` and `B.X`. +* Machine #1 runs `A.W` and `B.Y`. +* Machine #2 runs `B.Z`. + +### Controlling Test Output + +#### Colored Terminal Output + +GoogleTest can use colors in its terminal output to make it easier to spot the +important information: + +
...
+[----------] 1 test from FooTest
+[ RUN      ] FooTest.DoesAbc
+[       OK ] FooTest.DoesAbc
+[----------] 2 tests from BarTest
+[ RUN      ] BarTest.HasXyzProperty
+[       OK ] BarTest.HasXyzProperty
+[ RUN      ] BarTest.ReturnsTrueOnSuccess
+... some error messages ...
+[   FAILED ] BarTest.ReturnsTrueOnSuccess
+...
+[==========] 30 tests from 14 test suites ran.
+[   PASSED ] 28 tests.
+[   FAILED ] 2 tests, listed below:
+[   FAILED ] BarTest.ReturnsTrueOnSuccess
+[   FAILED ] AnotherTest.DoesXyz
+
+ 2 FAILED TESTS
+
+ +You can set the `GTEST_COLOR` environment variable or the `--gtest_color` +command line flag to `yes`, `no`, or `auto` (the default) to enable colors, +disable colors, or let GoogleTest decide. When the value is `auto`, GoogleTest +will use colors if and only if the output goes to a terminal and (on non-Windows +platforms) the `TERM` environment variable is set to `xterm` or `xterm-color`. + +#### Suppressing test passes + +By default, GoogleTest prints 1 line of output for each test, indicating if it +passed or failed. To show only test failures, run the test program with +`--gtest_brief=1`, or set the GTEST_BRIEF environment variable to `1`. + +#### Suppressing the Elapsed Time + +By default, GoogleTest prints the time it takes to run each test. To disable +that, run the test program with the `--gtest_print_time=0` command line flag, or +set the GTEST_PRINT_TIME environment variable to `0`. + +#### Suppressing UTF-8 Text Output + +In case of assertion failures, GoogleTest prints expected and actual values of +type `string` both as hex-encoded strings as well as in readable UTF-8 text if +they contain valid non-ASCII UTF-8 characters. If you want to suppress the UTF-8 +text because, for example, you don't have an UTF-8 compatible output medium, run +the test program with `--gtest_print_utf8=0` or set the `GTEST_PRINT_UTF8` +environment variable to `0`. + +#### Generating an XML Report + +GoogleTest can emit a detailed XML report to a file in addition to its normal +textual output. The report contains the duration of each test, and thus can help +you identify slow tests. + +To generate the XML report, set the `GTEST_OUTPUT` environment variable or the +`--gtest_output` flag to the string `"xml:path_to_output_file"`, which will +create the file at the given location. You can also just use the string `"xml"`, +in which case the output can be found in the `test_detail.xml` file in the +current directory. + +If you specify a directory (for example, `"xml:output/directory/"` on Linux or +`"xml:output\directory\"` on Windows), GoogleTest will create the XML file in +that directory, named after the test executable (e.g. `foo_test.xml` for test +program `foo_test` or `foo_test.exe`). If the file already exists (perhaps left +over from a previous run), GoogleTest will pick a different name (e.g. +`foo_test_1.xml`) to avoid overwriting it. + +The report is based on the `junitreport` Ant task. Since that format was +originally intended for Java, a little interpretation is required to make it +apply to GoogleTest tests, as shown here: + +```xml + + + + + + + + + +``` + +* The root `` element corresponds to the entire test program. +* `` elements correspond to GoogleTest test suites. +* `` elements correspond to GoogleTest test functions. + +For instance, the following program + +```c++ +TEST(MathTest, Addition) { ... } +TEST(MathTest, Subtraction) { ... } +TEST(LogicTest, NonContradiction) { ... } +``` + +could generate this report: + +```xml + + + + + ... + ... + + + + + + + + + +``` + +Things to note: + +* The `tests` attribute of a `` or `` element tells how + many test functions the GoogleTest program or test suite contains, while the + `failures` attribute tells how many of them failed. + +* The `time` attribute expresses the duration of the test, test suite, or + entire test program in seconds. + +* The `timestamp` attribute records the local date and time of the test + execution. + +* The `file` and `line` attributes record the source file location, where the + test was defined. + +* Each `` element corresponds to a single failed GoogleTest + assertion. + +#### Generating a JSON Report + +GoogleTest can also emit a JSON report as an alternative format to XML. To +generate the JSON report, set the `GTEST_OUTPUT` environment variable or the +`--gtest_output` flag to the string `"json:path_to_output_file"`, which will +create the file at the given location. You can also just use the string +`"json"`, in which case the output can be found in the `test_detail.json` file +in the current directory. + +The report format conforms to the following JSON Schema: + +```json +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "definitions": { + "TestCase": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "tests": { "type": "integer" }, + "failures": { "type": "integer" }, + "disabled": { "type": "integer" }, + "time": { "type": "string" }, + "testsuite": { + "type": "array", + "items": { + "$ref": "#/definitions/TestInfo" + } + } + } + }, + "TestInfo": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "file": { "type": "string" }, + "line": { "type": "integer" }, + "status": { + "type": "string", + "enum": ["RUN", "NOTRUN"] + }, + "time": { "type": "string" }, + "classname": { "type": "string" }, + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/Failure" + } + } + } + }, + "Failure": { + "type": "object", + "properties": { + "failures": { "type": "string" }, + "type": { "type": "string" } + } + } + }, + "properties": { + "tests": { "type": "integer" }, + "failures": { "type": "integer" }, + "disabled": { "type": "integer" }, + "errors": { "type": "integer" }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "time": { "type": "string" }, + "name": { "type": "string" }, + "testsuites": { + "type": "array", + "items": { + "$ref": "#/definitions/TestCase" + } + } + } +} +``` + +The report uses the format that conforms to the following Proto3 using the +[JSON encoding](https://developers.google.com/protocol-buffers/docs/proto3#json): + +```proto +syntax = "proto3"; + +package googletest; + +import "google/protobuf/timestamp.proto"; +import "google/protobuf/duration.proto"; + +message UnitTest { + int32 tests = 1; + int32 failures = 2; + int32 disabled = 3; + int32 errors = 4; + google.protobuf.Timestamp timestamp = 5; + google.protobuf.Duration time = 6; + string name = 7; + repeated TestCase testsuites = 8; +} + +message TestCase { + string name = 1; + int32 tests = 2; + int32 failures = 3; + int32 disabled = 4; + int32 errors = 5; + google.protobuf.Duration time = 6; + repeated TestInfo testsuite = 7; +} + +message TestInfo { + string name = 1; + string file = 6; + int32 line = 7; + enum Status { + RUN = 0; + NOTRUN = 1; + } + Status status = 2; + google.protobuf.Duration time = 3; + string classname = 4; + message Failure { + string failures = 1; + string type = 2; + } + repeated Failure failures = 5; +} +``` + +For instance, the following program + +```c++ +TEST(MathTest, Addition) { ... } +TEST(MathTest, Subtraction) { ... } +TEST(LogicTest, NonContradiction) { ... } +``` + +could generate this report: + +```json +{ + "tests": 3, + "failures": 1, + "errors": 0, + "time": "0.035s", + "timestamp": "2011-10-31T18:52:42Z", + "name": "AllTests", + "testsuites": [ + { + "name": "MathTest", + "tests": 2, + "failures": 1, + "errors": 0, + "time": "0.015s", + "testsuite": [ + { + "name": "Addition", + "file": "test.cpp", + "line": 1, + "status": "RUN", + "time": "0.007s", + "classname": "", + "failures": [ + { + "message": "Value of: add(1, 1)\n Actual: 3\nExpected: 2", + "type": "" + }, + { + "message": "Value of: add(1, -1)\n Actual: 1\nExpected: 0", + "type": "" + } + ] + }, + { + "name": "Subtraction", + "file": "test.cpp", + "line": 2, + "status": "RUN", + "time": "0.005s", + "classname": "" + } + ] + }, + { + "name": "LogicTest", + "tests": 1, + "failures": 0, + "errors": 0, + "time": "0.005s", + "testsuite": [ + { + "name": "NonContradiction", + "file": "test.cpp", + "line": 3, + "status": "RUN", + "time": "0.005s", + "classname": "" + } + ] + } + ] +} +``` + +{: .callout .important} +IMPORTANT: The exact format of the JSON document is subject to change. + +### Controlling How Failures Are Reported + +#### Detecting Test Premature Exit + +Google Test implements the _premature-exit-file_ protocol for test runners to +catch any kind of unexpected exits of test programs. Upon start, Google Test +creates the file which will be automatically deleted after all work has been +finished. Then, the test runner can check if this file exists. In case the file +remains undeleted, the inspected test has exited prematurely. + +This feature is enabled only if the `TEST_PREMATURE_EXIT_FILE` environment +variable has been set. + +#### Turning Assertion Failures into Break-Points + +When running test programs under a debugger, it's very convenient if the +debugger can catch an assertion failure and automatically drop into interactive +mode. GoogleTest's *break-on-failure* mode supports this behavior. + +To enable it, set the `GTEST_BREAK_ON_FAILURE` environment variable to a value +other than `0`. Alternatively, you can use the `--gtest_break_on_failure` +command line flag. + +#### Disabling Catching Test-Thrown Exceptions + +GoogleTest can be used either with or without exceptions enabled. If a test +throws a C++ exception or (on Windows) a structured exception (SEH), by default +GoogleTest catches it, reports it as a test failure, and continues with the next +test method. This maximizes the coverage of a test run. Also, on Windows an +uncaught exception will cause a pop-up window, so catching the exceptions allows +you to run the tests automatically. + +When debugging the test failures, however, you may instead want the exceptions +to be handled by the debugger, such that you can examine the call stack when an +exception is thrown. To achieve that, set the `GTEST_CATCH_EXCEPTIONS` +environment variable to `0`, or use the `--gtest_catch_exceptions=0` flag when +running the tests. + +### Sanitizer Integration + +The +[Undefined Behavior Sanitizer](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html), +[Address Sanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizer), +and +[Thread Sanitizer](https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual) +all provide weak functions that you can override to trigger explicit failures +when they detect sanitizer errors, such as creating a reference from `nullptr`. +To override these functions, place definitions for them in a source file that +you compile as part of your main binary: + +``` +extern "C" { +void __ubsan_on_report() { + FAIL() << "Encountered an undefined behavior sanitizer error"; +} +void __asan_on_error() { + FAIL() << "Encountered an address sanitizer error"; +} +void __tsan_on_report() { + FAIL() << "Encountered a thread sanitizer error"; +} +} // extern "C" +``` + +After compiling your project with one of the sanitizers enabled, if a particular +test triggers a sanitizer error, GoogleTest will report that it failed. diff -Nru openjdk-17-17.0.7+7/googletest/docs/assets/css/style.scss openjdk-17-17.0.9+9/googletest/docs/assets/css/style.scss --- openjdk-17-17.0.7+7/googletest/docs/assets/css/style.scss 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/assets/css/style.scss 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,5 @@ +--- +--- + +@import "jekyll-theme-primer"; +@import "main"; diff -Nru openjdk-17-17.0.7+7/googletest/docs/community_created_documentation.md openjdk-17-17.0.9+9/googletest/docs/community_created_documentation.md --- openjdk-17-17.0.7+7/googletest/docs/community_created_documentation.md 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/community_created_documentation.md 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,7 @@ +# Community-Created Documentation + +The following is a list, in no particular order, of links to documentation +created by the Googletest community. + +* [Googlemock Insights](https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/googletest/insights.md), + by [ElectricRCAircraftGuy](https://github.com/ElectricRCAircraftGuy) diff -Nru openjdk-17-17.0.7+7/googletest/docs/faq.md openjdk-17-17.0.9+9/googletest/docs/faq.md --- openjdk-17-17.0.7+7/googletest/docs/faq.md 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/faq.md 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,692 @@ +# GoogleTest FAQ + +## Why should test suite names and test names not contain underscore? + +{: .callout .note} +Note: GoogleTest reserves underscore (`_`) for special purpose keywords, such as +[the `DISABLED_` prefix](advanced.md#temporarily-disabling-tests), in addition +to the following rationale. + +Underscore (`_`) is special, as C++ reserves the following to be used by the +compiler and the standard library: + +1. any identifier that starts with an `_` followed by an upper-case letter, and +2. any identifier that contains two consecutive underscores (i.e. `__`) + *anywhere* in its name. + +User code is *prohibited* from using such identifiers. + +Now let's look at what this means for `TEST` and `TEST_F`. + +Currently `TEST(TestSuiteName, TestName)` generates a class named +`TestSuiteName_TestName_Test`. What happens if `TestSuiteName` or `TestName` +contains `_`? + +1. If `TestSuiteName` starts with an `_` followed by an upper-case letter (say, + `_Foo`), we end up with `_Foo_TestName_Test`, which is reserved and thus + invalid. +2. If `TestSuiteName` ends with an `_` (say, `Foo_`), we get + `Foo__TestName_Test`, which is invalid. +3. If `TestName` starts with an `_` (say, `_Bar`), we get + `TestSuiteName__Bar_Test`, which is invalid. +4. If `TestName` ends with an `_` (say, `Bar_`), we get + `TestSuiteName_Bar__Test`, which is invalid. + +So clearly `TestSuiteName` and `TestName` cannot start or end with `_` +(Actually, `TestSuiteName` can start with `_` -- as long as the `_` isn't +followed by an upper-case letter. But that's getting complicated. So for +simplicity we just say that it cannot start with `_`.). + +It may seem fine for `TestSuiteName` and `TestName` to contain `_` in the +middle. However, consider this: + +```c++ +TEST(Time, Flies_Like_An_Arrow) { ... } +TEST(Time_Flies, Like_An_Arrow) { ... } +``` + +Now, the two `TEST`s will both generate the same class +(`Time_Flies_Like_An_Arrow_Test`). That's not good. + +So for simplicity, we just ask the users to avoid `_` in `TestSuiteName` and +`TestName`. The rule is more constraining than necessary, but it's simple and +easy to remember. It also gives GoogleTest some wiggle room in case its +implementation needs to change in the future. + +If you violate the rule, there may not be immediate consequences, but your test +may (just may) break with a new compiler (or a new version of the compiler you +are using) or with a new version of GoogleTest. Therefore it's best to follow +the rule. + +## Why does GoogleTest support `EXPECT_EQ(NULL, ptr)` and `ASSERT_EQ(NULL, ptr)` but not `EXPECT_NE(NULL, ptr)` and `ASSERT_NE(NULL, ptr)`? + +First of all, you can use `nullptr` with each of these macros, e.g. +`EXPECT_EQ(ptr, nullptr)`, `EXPECT_NE(ptr, nullptr)`, `ASSERT_EQ(ptr, nullptr)`, +`ASSERT_NE(ptr, nullptr)`. This is the preferred syntax in the style guide +because `nullptr` does not have the type problems that `NULL` does. + +Due to some peculiarity of C++, it requires some non-trivial template meta +programming tricks to support using `NULL` as an argument of the `EXPECT_XX()` +and `ASSERT_XX()` macros. Therefore we only do it where it's most needed +(otherwise we make the implementation of GoogleTest harder to maintain and more +error-prone than necessary). + +Historically, the `EXPECT_EQ()` macro took the *expected* value as its first +argument and the *actual* value as the second, though this argument order is now +discouraged. It was reasonable that someone wanted +to write `EXPECT_EQ(NULL, some_expression)`, and this indeed was requested +several times. Therefore we implemented it. + +The need for `EXPECT_NE(NULL, ptr)` wasn't nearly as strong. When the assertion +fails, you already know that `ptr` must be `NULL`, so it doesn't add any +information to print `ptr` in this case. That means `EXPECT_TRUE(ptr != NULL)` +works just as well. + +If we were to support `EXPECT_NE(NULL, ptr)`, for consistency we'd have to +support `EXPECT_NE(ptr, NULL)` as well. This means using the template meta +programming tricks twice in the implementation, making it even harder to +understand and maintain. We believe the benefit doesn't justify the cost. + +Finally, with the growth of the gMock matcher library, we are encouraging people +to use the unified `EXPECT_THAT(value, matcher)` syntax more often in tests. One +significant advantage of the matcher approach is that matchers can be easily +combined to form new matchers, while the `EXPECT_NE`, etc, macros cannot be +easily combined. Therefore we want to invest more in the matchers than in the +`EXPECT_XX()` macros. + +## I need to test that different implementations of an interface satisfy some common requirements. Should I use typed tests or value-parameterized tests? + +For testing various implementations of the same interface, either typed tests or +value-parameterized tests can get it done. It's really up to you the user to +decide which is more convenient for you, depending on your particular case. Some +rough guidelines: + +* Typed tests can be easier to write if instances of the different + implementations can be created the same way, modulo the type. For example, + if all these implementations have a public default constructor (such that + you can write `new TypeParam`), or if their factory functions have the same + form (e.g. `CreateInstance()`). +* Value-parameterized tests can be easier to write if you need different code + patterns to create different implementations' instances, e.g. `new Foo` vs + `new Bar(5)`. To accommodate for the differences, you can write factory + function wrappers and pass these function pointers to the tests as their + parameters. +* When a typed test fails, the default output includes the name of the type, + which can help you quickly identify which implementation is wrong. + Value-parameterized tests only show the number of the failed iteration by + default. You will need to define a function that returns the iteration name + and pass it as the third parameter to INSTANTIATE_TEST_SUITE_P to have more + useful output. +* When using typed tests, you need to make sure you are testing against the + interface type, not the concrete types (in other words, you want to make + sure `implicit_cast(my_concrete_impl)` works, not just that + `my_concrete_impl` works). It's less likely to make mistakes in this area + when using value-parameterized tests. + +I hope I didn't confuse you more. :-) If you don't mind, I'd suggest you to give +both approaches a try. Practice is a much better way to grasp the subtle +differences between the two tools. Once you have some concrete experience, you +can much more easily decide which one to use the next time. + +## I got some run-time errors about invalid proto descriptors when using `ProtocolMessageEquals`. Help! + +{: .callout .note} +**Note:** `ProtocolMessageEquals` and `ProtocolMessageEquiv` are *deprecated* +now. Please use `EqualsProto`, etc instead. + +`ProtocolMessageEquals` and `ProtocolMessageEquiv` were redefined recently and +are now less tolerant of invalid protocol buffer definitions. In particular, if +you have a `foo.proto` that doesn't fully qualify the type of a protocol message +it references (e.g. `message` where it should be `message`), you +will now get run-time errors like: + +``` +... descriptor.cc:...] Invalid proto descriptor for file "path/to/foo.proto": +... descriptor.cc:...] blah.MyMessage.my_field: ".Bar" is not defined. +``` + +If you see this, your `.proto` file is broken and needs to be fixed by making +the types fully qualified. The new definition of `ProtocolMessageEquals` and +`ProtocolMessageEquiv` just happen to reveal your bug. + +## My death test modifies some state, but the change seems lost after the death test finishes. Why? + +Death tests (`EXPECT_DEATH`, etc) are executed in a sub-process s.t. the +expected crash won't kill the test program (i.e. the parent process). As a +result, any in-memory side effects they incur are observable in their respective +sub-processes, but not in the parent process. You can think of them as running +in a parallel universe, more or less. + +In particular, if you use mocking and the death test statement invokes some mock +methods, the parent process will think the calls have never occurred. Therefore, +you may want to move your `EXPECT_CALL` statements inside the `EXPECT_DEATH` +macro. + +## EXPECT_EQ(htonl(blah), blah_blah) generates weird compiler errors in opt mode. Is this a GoogleTest bug? + +Actually, the bug is in `htonl()`. + +According to `'man htonl'`, `htonl()` is a *function*, which means it's valid to +use `htonl` as a function pointer. However, in opt mode `htonl()` is defined as +a *macro*, which breaks this usage. + +Worse, the macro definition of `htonl()` uses a `gcc` extension and is *not* +standard C++. That hacky implementation has some ad hoc limitations. In +particular, it prevents you from writing `Foo()`, where `Foo` +is a template that has an integral argument. + +The implementation of `EXPECT_EQ(a, b)` uses `sizeof(... a ...)` inside a +template argument, and thus doesn't compile in opt mode when `a` contains a call +to `htonl()`. It is difficult to make `EXPECT_EQ` bypass the `htonl()` bug, as +the solution must work with different compilers on various platforms. + +## The compiler complains about "undefined references" to some static const member variables, but I did define them in the class body. What's wrong? + +If your class has a static data member: + +```c++ +// foo.h +class Foo { + ... + static const int kBar = 100; +}; +``` + +You also need to define it *outside* of the class body in `foo.cc`: + +```c++ +const int Foo::kBar; // No initializer here. +``` + +Otherwise your code is **invalid C++**, and may break in unexpected ways. In +particular, using it in GoogleTest comparison assertions (`EXPECT_EQ`, etc) will +generate an "undefined reference" linker error. The fact that "it used to work" +doesn't mean it's valid. It just means that you were lucky. :-) + +If the declaration of the static data member is `constexpr` then it is +implicitly an `inline` definition, and a separate definition in `foo.cc` is not +needed: + +```c++ +// foo.h +class Foo { + ... + static constexpr int kBar = 100; // Defines kBar, no need to do it in foo.cc. +}; +``` + +## Can I derive a test fixture from another? + +Yes. + +Each test fixture has a corresponding and same named test suite. This means only +one test suite can use a particular fixture. Sometimes, however, multiple test +cases may want to use the same or slightly different fixtures. For example, you +may want to make sure that all of a GUI library's test suites don't leak +important system resources like fonts and brushes. + +In GoogleTest, you share a fixture among test suites by putting the shared logic +in a base test fixture, then deriving from that base a separate fixture for each +test suite that wants to use this common logic. You then use `TEST_F()` to write +tests using each derived fixture. + +Typically, your code looks like this: + +```c++ +// Defines a base test fixture. +class BaseTest : public ::testing::Test { + protected: + ... +}; + +// Derives a fixture FooTest from BaseTest. +class FooTest : public BaseTest { + protected: + void SetUp() override { + BaseTest::SetUp(); // Sets up the base fixture first. + ... additional set-up work ... + } + + void TearDown() override { + ... clean-up work for FooTest ... + BaseTest::TearDown(); // Remember to tear down the base fixture + // after cleaning up FooTest! + } + + ... functions and variables for FooTest ... +}; + +// Tests that use the fixture FooTest. +TEST_F(FooTest, Bar) { ... } +TEST_F(FooTest, Baz) { ... } + +... additional fixtures derived from BaseTest ... +``` + +If necessary, you can continue to derive test fixtures from a derived fixture. +GoogleTest has no limit on how deep the hierarchy can be. + +For a complete example using derived test fixtures, see +[sample5_unittest.cc](https://github.com/google/googletest/blob/main/googletest/samples/sample5_unittest.cc). + +## My compiler complains "void value not ignored as it ought to be." What does this mean? + +You're probably using an `ASSERT_*()` in a function that doesn't return `void`. +`ASSERT_*()` can only be used in `void` functions, due to exceptions being +disabled by our build system. Please see more details +[here](advanced.md#assertion-placement). + +## My death test hangs (or seg-faults). How do I fix it? + +In GoogleTest, death tests are run in a child process and the way they work is +delicate. To write death tests you really need to understand how they work—see +the details at [Death Assertions](reference/assertions.md#death) in the +Assertions Reference. + +In particular, death tests don't like having multiple threads in the parent +process. So the first thing you can try is to eliminate creating threads outside +of `EXPECT_DEATH()`. For example, you may want to use mocks or fake objects +instead of real ones in your tests. + +Sometimes this is impossible as some library you must use may be creating +threads before `main()` is even reached. In this case, you can try to minimize +the chance of conflicts by either moving as many activities as possible inside +`EXPECT_DEATH()` (in the extreme case, you want to move everything inside), or +leaving as few things as possible in it. Also, you can try to set the death test +style to `"threadsafe"`, which is safer but slower, and see if it helps. + +If you go with thread-safe death tests, remember that they rerun the test +program from the beginning in the child process. Therefore make sure your +program can run side-by-side with itself and is deterministic. + +In the end, this boils down to good concurrent programming. You have to make +sure that there are no race conditions or deadlocks in your program. No silver +bullet - sorry! + +## Should I use the constructor/destructor of the test fixture or SetUp()/TearDown()? {#CtorVsSetUp} + +The first thing to remember is that GoogleTest does **not** reuse the same test +fixture object across multiple tests. For each `TEST_F`, GoogleTest will create +a **fresh** test fixture object, immediately call `SetUp()`, run the test body, +call `TearDown()`, and then delete the test fixture object. + +When you need to write per-test set-up and tear-down logic, you have the choice +between using the test fixture constructor/destructor or `SetUp()/TearDown()`. +The former is usually preferred, as it has the following benefits: + +* By initializing a member variable in the constructor, we have the option to + make it `const`, which helps prevent accidental changes to its value and + makes the tests more obviously correct. +* In case we need to subclass the test fixture class, the subclass' + constructor is guaranteed to call the base class' constructor *first*, and + the subclass' destructor is guaranteed to call the base class' destructor + *afterward*. With `SetUp()/TearDown()`, a subclass may make the mistake of + forgetting to call the base class' `SetUp()/TearDown()` or call them at the + wrong time. + +You may still want to use `SetUp()/TearDown()` in the following cases: + +* C++ does not allow virtual function calls in constructors and destructors. + You can call a method declared as virtual, but it will not use dynamic + dispatch. It will use the definition from the class the constructor of which + is currently executing. This is because calling a virtual method before the + derived class constructor has a chance to run is very dangerous - the + virtual method might operate on uninitialized data. Therefore, if you need + to call a method that will be overridden in a derived class, you have to use + `SetUp()/TearDown()`. +* In the body of a constructor (or destructor), it's not possible to use the + `ASSERT_xx` macros. Therefore, if the set-up operation could cause a fatal + test failure that should prevent the test from running, it's necessary to + use `abort` and abort the whole test + executable, or to use `SetUp()` instead of a constructor. +* If the tear-down operation could throw an exception, you must use + `TearDown()` as opposed to the destructor, as throwing in a destructor leads + to undefined behavior and usually will kill your program right away. Note + that many standard libraries (like STL) may throw when exceptions are + enabled in the compiler. Therefore you should prefer `TearDown()` if you + want to write portable tests that work with or without exceptions. +* The GoogleTest team is considering making the assertion macros throw on + platforms where exceptions are enabled (e.g. Windows, Mac OS, and Linux + client-side), which will eliminate the need for the user to propagate + failures from a subroutine to its caller. Therefore, you shouldn't use + GoogleTest assertions in a destructor if your code could run on such a + platform. + +## The compiler complains "no matching function to call" when I use ASSERT_PRED*. How do I fix it? + +See details for [`EXPECT_PRED*`](reference/assertions.md#EXPECT_PRED) in the +Assertions Reference. + +## My compiler complains about "ignoring return value" when I call RUN_ALL_TESTS(). Why? + +Some people had been ignoring the return value of `RUN_ALL_TESTS()`. That is, +instead of + +```c++ + return RUN_ALL_TESTS(); +``` + +they write + +```c++ + RUN_ALL_TESTS(); +``` + +This is **wrong and dangerous**. The testing services needs to see the return +value of `RUN_ALL_TESTS()` in order to determine if a test has passed. If your +`main()` function ignores it, your test will be considered successful even if it +has a GoogleTest assertion failure. Very bad. + +We have decided to fix this (thanks to Michael Chastain for the idea). Now, your +code will no longer be able to ignore `RUN_ALL_TESTS()` when compiled with +`gcc`. If you do so, you'll get a compiler error. + +If you see the compiler complaining about you ignoring the return value of +`RUN_ALL_TESTS()`, the fix is simple: just make sure its value is used as the +return value of `main()`. + +But how could we introduce a change that breaks existing tests? Well, in this +case, the code was already broken in the first place, so we didn't break it. :-) + +## My compiler complains that a constructor (or destructor) cannot return a value. What's going on? + +Due to a peculiarity of C++, in order to support the syntax for streaming +messages to an `ASSERT_*`, e.g. + +```c++ + ASSERT_EQ(1, Foo()) << "blah blah" << foo; +``` + +we had to give up using `ASSERT*` and `FAIL*` (but not `EXPECT*` and +`ADD_FAILURE*`) in constructors and destructors. The workaround is to move the +content of your constructor/destructor to a private void member function, or +switch to `EXPECT_*()` if that works. This +[section](advanced.md#assertion-placement) in the user's guide explains it. + +## My SetUp() function is not called. Why? + +C++ is case-sensitive. Did you spell it as `Setup()`? + +Similarly, sometimes people spell `SetUpTestSuite()` as `SetupTestSuite()` and +wonder why it's never called. + +## I have several test suites which share the same test fixture logic, do I have to define a new test fixture class for each of them? This seems pretty tedious. + +You don't have to. Instead of + +```c++ +class FooTest : public BaseTest {}; + +TEST_F(FooTest, Abc) { ... } +TEST_F(FooTest, Def) { ... } + +class BarTest : public BaseTest {}; + +TEST_F(BarTest, Abc) { ... } +TEST_F(BarTest, Def) { ... } +``` + +you can simply `typedef` the test fixtures: + +```c++ +typedef BaseTest FooTest; + +TEST_F(FooTest, Abc) { ... } +TEST_F(FooTest, Def) { ... } + +typedef BaseTest BarTest; + +TEST_F(BarTest, Abc) { ... } +TEST_F(BarTest, Def) { ... } +``` + +## GoogleTest output is buried in a whole bunch of LOG messages. What do I do? + +The GoogleTest output is meant to be a concise and human-friendly report. If +your test generates textual output itself, it will mix with the GoogleTest +output, making it hard to read. However, there is an easy solution to this +problem. + +Since `LOG` messages go to stderr, we decided to let GoogleTest output go to +stdout. This way, you can easily separate the two using redirection. For +example: + +```shell +$ ./my_test > gtest_output.txt +``` + +## Why should I prefer test fixtures over global variables? + +There are several good reasons: + +1. It's likely your test needs to change the states of its global variables. + This makes it difficult to keep side effects from escaping one test and + contaminating others, making debugging difficult. By using fixtures, each + test has a fresh set of variables that's different (but with the same + names). Thus, tests are kept independent of each other. +2. Global variables pollute the global namespace. +3. Test fixtures can be reused via subclassing, which cannot be done easily + with global variables. This is useful if many test suites have something in + common. + +## What can the statement argument in ASSERT_DEATH() be? + +`ASSERT_DEATH(statement, matcher)` (or any death assertion macro) can be used +wherever *`statement`* is valid. So basically *`statement`* can be any C++ +statement that makes sense in the current context. In particular, it can +reference global and/or local variables, and can be: + +* a simple function call (often the case), +* a complex expression, or +* a compound statement. + +Some examples are shown here: + +```c++ +// A death test can be a simple function call. +TEST(MyDeathTest, FunctionCall) { + ASSERT_DEATH(Xyz(5), "Xyz failed"); +} + +// Or a complex expression that references variables and functions. +TEST(MyDeathTest, ComplexExpression) { + const bool c = Condition(); + ASSERT_DEATH((c ? Func1(0) : object2.Method("test")), + "(Func1|Method) failed"); +} + +// Death assertions can be used anywhere in a function. In +// particular, they can be inside a loop. +TEST(MyDeathTest, InsideLoop) { + // Verifies that Foo(0), Foo(1), ..., and Foo(4) all die. + for (int i = 0; i < 5; i++) { + EXPECT_DEATH_M(Foo(i), "Foo has \\d+ errors", + ::testing::Message() << "where i is " << i); + } +} + +// A death assertion can contain a compound statement. +TEST(MyDeathTest, CompoundStatement) { + // Verifies that at lease one of Bar(0), Bar(1), ..., and + // Bar(4) dies. + ASSERT_DEATH({ + for (int i = 0; i < 5; i++) { + Bar(i); + } + }, + "Bar has \\d+ errors"); +} +``` + +## I have a fixture class `FooTest`, but `TEST_F(FooTest, Bar)` gives me error ``"no matching function for call to `FooTest::FooTest()'"``. Why? + +GoogleTest needs to be able to create objects of your test fixture class, so it +must have a default constructor. Normally the compiler will define one for you. +However, there are cases where you have to define your own: + +* If you explicitly declare a non-default constructor for class `FooTest` + (`DISALLOW_EVIL_CONSTRUCTORS()` does this), then you need to define a + default constructor, even if it would be empty. +* If `FooTest` has a const non-static data member, then you have to define the + default constructor *and* initialize the const member in the initializer + list of the constructor. (Early versions of `gcc` doesn't force you to + initialize the const member. It's a bug that has been fixed in `gcc 4`.) + +## Why does ASSERT_DEATH complain about previous threads that were already joined? + +With the Linux pthread library, there is no turning back once you cross the line +from a single thread to multiple threads. The first time you create a thread, a +manager thread is created in addition, so you get 3, not 2, threads. Later when +the thread you create joins the main thread, the thread count decrements by 1, +but the manager thread will never be killed, so you still have 2 threads, which +means you cannot safely run a death test. + +The new NPTL thread library doesn't suffer from this problem, as it doesn't +create a manager thread. However, if you don't control which machine your test +runs on, you shouldn't depend on this. + +## Why does GoogleTest require the entire test suite, instead of individual tests, to be named *DeathTest when it uses ASSERT_DEATH? + +GoogleTest does not interleave tests from different test suites. That is, it +runs all tests in one test suite first, and then runs all tests in the next test +suite, and so on. GoogleTest does this because it needs to set up a test suite +before the first test in it is run, and tear it down afterwards. Splitting up +the test case would require multiple set-up and tear-down processes, which is +inefficient and makes the semantics unclean. + +If we were to determine the order of tests based on test name instead of test +case name, then we would have a problem with the following situation: + +```c++ +TEST_F(FooTest, AbcDeathTest) { ... } +TEST_F(FooTest, Uvw) { ... } + +TEST_F(BarTest, DefDeathTest) { ... } +TEST_F(BarTest, Xyz) { ... } +``` + +Since `FooTest.AbcDeathTest` needs to run before `BarTest.Xyz`, and we don't +interleave tests from different test suites, we need to run all tests in the +`FooTest` case before running any test in the `BarTest` case. This contradicts +with the requirement to run `BarTest.DefDeathTest` before `FooTest.Uvw`. + +## But I don't like calling my entire test suite \*DeathTest when it contains both death tests and non-death tests. What do I do? + +You don't have to, but if you like, you may split up the test suite into +`FooTest` and `FooDeathTest`, where the names make it clear that they are +related: + +```c++ +class FooTest : public ::testing::Test { ... }; + +TEST_F(FooTest, Abc) { ... } +TEST_F(FooTest, Def) { ... } + +using FooDeathTest = FooTest; + +TEST_F(FooDeathTest, Uvw) { ... EXPECT_DEATH(...) ... } +TEST_F(FooDeathTest, Xyz) { ... ASSERT_DEATH(...) ... } +``` + +## GoogleTest prints the LOG messages in a death test's child process only when the test fails. How can I see the LOG messages when the death test succeeds? + +Printing the LOG messages generated by the statement inside `EXPECT_DEATH()` +makes it harder to search for real problems in the parent's log. Therefore, +GoogleTest only prints them when the death test has failed. + +If you really need to see such LOG messages, a workaround is to temporarily +break the death test (e.g. by changing the regex pattern it is expected to +match). Admittedly, this is a hack. We'll consider a more permanent solution +after the fork-and-exec-style death tests are implemented. + +## The compiler complains about `no match for 'operator<<'` when I use an assertion. What gives? + +If you use a user-defined type `FooType` in an assertion, you must make sure +there is an `std::ostream& operator<<(std::ostream&, const FooType&)` function +defined such that we can print a value of `FooType`. + +In addition, if `FooType` is declared in a name space, the `<<` operator also +needs to be defined in the *same* name space. See +[Tip of the Week #49](http://abseil.io/tips/49) for details. + +## How do I suppress the memory leak messages on Windows? + +Since the statically initialized GoogleTest singleton requires allocations on +the heap, the Visual C++ memory leak detector will report memory leaks at the +end of the program run. The easiest way to avoid this is to use the +`_CrtMemCheckpoint` and `_CrtMemDumpAllObjectsSince` calls to not report any +statically initialized heap objects. See MSDN for more details and additional +heap check/debug routines. + +## How can my code detect if it is running in a test? + +If you write code that sniffs whether it's running in a test and does different +things accordingly, you are leaking test-only logic into production code and +there is no easy way to ensure that the test-only code paths aren't run by +mistake in production. Such cleverness also leads to +[Heisenbugs](https://en.wikipedia.org/wiki/Heisenbug). Therefore we strongly +advise against the practice, and GoogleTest doesn't provide a way to do it. + +In general, the recommended way to cause the code to behave differently under +test is [Dependency Injection](http://en.wikipedia.org/wiki/Dependency_injection). You can inject +different functionality from the test and from the production code. Since your +production code doesn't link in the for-test logic at all (the +[`testonly`](http://docs.bazel.build/versions/master/be/common-definitions.html#common.testonly) attribute for BUILD targets helps to ensure +that), there is no danger in accidentally running it. + +However, if you *really*, *really*, *really* have no choice, and if you follow +the rule of ending your test program names with `_test`, you can use the +*horrible* hack of sniffing your executable name (`argv[0]` in `main()`) to know +whether the code is under test. + +## How do I temporarily disable a test? + +If you have a broken test that you cannot fix right away, you can add the +`DISABLED_` prefix to its name. This will exclude it from execution. This is +better than commenting out the code or using `#if 0`, as disabled tests are +still compiled (and thus won't rot). + +To include disabled tests in test execution, just invoke the test program with +the `--gtest_also_run_disabled_tests` flag. + +## Is it OK if I have two separate `TEST(Foo, Bar)` test methods defined in different namespaces? + +Yes. + +The rule is **all test methods in the same test suite must use the same fixture +class.** This means that the following is **allowed** because both tests use the +same fixture class (`::testing::Test`). + +```c++ +namespace foo { +TEST(CoolTest, DoSomething) { + SUCCEED(); +} +} // namespace foo + +namespace bar { +TEST(CoolTest, DoSomething) { + SUCCEED(); +} +} // namespace bar +``` + +However, the following code is **not allowed** and will produce a runtime error +from GoogleTest because the test methods are using different test fixture +classes with the same test suite name. + +```c++ +namespace foo { +class CoolTest : public ::testing::Test {}; // Fixture foo::CoolTest +TEST_F(CoolTest, DoSomething) { + SUCCEED(); +} +} // namespace foo + +namespace bar { +class CoolTest : public ::testing::Test {}; // Fixture: bar::CoolTest +TEST_F(CoolTest, DoSomething) { + SUCCEED(); +} +} // namespace bar +``` diff -Nru openjdk-17-17.0.7+7/googletest/docs/gmock_cheat_sheet.md openjdk-17-17.0.9+9/googletest/docs/gmock_cheat_sheet.md --- openjdk-17-17.0.7+7/googletest/docs/gmock_cheat_sheet.md 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/gmock_cheat_sheet.md 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,241 @@ +# gMock Cheat Sheet + +## Defining a Mock Class + +### Mocking a Normal Class {#MockClass} + +Given + +```cpp +class Foo { + public: + virtual ~Foo(); + virtual int GetSize() const = 0; + virtual string Describe(const char* name) = 0; + virtual string Describe(int type) = 0; + virtual bool Process(Bar elem, int count) = 0; +}; +``` + +(note that `~Foo()` **must** be virtual) we can define its mock as + +```cpp +#include + +class MockFoo : public Foo { + public: + MOCK_METHOD(int, GetSize, (), (const, override)); + MOCK_METHOD(string, Describe, (const char* name), (override)); + MOCK_METHOD(string, Describe, (int type), (override)); + MOCK_METHOD(bool, Process, (Bar elem, int count), (override)); +}; +``` + +To create a "nice" mock, which ignores all uninteresting calls, a "naggy" mock, +which warns on all uninteresting calls, or a "strict" mock, which treats them as +failures: + +```cpp +using ::testing::NiceMock; +using ::testing::NaggyMock; +using ::testing::StrictMock; + +NiceMock nice_foo; // The type is a subclass of MockFoo. +NaggyMock naggy_foo; // The type is a subclass of MockFoo. +StrictMock strict_foo; // The type is a subclass of MockFoo. +``` + +{: .callout .note} +**Note:** A mock object is currently naggy by default. We may make it nice by +default in the future. + +### Mocking a Class Template {#MockTemplate} + +Class templates can be mocked just like any class. + +To mock + +```cpp +template +class StackInterface { + public: + virtual ~StackInterface(); + virtual int GetSize() const = 0; + virtual void Push(const Elem& x) = 0; +}; +``` + +(note that all member functions that are mocked, including `~StackInterface()` +**must** be virtual). + +```cpp +template +class MockStack : public StackInterface { + public: + MOCK_METHOD(int, GetSize, (), (const, override)); + MOCK_METHOD(void, Push, (const Elem& x), (override)); +}; +``` + +### Specifying Calling Conventions for Mock Functions + +If your mock function doesn't use the default calling convention, you can +specify it by adding `Calltype(convention)` to `MOCK_METHOD`'s 4th parameter. +For example, + +```cpp + MOCK_METHOD(bool, Foo, (int n), (Calltype(STDMETHODCALLTYPE))); + MOCK_METHOD(int, Bar, (double x, double y), + (const, Calltype(STDMETHODCALLTYPE))); +``` + +where `STDMETHODCALLTYPE` is defined by `` on Windows. + +## Using Mocks in Tests {#UsingMocks} + +The typical work flow is: + +1. Import the gMock names you need to use. All gMock symbols are in the + `testing` namespace unless they are macros or otherwise noted. +2. Create the mock objects. +3. Optionally, set the default actions of the mock objects. +4. Set your expectations on the mock objects (How will they be called? What + will they do?). +5. Exercise code that uses the mock objects; if necessary, check the result + using googletest assertions. +6. When a mock object is destructed, gMock automatically verifies that all + expectations on it have been satisfied. + +Here's an example: + +```cpp +using ::testing::Return; // #1 + +TEST(BarTest, DoesThis) { + MockFoo foo; // #2 + + ON_CALL(foo, GetSize()) // #3 + .WillByDefault(Return(1)); + // ... other default actions ... + + EXPECT_CALL(foo, Describe(5)) // #4 + .Times(3) + .WillRepeatedly(Return("Category 5")); + // ... other expectations ... + + EXPECT_EQ(MyProductionFunction(&foo), "good"); // #5 +} // #6 +``` + +## Setting Default Actions {#OnCall} + +gMock has a **built-in default action** for any function that returns `void`, +`bool`, a numeric value, or a pointer. In C++11, it will additionally returns +the default-constructed value, if one exists for the given type. + +To customize the default action for functions with return type `T`, use +[`DefaultValue`](reference/mocking.md#DefaultValue). For example: + +```cpp + // Sets the default action for return type std::unique_ptr to + // creating a new Buzz every time. + DefaultValue>::SetFactory( + [] { return std::make_unique(AccessLevel::kInternal); }); + + // When this fires, the default action of MakeBuzz() will run, which + // will return a new Buzz object. + EXPECT_CALL(mock_buzzer_, MakeBuzz("hello")).Times(AnyNumber()); + + auto buzz1 = mock_buzzer_.MakeBuzz("hello"); + auto buzz2 = mock_buzzer_.MakeBuzz("hello"); + EXPECT_NE(buzz1, nullptr); + EXPECT_NE(buzz2, nullptr); + EXPECT_NE(buzz1, buzz2); + + // Resets the default action for return type std::unique_ptr, + // to avoid interfere with other tests. + DefaultValue>::Clear(); +``` + +To customize the default action for a particular method of a specific mock +object, use [`ON_CALL`](reference/mocking.md#ON_CALL). `ON_CALL` has a similar +syntax to `EXPECT_CALL`, but it is used for setting default behaviors when you +do not require that the mock method is called. See +[Knowing When to Expect](gmock_cook_book.md#UseOnCall) for a more detailed +discussion. + +## Setting Expectations {#ExpectCall} + +See [`EXPECT_CALL`](reference/mocking.md#EXPECT_CALL) in the Mocking Reference. + +## Matchers {#MatcherList} + +See the [Matchers Reference](reference/matchers.md). + +## Actions {#ActionList} + +See the [Actions Reference](reference/actions.md). + +## Cardinalities {#CardinalityList} + +See the [`Times` clause](reference/mocking.md#EXPECT_CALL.Times) of +`EXPECT_CALL` in the Mocking Reference. + +## Expectation Order + +By default, expectations can be matched in *any* order. If some or all +expectations must be matched in a given order, you can use the +[`After` clause](reference/mocking.md#EXPECT_CALL.After) or +[`InSequence` clause](reference/mocking.md#EXPECT_CALL.InSequence) of +`EXPECT_CALL`, or use an [`InSequence` object](reference/mocking.md#InSequence). + +## Verifying and Resetting a Mock + +gMock will verify the expectations on a mock object when it is destructed, or +you can do it earlier: + +```cpp +using ::testing::Mock; +... +// Verifies and removes the expectations on mock_obj; +// returns true if and only if successful. +Mock::VerifyAndClearExpectations(&mock_obj); +... +// Verifies and removes the expectations on mock_obj; +// also removes the default actions set by ON_CALL(); +// returns true if and only if successful. +Mock::VerifyAndClear(&mock_obj); +``` + +Do not set new expectations after verifying and clearing a mock after its use. +Setting expectations after code that exercises the mock has undefined behavior. +See [Using Mocks in Tests](gmock_for_dummies.md#using-mocks-in-tests) for more +information. + +You can also tell gMock that a mock object can be leaked and doesn't need to be +verified: + +```cpp +Mock::AllowLeak(&mock_obj); +``` + +## Mock Classes + +gMock defines a convenient mock class template + +```cpp +class MockFunction { + public: + MOCK_METHOD(R, Call, (A1, ..., An)); +}; +``` + +See this [recipe](gmock_cook_book.md#UsingCheckPoints) for one application of +it. + +## Flags + +| Flag | Description | +| :----------------------------- | :---------------------------------------- | +| `--gmock_catch_leaked_mocks=0` | Don't report leaked mock objects as failures. | +| `--gmock_verbose=LEVEL` | Sets the default verbosity level (`info`, `warning`, or `error`) of Google Mock messages. | diff -Nru openjdk-17-17.0.7+7/googletest/docs/gmock_cook_book.md openjdk-17-17.0.9+9/googletest/docs/gmock_cook_book.md --- openjdk-17-17.0.7+7/googletest/docs/gmock_cook_book.md 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.9+9/googletest/docs/gmock_cook_book.md 2023-08-02 15:24:53.000000000 +0000 @@ -0,0 +1,4344 @@ +# gMock Cookbook + +You can find recipes for using gMock here. If you haven't yet, please read +[the dummy guide](gmock_for_dummies.md) first to make sure you understand the +basics. + +{: .callout .note} +**Note:** gMock lives in the `testing` name space. For readability, it is +recommended to write `using ::testing::Foo;` once in your file before using the +name `Foo` defined by gMock. We omit such `using` statements in this section for +brevity, but you should do it in your own code. + +## Creating Mock Classes + +Mock classes are defined as normal classes, using the `MOCK_METHOD` macro to +generate mocked methods. The macro gets 3 or 4 parameters: + +```cpp +class MyMock { + public: + MOCK_METHOD(ReturnType, MethodName, (Args...)); + MOCK_METHOD(ReturnType, MethodName, (Args...), (Specs...)); +}; +``` + +The first 3 parameters are simply the method declaration, split into 3 parts. +The 4th parameter accepts a closed list of qualifiers, which affect the +generated method: + +* **`const`** - Makes the mocked method a `const` method. Required if + overriding a `const` method. +* **`override`** - Marks the method with `override`. Recommended if overriding + a `virtual` method. +* **`noexcept`** - Marks the method with `noexcept`. Required if overriding a + `noexcept` method. +* **`Calltype(...)`** - Sets the call type for the method (e.g. to + `STDMETHODCALLTYPE`), useful in Windows. +* **`ref(...)`** - Marks the method with the reference qualification + specified. Required if overriding a method that has reference + qualifications. Eg `ref(&)` or `ref(&&)`. + +### Dealing with unprotected commas + +Unprotected commas, i.e. commas which are not surrounded by parentheses, prevent +`MOCK_METHOD` from parsing its arguments correctly: + +{: .bad} +```cpp +class MockFoo { + public: + MOCK_METHOD(std::pair, GetPair, ()); // Won't compile! + MOCK_METHOD(bool, CheckMap, (std::map, bool)); // Won't compile! +}; +``` + +Solution 1 - wrap with parentheses: + +{: .good} +```cpp +class MockFoo { + public: + MOCK_METHOD((std::pair), GetPair, ()); + MOCK_METHOD(bool, CheckMap, ((std::map), bool)); +}; +``` + +Note that wrapping a return or argument type with parentheses is, in general, +invalid C++. `MOCK_METHOD` removes the parentheses. + +Solution 2 - define an alias: + +{: .good} +```cpp +class MockFoo { + public: + using BoolAndInt = std::pair; + MOCK_METHOD(BoolAndInt, GetPair, ()); + using MapIntDouble = std::map; + MOCK_METHOD(bool, CheckMap, (MapIntDouble, bool)); +}; +``` + +### Mocking Private or Protected Methods + +You must always put a mock method definition (`MOCK_METHOD`) in a `public:` +section of the mock class, regardless of the method being mocked being `public`, +`protected`, or `private` in the base class. This allows `ON_CALL` and +`EXPECT_CALL` to reference the mock function from outside of the mock class. +(Yes, C++ allows a subclass to change the access level of a virtual function in +the base class.) Example: + +```cpp +class Foo { + public: + ... + virtual bool Transform(Gadget* g) = 0; + + protected: + virtual void Resume(); + + private: + virtual int GetTimeOut(); +}; + +class MockFoo : public Foo { + public: + ... + MOCK_METHOD(bool, Transform, (Gadget* g), (override)); + + // The following must be in the public section, even though the + // methods are protected or private in the base class. + MOCK_METHOD(void, Resume, (), (override)); + MOCK_METHOD(int, GetTimeOut, (), (override)); +}; +``` + +### Mocking Overloaded Methods + +You can mock overloaded functions as usual. No special attention is required: + +```cpp +class Foo { + ... + + // Must be virtual as we'll inherit from Foo. + virtual ~Foo(); + + // Overloaded on the types and/or numbers of arguments. + virtual int Add(Element x); + virtual int Add(int times, Element x); + + // Overloaded on the const-ness of this object. + virtual Bar& GetBar(); + virtual const Bar& GetBar() const; +}; + +class MockFoo : public Foo { + ... + MOCK_METHOD(int, Add, (Element x), (override)); + MOCK_METHOD(int, Add, (int times, Element x), (override)); + + MOCK_METHOD(Bar&, GetBar, (), (override)); + MOCK_METHOD(const Bar&, GetBar, (), (const, override)); +}; +``` + +{: .callout .note} +**Note:** if you don't mock all versions of the overloaded method, the compiler +will give you a warning about some methods in the base class being hidden. To +fix that, use `using` to bring them in scope: + +```cpp +class MockFoo : public Foo { + ... + using Foo::Add; + MOCK_METHOD(int, Add, (Element x), (override)); + // We don't want to mock int Add(int times, Element x); + ... +}; +``` + +### Mocking Class Templates + +You can mock class templates just like any class. + +```cpp +template +class StackInterface { + ... + // Must be virtual as we'll inherit from StackInterface. + virtual ~StackInterface(); + + virtual int GetSize() const = 0; + virtual void Push(const Elem& x) = 0; +}; + +template +class MockStack : public StackInterface { + ... + MOCK_METHOD(int, GetSize, (), (override)); + MOCK_METHOD(void, Push, (const Elem& x), (override)); +}; +``` + +### Mocking Non-virtual Methods {#MockingNonVirtualMethods} + +gMock can mock non-virtual functions to be used in Hi-perf dependency injection. + +In this case, instead of sharing a common base class with the real class, your +mock class will be *unrelated* to the real class, but contain methods with the +same signatures. The syntax for mocking non-virtual methods is the *same* as +mocking virtual methods (just don't add `override`): + +```cpp +// A simple packet stream class. None of its members is virtual. +class ConcretePacketStream { + public: + void AppendPacket(Packet* new_packet); + const Packet* GetPacket(size_t packet_number) const; + size_t NumberOfPackets() const; + ... +}; + +// A mock packet stream class. It inherits from no other, but defines +// GetPacket() and NumberOfPackets(). +class MockPacketStream { + public: + MOCK_METHOD(const Packet*, GetPacket, (size_t packet_number), (const)); + MOCK_METHOD(size_t, NumberOfPackets, (), (const)); + ... +}; +``` + +Note that the mock class doesn't define `AppendPacket()`, unlike the real class. +That's fine as long as the test doesn't need to call it. + +Next, you need a way to say that you want to use `ConcretePacketStream` in +production code, and use `MockPacketStream` in tests. Since the functions are +not virtual and the two classes are unrelated, you must specify your choice at +*compile time* (as opposed to run time). + +One way to do it is to templatize your code that needs to use a packet stream. +More specifically, you will give your code a template type argument for the type +of the packet stream. In production, you will instantiate your template with +`ConcretePacketStream` as the type argument. In tests, you will instantiate the +same template with `MockPacketStream`. For example, you may write: + +```cpp +template +void CreateConnection(PacketStream* stream) { ... } + +template +class PacketReader { + public: + void ReadPackets(PacketStream* stream, size_t packet_num); +}; +``` + +Then you can use `CreateConnection()` and +`PacketReader` in production code, and use +`CreateConnection()` and `PacketReader` in +tests. + +```cpp + MockPacketStream mock_stream; + EXPECT_CALL(mock_stream, ...)...; + .. set more expectations on mock_stream ... + PacketReader reader(&mock_stream); + ... exercise reader ... +``` + +### Mocking Free Functions + +It is not possible to directly mock a free function (i.e. a C-style function or +a static method). If you need to, you can rewrite your code to use an interface +(abstract class). + +Instead of calling a free function (say, `OpenFile`) directly, introduce an +interface for it and have a concrete subclass that calls the free function: + +```cpp +class FileInterface { + public: + ... + virtual bool Open(const char* path, const char* mode) = 0; +}; + +class File : public FileInterface { + public: + ... + bool Open(const char* path, const char* mode) override { + return OpenFile(path, mode); + } +}; +``` + +Your code should talk to `FileInterface` to open a file. Now it's easy to mock +out the function. + +This may seem like a lot of hassle, but in practice you often have multiple +related functions that you can put in the same interface, so the per-function +syntactic overhead will be much lower. + +If you are concerned about the performance overhead incurred by virtual +functions, and profiling confirms your concern, you can combine this with the +recipe for [mocking non-virtual methods](#MockingNonVirtualMethods). + +Alternatively, instead of introducing a new interface, you can rewrite your code +to accept a std::function instead of the free function, and then use +[MockFunction](#MockFunction) to mock the std::function. + +### Old-Style `MOCK_METHODn` Macros + +Before the generic `MOCK_METHOD` macro +[was introduced in 2018](https://github.com/google/googletest/commit/c5f08bf91944ce1b19bcf414fa1760e69d20afc2), +mocks where created using a family of macros collectively called `MOCK_METHODn`. +These macros are still supported, though migration to the new `MOCK_METHOD` is +recommended. + +The macros in the `MOCK_METHODn` family differ from `MOCK_METHOD`: + +* The general structure is `MOCK_METHODn(MethodName, ReturnType(Args))`, + instead of `MOCK_METHOD(ReturnType, MethodName, (Args))`. +* The number `n` must equal the number of arguments. +* When mocking a const method, one must use `MOCK_CONST_METHODn`. +* When mocking a class template, the macro name must be suffixed with `_T`. +* In order to specify the call type, the macro name must be suffixed with + `_WITH_CALLTYPE`, and the call type is the first macro argument. + +Old macros and their new equivalents: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Simple
OldMOCK_METHOD1(Foo, bool(int))
NewMOCK_METHOD(bool, Foo, (int))
Const Method
OldMOCK_CONST_METHOD1(Foo, bool(int))
NewMOCK_METHOD(bool, Foo, (int), (const))
Method in a Class Template
OldMOCK_METHOD1_T(Foo, bool(int))
NewMOCK_METHOD(bool, Foo, (int))
Const Method in a Class Template
OldMOCK_CONST_METHOD1_T(Foo, bool(int))
NewMOCK_METHOD(bool, Foo, (int), (const))
Method with Call Type
OldMOCK_METHOD1_WITH_CALLTYPE(STDMETHODCALLTYPE, Foo, bool(int))
NewMOCK_METHOD(bool, Foo, (int), (Calltype(STDMETHODCALLTYPE)))
Const Method with Call Type
OldMOCK_CONST_METHOD1_WITH_CALLTYPE(STDMETHODCALLTYPE, Foo, bool(int))
NewMOCK_METHOD(bool, Foo, (int), (const, Calltype(STDMETHODCALLTYPE)))
Method with Call Type in a Class Template
OldMOCK_METHOD1_T_WITH_CALLTYPE(STDMETHODCALLTYPE, Foo, bool(int))
NewMOCK_METHOD(bool, Foo, (int), (Calltype(STDMETHODCALLTYPE)))
Const Method with Call Type in a Class Template
OldMOCK_CONST_METHOD1_T_WITH_CALLTYPE(STDMETHODCALLTYPE, Foo, bool(int))
NewMOCK_METHOD(bool, Foo, (int), (const, Calltype(STDMETHODCALLTYPE)))
+ +### The Nice, the Strict, and the Naggy {#NiceStrictNaggy} + +If a mock method has no `EXPECT_CALL` spec but is called, we say that it's an +"uninteresting call", and the default action (which can be specified using +`ON_CALL()`) of the method will be taken. Currently, an uninteresting call will +also by default cause gMock to print a warning. + +However, sometimes you may want to ignore these uninteresting calls, and +sometimes you may want to treat them as errors. gMock lets you make the decision +on a per-mock-object basis. + +Suppose your test uses a mock class `MockFoo`: + +```cpp +TEST(...) { + MockFoo mock_foo; + EXPECT_CALL(mock_foo, DoThis()); + ... code that uses mock_foo ... +} +``` + +If a method of `mock_foo` other than `DoThis()` is called, you will get a +warning. However, if you rewrite your test to use `NiceMock` instead, +you can suppress the warning: + +```cpp +using ::testing::NiceMock; + +TEST(...) { + NiceMock mock_foo; + EXPECT_CALL(mock_foo, DoThis()); + ... code that uses mock_foo ... +} +``` + +`NiceMock` is a subclass of `MockFoo`, so it can be used wherever +`MockFoo` is accepted. + +It also works if `MockFoo`'s constructor takes some arguments, as +`NiceMock` "inherits" `MockFoo`'s constructors: + +```cpp +using ::testing::NiceMock; + +TEST(...) { + NiceMock mock_foo(5, "hi"); // Calls MockFoo(5, "hi"). + EXPECT_CALL(mock_foo, DoThis()); + ... code that uses mock_foo ... +} +``` + +The usage of `StrictMock` is similar, except that it makes all uninteresting +calls failures: + +```cpp +using ::testing::StrictMock; + +TEST(...) { + StrictMock mock_foo; + EXPECT_CALL(mock_foo, DoThis()); + ... code that uses mock_foo ... + + // The test will fail if a method of mock_foo other than DoThis() + // is called. +} +``` + +{: .callout .note} +NOTE: `NiceMock` and `StrictMock` only affects *uninteresting* calls (calls of +*methods* with no expectations); they do not affect *unexpected* calls (calls of +methods with expectations, but they don't match). See +[Understanding Uninteresting vs Unexpected Calls](#uninteresting-vs-unexpected). + +There are some caveats though (sadly they are side effects of C++'s +limitations): + +1. `NiceMock` and `StrictMock` only work for mock methods + defined using the `MOCK_METHOD` macro **directly** in the `MockFoo` class. + If a mock method is defined in a **base class** of `MockFoo`, the "nice" or + "strict" modifier may not affect it, depending on the compiler. In + particular, nesting `NiceMock` and `StrictMock` (e.g. + `NiceMock >`) is **not** supported. +2. `NiceMock` and `StrictMock` may not work correctly if the + destructor of `MockFoo` is not virtual. We would like to fix this, but it + requires cleaning up existing tests. + +Finally, you should be **very cautious** about when to use naggy or strict +mocks, as they tend to make tests more brittle and harder to maintain. When you +refactor your code without changing its externally visible behavior, ideally you +shouldn't need to update any tests. If your code interacts with a naggy mock, +however, you may start to get spammed with warnings as the result of your +change. Worse, if your code interacts with a strict mock, your tests may start +to fail and you'll be forced to fix them. Our general recommendation is to use +nice mocks (not yet the default) most of the time, use naggy mocks (the current +default) when developing or debugging tests, and use strict mocks only as the +last resort. + +### Simplifying the Interface without Breaking Existing Code {#SimplerInterfaces} + +Sometimes a method has a long list of arguments that is mostly uninteresting. +For example: + +```cpp +class LogSink { + public: + ... + virtual void send(LogSeverity severity, const char* full_filename, + const char* base_filename, int line, + const struct tm* tm_time, + const char* message, size_t message_len) = 0; +}; +``` + +This method's argument list is lengthy and hard to work with (the `message` +argument is not even 0-terminated). If we mock it as is, using the mock will be +awkward. If, however, we try to simplify this interface, we'll need to fix all +clients depending on it, which is often infeasible. + +The trick is to redispatch the method in the mock class: + +```cpp +class ScopedMockLog : public LogSink { + public: + ... + void send(LogSeverity severity, const char* full_filename, + const char* base_filename, int line, const tm* tm_time, + const char* message, size_t message_len) override { + // We are only interested in the log severity, full file name, and + // log message. + Log(severity, full_filename, std::string(message, message_len)); + } + + // Implements the mock method: + // + // void Log(LogSeverity severity, + // const string& file_path, + // const string& message); + MOCK_METHOD(void, Log, + (LogSeverity severity, const string& file_path, + const string& message)); +}; +``` + +By defining a new mock method with a trimmed argument list, we make the mock +class more user-friendly. + +This technique may also be applied to make overloaded methods more amenable to +mocking. For example, when overloads have been used to implement default +arguments: + +```cpp +class MockTurtleFactory : public TurtleFactory { + public: + Turtle* MakeTurtle(int length, int weight) override { ... } + Turtle* MakeTurtle(int length, int weight, int speed) override { ... } + + // the above methods delegate to this one: + MOCK_METHOD(Turtle*, DoMakeTurtle, ()); +}; +``` + +This allows tests that don't care which overload was invoked to avoid specifying +argument matchers: + +```cpp +ON_CALL(factory, DoMakeTurtle) + .WillByDefault(Return(MakeMockTurtle())); +``` + +### Alternative to Mocking Concrete Classes + +Often you may find yourself using classes that don't implement interfaces. In +order to test your code that uses such a class (let's call it `Concrete`), you +may be tempted to make the methods of `Concrete` virtual and then mock it. + +Try not to do that. + +Making a non-virtual function virtual is a big decision. It creates an extension +point where subclasses can tweak your class' behavior. This weakens your control +on the class because now it's harder to maintain the class invariants. You +should make a function virtual only when there is a valid reason for a subclass +to override it. + +Mocking concrete classes directly is problematic as it creates a tight coupling +between the class and the tests - any small change in the class may invalidate +your tests and make test maintenance a pain. + +To avoid such problems, many programmers have been practicing "coding to +interfaces": instead of talking to the `Concrete` class, your code would define +an interface and talk to it. Then you implement that interface as an adaptor on +top of `Concrete`. In tests, you can easily mock that interface to observe how +your code is doing. + +This technique incurs some overhead: + +* You pay the cost of virtual function calls (usually not a problem). +* There is more abstraction for the programmers to learn. + +However, it can also bring significant benefits in addition to better +testability: + +* `Concrete`'s API may not fit your problem domain very well, as you may not + be the only client it tries to serve. By designing your own interface, you + have a chance to tailor it to your need - you may add higher-level + functionalities, rename stuff, etc instead of just trimming the class. This + allows you to write your code (user of the interface) in a more natural way, + which means it will be more readable, more maintainable, and you'll be more + productive. +* If `Concrete`'s implementation ever has to change, you don't have to rewrite + everywhere it is used. Instead, you can absorb the change in your + implementation of the interface, and your other code and tests will be + insulated from this change. + +Some people worry that if everyone is practicing this technique, they will end +up writing lots of redundant code. This concern is totally understandable. +However, there are two reasons why it may not be the case: + +* Different projects may need to use `Concrete` in different ways, so the best + interfaces for them will be different. Therefore, each of them will have its + own domain-specific interface on top of `Concrete`, and they will not be the + same code. +* If enough projects want to use the same interface, they can always share it, + just like they have been sharing `Concrete`. You can check in the interface + and the adaptor somewhere near `Concrete` (perhaps in a `contrib` + sub-directory) and let many projects use it. + +You need to weigh the pros and cons carefully for your particular problem, but +I'd like to assure you that the Java community has been practicing this for a +long time and it's a proven effective technique applicable in a wide variety of +situations. :-) + +### Delegating Calls to a Fake {#DelegatingToFake} + +Some times you have a non-trivial fake implementation of an interface. For +example: + +```cpp +class Foo { + public: + virtual ~Foo() {} + virtual char DoThis(int n) = 0; + virtual void DoThat(const char* s, int* p) = 0; +}; + +class FakeFoo : public Foo { + public: + char DoThis(int n) override { + return (n > 0) ? '+' : + (n < 0) ? '-' : '0'; + } + + void DoThat(const char* s, int* p) override { + *p = strlen(s); + } +}; +``` + +Now you want to mock this interface such that you can set expectations on it. +However, you also want to use `FakeFoo` for the default behavior, as duplicating +it in the mock object is, well, a lot of work. + +When you define the mock class using gMock, you can have it delegate its default +action to a fake class you already have, using this pattern: + +```cpp +class MockFoo : public Foo { + public: + // Normal mock method definitions using gMock. + MOCK_METHOD(char, DoThis, (int n), (override)); + MOCK_METHOD(void, DoThat, (const char* s, int* p), (override)); + + // Delegates the default actions of the methods to a FakeFoo object. + // This must be called *before* the custom ON_CALL() statements. + void DelegateToFake() { + ON_CALL(*this, DoThis).WillByDefault([this](int n) { + return fake_.DoThis(n); + }); + ON_CALL(*this, DoThat).WillByDefault([this](const char* s, int* p) { + fake_.DoThat(s, p); + }); + } + + private: + FakeFoo fake_; // Keeps an instance of the fake in the mock. +}; +``` + +With that, you can use `MockFoo` in your tests as usual. Just remember that if +you don't explicitly set an action in an `ON_CALL()` or `EXPECT_CALL()`, the +fake will be called upon to do it.: + +```cpp +using ::testing::_; + +TEST(AbcTest, Xyz) { + MockFoo foo; + + foo.DelegateToFake(); // Enables the fake for delegation. + + // Put your ON_CALL(foo, ...)s here, if any. + + // No action specified, meaning to use the default action. + EXPECT_CALL(foo, DoThis(5)); + EXPECT_CALL(foo, DoThat(_, _)); + + int n = 0; + EXPECT_EQ(foo.DoThis(5), '+'); // FakeFoo::DoThis() is invoked. + foo.DoThat("Hi", &n); // FakeFoo::DoThat() is invoked. + EXPECT_EQ(n, 2); +} +``` + +**Some tips:** + +* If you want, you can still override the default action by providing your own + `ON_CALL()` or using `.WillOnce()` / `.WillRepeatedly()` in `EXPECT_CALL()`. +* In `DelegateToFake()`, you only need to delegate the methods whose fake + implementation you intend to use. + +* The general technique discussed here works for overloaded methods, but + you'll need to tell the compiler which version you mean. To disambiguate a + mock function (the one you specify inside the parentheses of `ON_CALL()`), + use [this technique](#SelectOverload); to disambiguate a fake function (the + one you place inside `Invoke()`), use a `static_cast` to specify the + function's type. For instance, if class `Foo` has methods `char DoThis(int + n)` and `bool DoThis(double x) const`, and you want to invoke the latter, + you need to write `Invoke(&fake_, static_cast(&FakeFoo::DoThis))` instead of `Invoke(&fake_, &FakeFoo::DoThis)` + (The strange-looking thing inside the angled brackets of `static_cast` is + the type of a function pointer to the second `DoThis()` method.). + +* Having to mix a mock and a fake is often a sign of something gone wrong. + Perhaps you haven't got used to the interaction-based way of testing yet. Or + perhaps your interface is taking on too many roles and should be split up. + Therefore, **don't abuse this**. We would only recommend to do it as an + intermediate step when you are refactoring your code. + +Regarding the tip on mixing a mock and a fake, here's an example on why it may +be a bad sign: Suppose you have a class `System` for low-level system +operations. In particular, it does file and I/O operations. And suppose you want +to test how your code uses `System` to do I/O, and you just want the file +operations to work normally. If you mock out the entire `System` class, you'll +have to provide a fake implementation for the file operation part, which +suggests that `System` is taking on too many roles. + +Instead, you can define a `FileOps` interface and an `IOOps` interface and split +`System`'s functionalities into the two. Then you can mock `IOOps` without +mocking `FileOps`. + +### Delegating Calls to a Real Object + +When using testing doubles (mocks, fakes, stubs, and etc), sometimes their +behaviors will differ from those of the real objects. This difference could be +either intentional (as in simulating an error such that you can test the error +handling code) or unintentional. If your mocks have different behaviors than the +real objects by mistake, you could end up with code that passes the tests but +fails in production. + +You can use the *delegating-to-real* technique to ensure that your mock has the +same behavior as the real object while retaining the ability to validate calls. +This technique is very similar to the [delegating-to-fake](#DelegatingToFake) +technique, the difference being that we use a real object instead of a fake. +Here's an example: + +```cpp +using ::testing::AtLeast; + +class MockFoo : public Foo { + public: + MockFoo() { + // By default, all calls are delegated to the real object. + ON_CALL(*this, DoThis).WillByDefault([this](int n) { + return real_.DoThis(n); + }); + ON_CALL(*this, DoThat).WillByDefault([this](const char* s, int* p) { + real_.DoThat(s, p); + }); + ... + } + MOCK_METHOD(char, DoThis, ...); + MOCK_METHOD(void, DoThat, ...); + ... + private: + Foo real_; +}; + +... + MockFoo mock; + EXPECT_CALL(mock, DoThis()) + .Times(3); + EXPECT_CALL(mock, DoThat("Hi")) + .Times(AtLeast(1)); + ... use mock in test ... +``` + +With this, gMock will verify that your code made the right calls (with the right +arguments, in the right order, called the right number of times, etc), and a +real object will answer the calls (so the behavior will be the same as in +production). This gives you the best of both worlds. + +### Delegating Calls to a Parent Class + +Ideally, you should code to interfaces, whose methods are all pure virtual. In +reality, sometimes you do need to mock a virtual method that is not pure (i.e, +it already has an implementation). For example: + +```cpp +class Foo { + public: + virtual ~Foo(); + + virtual void Pure(int n) = 0; + virtual int Concrete(const char* str) { ... } +}; + +class MockFoo : public Foo { + public: + // Mocking a pure method. + MOCK_METHOD(void, Pure, (int n), (override)); + // Mocking a concrete method. Foo::Concrete() is shadowed. + MOCK_METHOD(int, Concrete, (const char* str), (override)); +}; +``` + +Sometimes you may want to call `Foo::Concrete()` instead of +`MockFoo::Concrete()`. Perhaps you want to do it as part of a stub action, or +perhaps your test doesn't need to mock `Concrete()` at all (but it would be +oh-so painful to have to define a new mock class whenever you don't need to mock +one of its methods). + +You can call `Foo::Concrete()` inside an action by: + +```cpp +... + EXPECT_CALL(foo, Concrete).WillOnce([&foo](const char* str) { + return foo.Foo::Concrete(str); + }); +``` + +or tell the mock object that you don't want to mock `Concrete()`: + +```cpp +... + ON_CALL(foo, Concrete).WillByDefault([&foo](const char* str) { + return foo.Foo::Concrete(str); + }); +``` + +(Why don't we just write `{ return foo.Concrete(str); }`? If you do that, +`MockFoo::Concrete()` will be called (and cause an infinite recursion) since +`Foo::Concrete()` is virtual. That's just how C++ works.) + +## Using Matchers + +### Matching Argument Values Exactly + +You can specify exactly which arguments a mock method is expecting: + +```cpp +using ::testing::Return; +... + EXPECT_CALL(foo, DoThis(5)) + .WillOnce(Return('a')); + EXPECT_CALL(foo, DoThat("Hello", bar)); +``` + +### Using Simple Matchers + +You can use matchers to match arguments that have a certain property: + +```cpp +using ::testing::NotNull; +using ::testing::Return; +... + EXPECT_CALL(foo, DoThis(Ge(5))) // The argument must be >= 5. + .WillOnce(Return('a')); + EXPECT_CALL(foo, DoThat("Hello", NotNull())); + // The second argument must not be NULL. +``` + +A frequently used matcher is `_`, which matches anything: + +```cpp + EXPECT_CALL(foo, DoThat(_, NotNull())); +``` + +### Combining Matchers {#CombiningMatchers} + +You can build complex matchers from existing ones using `AllOf()`, +`AllOfArray()`, `AnyOf()`, `AnyOfArray()` and `Not()`: + +```cpp +using ::testing::AllOf; +using ::testing::Gt; +using ::testing::HasSubstr; +using ::testing::Ne; +using ::testing::Not; +... + // The argument must be > 5 and != 10. + EXPECT_CALL(foo, DoThis(AllOf(Gt(5), + Ne(10)))); + + // The first argument must not contain sub-string "blah". + EXPECT_CALL(foo, DoThat(Not(HasSubstr("blah")), + NULL)); +``` + +Matchers are function objects, and parametrized matchers can be composed just +like any other function. However because their types can be long and rarely +provide meaningful information, it can be easier to express them with C++14 +generic lambdas to avoid specifying types. For example, + +```cpp +using ::testing::Contains; +using ::testing::Property; + +inline constexpr auto HasFoo = [](const auto& f) { + return Property("foo", &MyClass::foo, Contains(f)); +}; +... + EXPECT_THAT(x, HasFoo("blah")); +``` + +### Casting Matchers {#SafeMatcherCast} + +gMock matchers are statically typed, meaning that the compiler can catch your +mistake if you use a matcher of the wrong type (for example, if you use `Eq(5)` +to match a `string` argument). Good for you! + +Sometimes, however, you know what you're doing and want the compiler to give you +some slack. One example is that you have a matcher for `long` and the argument +you want to match is `int`. While the two types aren't exactly the same, there +is nothing really wrong with using a `Matcher` to match an `int` - after +all, we can first convert the `int` argument to a `long` losslessly before +giving it to the matcher. + +To support this need, gMock gives you the `SafeMatcherCast(m)` function. It +casts a matcher `m` to type `Matcher`. To ensure safety, gMock checks that +(let `U` be the type `m` accepts : + +1. Type `T` can be *implicitly* cast to type `U`; +2. When both `T` and `U` are built-in arithmetic types (`bool`, integers, and + floating-point numbers), the conversion from `T` to `U` is not lossy (in + other words, any value representable by `T` can also be represented by `U`); + and +3. When `U` is a reference, `T` must also be a reference (as the underlying + matcher may be interested in the address of the `U` value). + +The code won't compile if any of these conditions isn't met. + +Here's one example: + +```cpp +using ::testing::SafeMatcherCast; + +// A base class and a child class. +class Base { ... }; +class Derived : public Base { ... }; + +class MockFoo : public Foo { + public: + MOCK_METHOD(void, DoThis, (Derived* derived), (override)); +}; + +... + MockFoo foo; + // m is a Matcher we got from somewhere. + EXPECT_CALL(foo, DoThis(SafeMatcherCast(m))); +``` + +If you find `SafeMatcherCast(m)` too limiting, you can use a similar function +`MatcherCast(m)`. The difference is that `MatcherCast` works as long as you +can `static_cast` type `T` to type `U`. + +`MatcherCast` essentially lets you bypass C++'s type system (`static_cast` isn't +always safe as it could throw away information, for example), so be careful not +to misuse/abuse it. + +### Selecting Between Overloaded Functions {#SelectOverload} + +If you expect an overloaded function to be called, the compiler may need some +help on which overloaded version it is. + +To disambiguate functions overloaded on the const-ness of this object, use the +`Const()` argument wrapper. + +```cpp +using ::testing::ReturnRef; + +class MockFoo : public Foo { + ... + MOCK_METHOD(Bar&, GetBar, (), (override)); + MOCK_METHOD(const Bar&, GetBar, (), (const, override)); +}; + +... + MockFoo foo; + Bar bar1, bar2; + EXPECT_CALL(foo, GetBar()) // The non-const GetBar(). + .WillOnce(ReturnRef(bar1)); + EXPECT_CALL(Const(foo), GetBar()) // The const GetBar(). + .WillOnce(ReturnRef(bar2)); +``` + +(`Const()` is defined by gMock and returns a `const` reference to its argument.) + +To disambiguate overloaded functions with the same number of arguments but +different argument types, you may need to specify the exact type of a matcher, +either by wrapping your matcher in `Matcher()`, or using a matcher whose +type is fixed (`TypedEq`, `An()`, etc): + +```cpp +using ::testing::An; +using ::testing::Matcher; +using ::testing::TypedEq; + +class MockPrinter : public Printer { + public: + MOCK_METHOD(void, Print, (int n), (override)); + MOCK_METHOD(void, Print, (char c), (override)); +}; + +TEST(PrinterTest, Print) { + MockPrinter printer; + + EXPECT_CALL(printer, Print(An())); // void Print(int); + EXPECT_CALL(printer, Print(Matcher(Lt(5)))); // void Print(int); + EXPECT_CALL(printer, Print(TypedEq('a'))); // void Print(char); + + printer.Print(3); + printer.Print(6); + printer.Print('a'); +} +``` + +### Performing Different Actions Based on the Arguments + +When a mock method is called, the *last* matching expectation that's still +active will be selected (think "newer overrides older"). So, you can make a +method do different things depending on its argument values like this: + +```cpp +using ::testing::_; +using ::testing::Lt; +using ::testing::Return; +... + // The default case. + EXPECT_CALL(foo, DoThis(_)) + .WillRepeatedly(Return('b')); + // The more specific case. + EXPECT_CALL(foo, DoThis(Lt(5))) + .WillRepeatedly(Return('a')); +``` + +Now, if `foo.DoThis()` is called with a value less than 5, `'a'` will be +returned; otherwise `'b'` will be returned. + +### Matching Multiple Arguments as a Whole + +Sometimes it's not enough to match the arguments individually. For example, we +may want to say that the first argument must be less than the second argument. +The `With()` clause allows us to match all arguments of a mock function as a +whole. For example, + +```cpp +using ::testing::_; +using ::testing::Ne; +using ::testing::Lt; +... + EXPECT_CALL(foo, InRange(Ne(0), _)) + .With(Lt()); +``` + +says that the first argument of `InRange()` must not be 0, and must be less than +the second argument. + +The expression inside `With()` must be a matcher of type `Matcher>`, where `A1`, ..., `An` are the types of the function arguments. + +You can also write `AllArgs(m)` instead of `m` inside `.With()`. The two forms +are equivalent, but `.With(AllArgs(Lt()))` is more readable than `.With(Lt())`. + +You can use `Args(m)` to match the `n` selected arguments (as a +tuple) against `m`. For example, + +```cpp +using ::testing::_; +using ::testing::AllOf; +using ::testing::Args; +using ::testing::Lt; +... + EXPECT_CALL(foo, Blah) + .With(AllOf(Args<0, 1>(Lt()), Args<1, 2>(Lt()))); +``` + +says that `Blah` will be called with arguments `x`, `y`, and `z` where `x < y < +z`. Note that in this example, it wasn't necessary to specify the positional +matchers. + +As a convenience and example, gMock provides some matchers for 2-tuples, +including the `Lt()` matcher above. See +[Multi-argument Matchers](reference/matchers.md#MultiArgMatchers) for the +complete list. + +Note that if you want to pass the arguments to a predicate of your own (e.g. +`.With(Args<0, 1>(Truly(&MyPredicate)))`), that predicate MUST be written to +take a `std::tuple` as its argument; gMock will pass the `n` selected arguments +as *one* single tuple to the predicate. + +### Using Matchers as Predicates + +Have you noticed that a matcher is just a fancy predicate that also knows how to +describe itself? Many existing algorithms take predicates as arguments (e.g. +those defined in STL's `` header), and it would be a shame if gMock +matchers were not allowed to participate. + +Luckily, you can use a matcher where a unary predicate functor is expected by +wrapping it inside the `Matches()` function. For example, + +```cpp +#include +#include + +using ::testing::Matches; +using ::testing::Ge; + +vector v; +... +// How many elements in v are >= 10? +const int count = count_if(v.begin(), v.end(), Matches(Ge(10))); +``` + +Since you can build complex matchers from simpler ones easily using gMock, this +gives you a way to conveniently construct composite predicates (doing the same +using STL's `` header is just painful). For example, here's a +predicate that's satisfied by any number that is >= 0, <= 100, and != 50: + +```cpp +using ::testing::AllOf; +using ::testing::Ge; +using ::testing::Le; +using ::testing::Matches; +using ::testing::Ne; +... +Matches(AllOf(Ge(0), Le(100), Ne(50))) +``` + +### Using Matchers in googletest Assertions + +See [`EXPECT_THAT`](reference/assertions.md#EXPECT_THAT) in the Assertions +Reference. + +### Using Predicates as Matchers + +gMock provides a set of built-in matchers for matching arguments with expected +values—see the [Matchers Reference](reference/matchers.md) for more information. +In case you find the built-in set lacking, you can use an arbitrary unary +predicate function or functor as a matcher - as long as the predicate accepts a +value of the type you want. You do this by wrapping the predicate inside the +`Truly()` function, for example: + +```cpp +using ::testing::Truly; + +int IsEven(int n) { return (n % 2) == 0 ? 1 : 0; } +... + // Bar() must be called with an even number. + EXPECT_CALL(foo, Bar(Truly(IsEven))); +``` + +Note that the predicate function / functor doesn't have to return `bool`. It +works as long as the return value can be used as the condition in the statement +`if (condition) ...`. + +### Matching Arguments that Are Not Copyable + +When you do an `EXPECT_CALL(mock_obj, Foo(bar))`, gMock saves away a copy of +`bar`. When `Foo()` is called later, gMock compares the argument to `Foo()` with +the saved copy of `bar`. This way, you don't need to worry about `bar` being +modified or destroyed after the `EXPECT_CALL()` is executed. The same is true +when you use matchers like `Eq(bar)`, `Le(bar)`, and so on. + +But what if `bar` cannot be copied (i.e. has no copy constructor)? You could +define your own matcher function or callback and use it with `Truly()`, as the +previous couple of recipes have shown. Or, you may be able to get away from it +if you can guarantee that `bar` won't be changed after the `EXPECT_CALL()` is +executed. Just tell gMock that it should save a reference to `bar`, instead of a +copy of it. Here's how: + +```cpp +using ::testing::Eq; +using ::testing::Lt; +... + // Expects that Foo()'s argument == bar. + EXPECT_CALL(mock_obj, Foo(Eq(std::ref(bar)))); + + // Expects that Foo()'s argument < bar. + EXPECT_CALL(mock_obj, Foo(Lt(std::ref(bar)))); +``` + +Remember: if you do this, don't change `bar` after the `EXPECT_CALL()`, or the +result is undefined. + +### Validating a Member of an Object + +Often a mock function takes a reference to object as an argument. When matching +the argument, you may not want to compare the entire object against a fixed +object, as that may be over-specification. Instead, you may need to validate a +certain member variable or the result of a certain getter method of the object. +You can do this with `Field()` and `Property()`. More specifically, + +```cpp +Field(&Foo::bar, m) +``` + +is a matcher that matches a `Foo` object whose `bar` member variable satisfies +matcher `m`. + +```cpp +Property(&Foo::baz, m) +``` + +is a matcher that matches a `Foo` object whose `baz()` method returns a value +that satisfies matcher `m`. + +For example: + +| Expression | Description | +| :--------------------------- | :--------------------------------------- | +| `Field(&Foo::number, Ge(3))` | Matches `x` where `x.number >= 3`. | +| `Property(&Foo::name, StartsWith("John "))` | Matches `x` where `x.name()` starts with `"John "`. | + +Note that in `Property(&Foo::baz, ...)`, method `baz()` must take no argument +and be declared as `const`. Don't use `Property()` against member functions that +you do not own, because taking addresses of functions is fragile and generally +not part of the contract of the function. + +`Field()` and `Property()` can also match plain pointers to objects. For +instance, + +```cpp +using ::testing::Field; +using ::testing::Ge; +... +Field(&Foo::number, Ge(3)) +``` + +matches a plain pointer `p` where `p->number >= 3`. If `p` is `NULL`, the match +will always fail regardless of the inner matcher. + +What if you want to validate more than one members at the same time? Remember +that there are [`AllOf()` and `AllOfArray()`](#CombiningMatchers). + +Finally `Field()` and `Property()` provide overloads that take the field or +property names as the first argument to include it in the error message. This +can be useful when creating combined matchers. + +```cpp +using ::testing::AllOf; +using ::testing::Field; +using ::testing::Matcher; +using ::testing::SafeMatcherCast; + +Matcher IsFoo(const Foo& foo) { + return AllOf(Field("some_field", &Foo::some_field, foo.some_field), + Field("other_field", &Foo::other_field, foo.other_field), + Field("last_field", &Foo::last_field, foo.last_field)); +} +``` + +### Validating the Value Pointed to by a Pointer Argument + +C++ functions often take pointers as arguments. You can use matchers like +`IsNull()`, `NotNull()`, and other comparison matchers to match a pointer, but +what if you want to make sure the value *pointed to* by the pointer, instead of +the pointer itself, has a certain property? Well, you can use the `Pointee(m)` +matcher. + +`Pointee(m)` matches a pointer if and only if `m` matches the value the pointer +points to. For example: + +```cpp +using ::testing::Ge; +using ::testing::Pointee; +... + EXPECT_CALL(foo, Bar(Pointee(Ge(3)))); +``` + +expects `foo.Bar()` to be called with a pointer that points to a value greater +than or equal to 3. + +One nice thing about `Pointee()` is that it treats a `NULL` pointer as a match +failure, so you can write `Pointee(m)` instead of + +```cpp +using ::testing::AllOf; +using ::testing::NotNull; +using ::testing::Pointee; +... + AllOf(NotNull(), Pointee(m)) +``` + +without worrying that a `NULL` pointer will crash your test. + +Also, did we tell you that `Pointee()` works with both raw pointers **and** +smart pointers (`std::unique_ptr`, `std::shared_ptr`, etc)? + +What if you have a pointer to pointer? You guessed it - you can use nested +`Pointee()` to probe deeper inside the value. For example, +`Pointee(Pointee(Lt(3)))` matches a pointer that points to a pointer that points +to a number less than 3 (what a mouthful...). + +### Defining a Custom Matcher Class {#CustomMatcherClass} + +Most matchers can be simply defined using [the MATCHER* macros](#NewMatchers), +which are terse and flexible, and produce good error messages. However, these +macros are not very explicit about the interfaces they create and are not always +suitable, especially for matchers that will be widely reused. + +For more advanced cases, you may need to define your own matcher class. A custom +matcher allows you to test a specific invariant property of that object. Let's +take a look at how to do so. + +Imagine you have a mock function that takes an object of type `Foo`, which has +an `int bar()` method and an `int baz()` method. You want to constrain that the +argument's `bar()` value plus its `baz()` value is a given number. (This is an +invariant.) Here's how we can write and use a matcher class to do so: + +```cpp +class BarPlusBazEqMatcher { + public: + using is_gtest_matcher = void; + + explicit BarPlusBazEqMatcher(int expected_sum) + : expected_sum_(expected_sum) {} + + bool MatchAndExplain(const Foo& foo, + std::ostream* /* listener */) const { + return (foo.bar() + foo.baz()) == expected_sum_; + } + + void DescribeTo(std::ostream* os) const { + *os << "bar() + baz() equals " << expected_sum_; + } + + void DescribeNegationTo(std::ostream* os) const { + *os << "bar() + baz() does not equal " << expected_sum_; + } + private: + const int expected_sum_; +}; + +::testing::Matcher BarPlusBazEq(int expected_sum) { + return BarPlusBazEqMatcher(expected_sum); +} + +... + Foo foo; + EXPECT_THAT(foo, BarPlusBazEq(5))...; +``` + +### Matching Containers + +Sometimes an STL container (e.g. list, vector, map, ...) is passed to a mock +function and you may want to validate it. Since most STL containers support the +`==` operator, you can write `Eq(expected_container)` or simply +`expected_container` to match a container exactly. + +Sometimes, though, you may want to be more flexible (for example, the first +element must be an exact match, but the second element can be any positive +number, and so on). Also, containers used in tests often have a small number of +elements, and having to define the expected container out-of-line is a bit of a +hassle. + +You can use the `ElementsAre()` or `UnorderedElementsAre()` matcher in such +cases: + +```cpp +using ::testing::_; +using ::testing::ElementsAre; +using ::testing::Gt; +... + MOCK_METHOD(void, Foo, (const vector& numbers), (override)); +... + EXPECT_CALL(mock, Foo(ElementsAre(1, Gt(0), _, 5))); +``` + +The above matcher says that the container must have 4 elements, which must be 1, +greater than 0, anything, and 5 respectively. + +If you instead write: + +```cpp +using ::testing::_; +using ::testing::Gt; +using ::testing::UnorderedElementsAre; +... + MOCK_METHOD(void, Foo, (const vector& numbers), (override)); +... + EXPECT_CALL(mock, Foo(UnorderedElementsAre(1, Gt(0), _, 5))); +``` + +It means that the container must have 4 elements, which (under some permutation) +must be 1, greater than 0, anything, and 5 respectively. + +As an alternative you can place the arguments in a C-style array and use +`ElementsAreArray()` or `UnorderedElementsAreArray()` instead: + +```cpp +using ::testing::ElementsAreArray; +... + // ElementsAreArray accepts an array of element values. + const int expected_vector1[] = {1, 5, 2, 4, ...}; + EXPECT_CALL(mock, Foo(ElementsAreArray(expected_vector1))); + + // Or, an array of element matchers. + Matcher expected_vector2[] = {1, Gt(2), _, 3, ...}; + EXPECT_CALL(mock, Foo(ElementsAreArray(expected_vector2))); +``` + +In case the array needs to be dynamically created (and therefore the array size +cannot be inferred by the compiler), you can give `ElementsAreArray()` an +additional argument to specify the array size: + +```cpp +using ::testing::ElementsAreArray; +... + int* const expected_vector3 = new int[count]; + ... fill expected_vector3 with values ... + EXPECT_CALL(mock, Foo(ElementsAreArray(expected_vector3, count))); +``` + +Use `Pair` when comparing maps or other associative containers. + +{% raw %} + +```cpp +using ::testing::UnorderedElementsAre; +using ::testing::Pair; +... + absl::flat_hash_map m = {{"a", 1}, {"b", 2}, {"c", 3}}; + EXPECT_THAT(m, UnorderedElementsAre( + Pair("a", 1), Pair("b", 2), Pair("c", 3))); +``` + +{% endraw %} + +**Tips:** + +* `ElementsAre*()` can be used to match *any* container that implements the + STL iterator pattern (i.e. it has a `const_iterator` type and supports + `begin()/end()`), not just the ones defined in STL. It will even work with + container types yet to be written - as long as they follows the above + pattern. +* You can use nested `ElementsAre*()` to match nested (multi-dimensional) + containers. +* If the container is passed by pointer instead of by reference, just write + `Pointee(ElementsAre*(...))`. +* The order of elements *matters* for `ElementsAre*()`. If you are using it + with containers whose element order are undefined (such as a + `std::unordered_map`) you should use `UnorderedElementsAre`. + +### Sharing Matchers + +Under the hood, a gMock matcher object consists of a pointer to a ref-counted +implementation object. Copying matchers is allowed and very efficient, as only +the pointer is copied. When the last matcher that references the implementation +object dies, the implementation object will be deleted. + +Therefore, if you have some complex matcher that you want to use again and +again, there is no need to build it every time. Just assign it to a matcher +variable and use that variable repeatedly! For example, + +```cpp +using ::testing::AllOf; +using ::testing::Gt; +using ::testing::Le; +using ::testing::Matcher; +... + Matcher in_range = AllOf(Gt(5), Le(10)); + ... use in_range as a matcher in multiple EXPECT_CALLs ... +``` + +### Matchers must have no side-effects {#PureMatchers} + +{: .callout .warning} +WARNING: gMock does not guarantee when or how many times a matcher will be +invoked. Therefore, all matchers must be *purely functional*: they cannot have +any side effects, and the match result must not depend on anything other than +the matcher's parameters and the value being matched. + +This requirement must be satisfied no matter how a matcher is defined (e.g., if +it is one of the standard matchers, or a custom matcher). In particular, a +matcher can never call a mock function, as that will affect the state of the +mock object and gMock. + +## Setting Expectations + +### Knowing When to Expect {#UseOnCall} + +**`ON_CALL`** is likely the *single most under-utilized construct* in gMock. + +There are basically two constructs for defining the behavior of a mock object: +`ON_CALL` and `EXPECT_CALL`. The difference? `ON_CALL` defines what happens when +a mock method is called, but doesn't imply any expectation on the method +being called. `EXPECT_CALL` not only defines the behavior, but also sets an +expectation that the method will be called with the given arguments, for the +given number of times (and *in the given order* when you specify the order +too). + +Since `EXPECT_CALL` does more, isn't it better than `ON_CALL`? Not really. Every +`EXPECT_CALL` adds a constraint on the behavior of the code under test. Having +more constraints than necessary is *baaad* - even worse than not having enough +constraints. + +This may be counter-intuitive. How could tests that verify more be worse than +tests that verify less? Isn't verification the whole point of tests? + +The answer lies in *what* a test should verify. **A good test verifies the +contract of the code.** If a test over-specifies, it doesn't leave enough +freedom to the implementation. As a result, changing the implementation without +breaking the contract (e.g. refactoring and optimization), which should be +perfectly fine to do, can break such tests. Then you have to spend time fixing +them, only to see them broken again the next time the implementation is changed. + +Keep in mind that one doesn't have to verify more than one property in one test. +In fact, **it's a good style to verify only one thing in one test.** If you do +that, a bug will likely break only one or two tests instead of dozens (which +case would you rather debug?). If you are also in the habit of giving tests +descriptive names that tell what they verify, you can often easily guess what's +wrong just from the test log itself. + +So use `ON_CALL` by default, and only use `EXPECT_CALL` when you actually intend +to verify that the call is made. For example, you may have a bunch of `ON_CALL`s +in your test fixture to set the common mock behavior shared by all tests in the +same group, and write (scarcely) different `EXPECT_CALL`s in different `TEST_F`s +to verify different aspects of the code's behavior. Compared with the style +where each `TEST` has many `EXPECT_CALL`s, this leads to tests that are more +resilient to implementational changes (and thus less likely to require +maintenance) and makes the intent of the tests more obvious (so they are easier +to maintain when you do need to maintain them). + +If you are bothered by the "Uninteresting mock function call" message printed +when a mock method without an `EXPECT_CALL` is called, you may use a `NiceMock` +instead to suppress all such messages for the mock object, or suppress the +message for specific methods by adding `EXPECT_CALL(...).Times(AnyNumber())`. DO +NOT suppress it by blindly adding an `EXPECT_CALL(...)`, or you'll have a test +that's a pain to maintain. + +### Ignoring Uninteresting Calls + +If you are not interested in how a mock method is called, just don't say +anything about it. In this case, if the method is ever called, gMock will +perform its default action to allow the test program to continue. If you are not +happy with the default action taken by gMock, you can override it using +`DefaultValue::Set()` (described [here](#DefaultValue)) or `ON_CALL()`. + +Please note that once you expressed interest in a particular mock method (via +`EXPECT_CALL()`), all invocations to it must match some expectation. If this +function is called but the arguments don't match any `EXPECT_CALL()` statement, +it will be an error. + +### Disallowing Unexpected Calls + +If a mock method shouldn't be called at all, explicitly say so: + +```cpp +using ::testing::_; +... + EXPECT_CALL(foo, Bar(_)) + .Times(0); +``` + +If some calls to the method are allowed, but the rest are not, just list all the +expected calls: + +```cpp +using ::testing::AnyNumber; +using ::testing::Gt; +... + EXPECT_CALL(foo, Bar(5)); + EXPECT_CALL(foo, Bar(Gt(10))) + .Times(AnyNumber()); +``` + +A call to `foo.Bar()` that doesn't match any of the `EXPECT_CALL()` statements +will be an error. + +### Understanding Uninteresting vs Unexpected Calls {#uninteresting-vs-unexpected} + +*Uninteresting* calls and *unexpected* calls are different concepts in gMock. +*Very* different. + +A call `x.Y(...)` is **uninteresting** if there's *not even a single* +`EXPECT_CALL(x, Y(...))` set. In other words, the test isn't interested in the +`x.Y()` method at all, as evident in that the test doesn't care to say anything +about it. + +A call `x.Y(...)` is **unexpected** if there are *some* `EXPECT_CALL(x, +Y(...))`s set, but none of them matches the call. Put another way, the test is +interested in the `x.Y()` method (therefore it explicitly sets some +`EXPECT_CALL` to verify how it's called); however, the verification fails as the +test doesn't expect this particular call to happen. + +**An unexpected call is always an error,** as the code under test doesn't behave +the way the test expects it to behave. + +**By default, an uninteresting call is not an error,** as it violates no +constraint specified by the test. (gMock's philosophy is that saying nothing +means there is no constraint.) However, it leads to a warning, as it *might* +indicate a problem (e.g. the test author might have forgotten to specify a +constraint). + +In gMock, `NiceMock` and `StrictMock` can be used to make a mock class "nice" or +"strict". How does this affect uninteresting calls and unexpected calls? + +A **nice mock** suppresses uninteresting call *warnings*. It is less chatty than +the default mock, but otherwise is the same. If a test fails with a default +mock, it will also fail using a nice mock instead. And vice versa. Don't expect +making a mock nice to change the test's result. + +A **strict mock** turns uninteresting call warnings into errors. So making a +mock strict may change the test's result. + +Let's look at an example: + +```cpp +TEST(...) { + NiceMock mock_registry; + EXPECT_CALL(mock_registry, GetDomainOwner("google.com")) + .WillRepeatedly(Return("Larry Page")); + + // Use mock_registry in code under test. + ... &mock_registry ... +} +``` + +The sole `EXPECT_CALL` here says that all calls to `GetDomainOwner()` must have +`"google.com"` as the argument. If `GetDomainOwner("yahoo.com")` is called, it +will be an unexpected call, and thus an error. *Having a nice mock doesn't +change the severity of an unexpected call.* + +So how do we tell gMock that `GetDomainOwner()` can be called with some other +arguments as well? The standard technique is to add a "catch all" `EXPECT_CALL`: + +```cpp + EXPECT_CALL(mock_registry, GetDomainOwner(_)) + .Times(AnyNumber()); // catches all other calls to this method. + EXPECT_CALL(mock_registry, GetDomainOwner("google.com")) + .WillRepeatedly(Return("Larry Page")); +``` + +Remember that `_` is the wildcard matcher that matches anything. With this, if +`GetDomainOwner("google.com")` is called, it will do what the second +`EXPECT_CALL` says; if it is called with a different argument, it will do what +the first `EXPECT_CALL` says. + +Note that the order of the two `EXPECT_CALL`s is important, as a newer +`EXPECT_CALL` takes precedence over an older one. + +For more on uninteresting calls, nice mocks, and strict mocks, read +["The Nice, the Strict, and the Naggy"](#NiceStrictNaggy). + +### Ignoring Uninteresting Arguments {#ParameterlessExpectations} + +If your test doesn't care about the parameters (it only cares about the number +or order of calls), you can often simply omit the parameter list: + +```cpp + // Expect foo.Bar( ... ) twice with any arguments. + EXPECT_CALL(foo, Bar).Times(2); + + // Delegate to the given method whenever the factory is invoked. + ON_CALL(foo_factory, MakeFoo) + .WillByDefault(&BuildFooForTest); +``` + +This functionality is only available when a method is not overloaded; to prevent +unexpected behavior it is a compilation error to try to set an expectation on a +method where the specific overload is ambiguous. You can work around this by +supplying a [simpler mock interface](#SimplerInterfaces) than the mocked class +provides. + +This pattern is also useful when the arguments are interesting, but match logic +is substantially complex. You can leave the argument list unspecified and use +SaveArg actions to [save the values for later verification](#SaveArgVerify). If +you do that, you can easily differentiate calling the method the wrong number of +times from calling it with the wrong arguments. + +### Expecting Ordered Calls {#OrderedCalls} + +Although an `EXPECT_CALL()` statement defined later takes precedence when gMock +tries to match a function call with an expectation, by default calls don't have +to happen in the order `EXPECT_CALL()` statements are written. For example, if +the arguments match the matchers in the second `EXPECT_CALL()`, but not those in +the first and third, then the second expectation will be used. + +If you would rather have all calls occur in the order of the expectations, put +the `EXPECT_CALL()` statements in a block where you define a variable of type +`InSequence`: + +```cpp +using ::testing::_; +using ::testing::InSequence; + + { + InSequence s; + + EXPECT_CALL(foo, DoThis(5)); + EXPECT_CALL(bar, DoThat(_)) + .Times(2); + EXPECT_CALL(foo, DoThis(6)); + } +``` + +In this example, we expect a call to `foo.DoThis(5)`, followed by two calls to +`bar.DoThat()` where the argument can be anything, which are in turn followed by +a call to `foo.DoThis(6)`. If a call occurred out-of-order, gMock will report an +error. + +### Expecting Partially Ordered Calls {#PartialOrder} + +Sometimes requiring everything to occur in a predetermined order can lead to +brittle tests. For example, we may care about `A` occurring before both `B` and +`C`, but aren't interested in the relative order of `B` and `C`. In this case, +the test should reflect our real intent, instead of being overly constraining. + +gMock allows you to impose an arbitrary DAG (directed acyclic graph) on the +calls. One way to express the DAG is to use the +[`After` clause](reference/mocking.md#EXPECT_CALL.After) of `EXPECT_CALL`. + +Another way is via the `InSequence()` clause (not the same as the `InSequence` +class), which we borrowed from jMock 2. It's less flexible than `After()`, but +more convenient when you have long chains of sequential calls, as it doesn't +require you to come up with different names for the expectations in the chains. +Here's how it works: + +If we view `EXPECT_CALL()` statements as nodes in a graph, and add an edge from +node A to node B wherever A must occur before B, we can get a DAG. We use the +term "sequence" to mean a directed path in this DAG. Now, if we decompose the +DAG into sequences, we just need to know which sequences each `EXPECT_CALL()` +belongs to in order to be able to reconstruct the original DAG. + +So, to specify the partial order on the expectations we need to do two things: +first to define some `Sequence` objects, and then for each `EXPECT_CALL()` say +which `Sequence` objects it is part of. + +Expectations in the same sequence must occur in the order they are written. For +example, + +```cpp +using ::testing::Sequence; +... + Sequence s1, s2; + + EXPECT_CALL(foo, A()) + .InSequence(s1, s2); + EXPECT_CALL(bar, B()) + .InSequence(s1); + EXPECT_CALL(bar, C()) + .InSequence(s2); + EXPECT_CALL(foo, D()) + .InSequence(s2); +``` + +specifies the following DAG (where `s1` is `A -> B`, and `s2` is `A -> C -> D`): + +```text + +---> B + | + A ---| + | + +---> C ---> D +``` + +This means that A must occur before B and C, and C must occur before D. There's +no restriction about the order other than these. + +### Controlling When an Expectation Retires + +When a mock method is called, gMock only considers expectations that are still +active. An expectation is active when created, and becomes inactive (aka +*retires*) when a call that has to occur later has occurred. For example, in + +```cpp +using ::testing::_; +using ::testing::Sequence; +... + Sequence s1, s2; + + EXPECT_CALL(log, Log(WARNING, _, "File too large.")) // #1 + .Times(AnyNumber()) + .InSequence(s1, s2); + EXPECT_CALL(log, Log(WARNING, _, "Data set is empty.")) // #2 + .InSequence(s1); + EXPECT_CALL(log, Log(WARNING, _, "User not found.")) // #3 + .InSequence(s2); +``` + +as soon as either #2 or #3 is matched, #1 will retire. If a warning `"File too +large."` is logged after this, it will be an error. + +Note that an expectation doesn't retire automatically when it's saturated. For +example, + +```cpp +using ::testing::_; +... + EXPECT_CALL(log, Log(WARNING, _, _)); // #1 + EXPECT_CALL(log, Log(WARNING, _, "File too large.")); // #2 +``` + +says that there will be exactly one warning with the message `"File too +large."`. If the second warning contains this message too, #2 will match again +and result in an upper-bound-violated error. + +If this is not what you want, you can ask an expectation to retire as soon as it +becomes saturated: + +```cpp +using ::testing::_; +... + EXPECT_CALL(log, Log(WARNING, _, _)); // #1 + EXPECT_CALL(log, Log(WARNING, _, "File too large.")) // #2 + .RetiresOnSaturation(); +``` + +Here #2 can be used only once, so if you have two warnings with the message +`"File too large."`, the first will match #2 and the second will match #1 - +there will be no error. + +## Using Actions + +### Returning References from Mock Methods + +If a mock function's return type is a reference, you need to use `ReturnRef()` +instead of `Return()` to return a result: + +```cpp +using ::testing::ReturnRef; + +class MockFoo : public Foo { + public: + MOCK_METHOD(Bar&, GetBar, (), (override)); +}; +... + MockFoo foo; + Bar bar; + EXPECT_CALL(foo, GetBar()) + .WillOnce(ReturnRef(bar)); +... +``` + +### Returning Live Values from Mock Methods + +The `Return(x)` action saves a copy of `x` when the action is created, and +always returns the same value whenever it's executed. Sometimes you may want to +instead return the *live* value of `x` (i.e. its value at the time when the +action is *executed*.). Use either `ReturnRef()` or `ReturnPointee()` for this +purpose. + +If the mock function's return type is a reference, you can do it using +`ReturnRef(x)`, as shown in the previous recipe ("Returning References from Mock +Methods"). However, gMock doesn't let you use `ReturnRef()` in a mock function +whose return type is not a reference, as doing that usually indicates a user +error. So, what shall you do? + +Though you may be tempted, DO NOT use `std::ref()`: + +```cpp +using ::testing::Return; + +class MockFoo : public Foo { + public: + MOCK_METHOD(int, GetValue, (), (override)); +}; +... + int x = 0; + MockFoo foo; + EXPECT_CALL(foo, GetValue()) + .WillRepeatedly(Return(std::ref(x))); // Wrong! + x = 42; + EXPECT_EQ(foo.GetValue(), 42); +``` + +Unfortunately, it doesn't work here. The above code will fail with error: + +```text +Value of: foo.GetValue() + Actual: 0 +Expected: 42 +``` + +The reason is that `Return(*value*)` converts `value` to the actual return type +of the mock function at the time when the action is *created*, not when it is +*executed*. (This behavior was chosen for the action to be safe when `value` is +a proxy object that references some temporary objects.) As a result, +`std::ref(x)` is converted to an `int` value (instead of a `const int&`) when +the expectation is set, and `Return(std::ref(x))` will always return 0. + +`ReturnPointee(pointer)` was provided to solve this problem specifically. It +returns the value pointed to by `pointer` at the time the action is *executed*: + +```cpp +using ::testing::ReturnPointee; +... + int x = 0; + MockFoo foo; + EXPECT_CALL(foo, GetValue()) + .WillRepeatedly(ReturnPointee(&x)); // Note the & here. + x = 42; + EXPECT_EQ(foo.GetValue(), 42); // This will succeed now. +``` + +### Combining Actions + +Want to do more than one thing when a function is called? That's fine. `DoAll()` +allows you to do a sequence of actions every time. Only the return value of the +last action in the sequence will be used. + +```cpp +using ::testing::_; +using ::testing::DoAll; + +class MockFoo : public Foo { + public: + MOCK_METHOD(bool, Bar, (int n), (override)); +}; +... + EXPECT_CALL(foo, Bar(_)) + .WillOnce(DoAll(action_1, + action_2, + ... + action_n)); +``` + +### Verifying Complex Arguments {#SaveArgVerify} + +If you want to verify that a method is called with a particular argument but the +match criteria is complex, it can be difficult to distinguish between +cardinality failures (calling the method the wrong number of times) and argument +match failures. Similarly, if you are matching multiple parameters, it may not +be easy to distinguishing which argument failed to match. For example: + +```cpp + // Not ideal: this could fail because of a problem with arg1 or arg2, or maybe + // just the method wasn't called. + EXPECT_CALL(foo, SendValues(_, ElementsAre(1, 4, 4, 7), EqualsProto( ... ))); +``` + +You can instead save the arguments and test them individually: + +```cpp + EXPECT_CALL(foo, SendValues) + .WillOnce(DoAll(SaveArg<1>(&actual_array), SaveArg<2>(&actual_proto))); + ... run the test + EXPECT_THAT(actual_array, ElementsAre(1, 4, 4, 7)); + EXPECT_THAT(actual_proto, EqualsProto( ... )); +``` + +### Mocking Side Effects {#MockingSideEffects} + +Sometimes a method exhibits its effect not via returning a value but via side +effects. For example, it may change some global state or modify an output +argument. To mock side effects, in general you can define your own action by +implementing `::testing::ActionInterface`. + +If all you need to do is to change an output argument, the built-in +`SetArgPointee()` action is convenient: + +```cpp +using ::testing::_; +using ::testing::SetArgPointee; + +class MockMutator : public Mutator { + public: + MOCK_METHOD(void, Mutate, (bool mutate, int* value), (override)); + ... +} +... + MockMutator mutator; + EXPECT_CALL(mutator, Mutate(true, _)) + .WillOnce(SetArgPointee<1>(5)); +``` + +In this example, when `mutator.Mutate()` is called, we will assign 5 to the +`int` variable pointed to by argument #1 (0-based). + +`SetArgPointee()` conveniently makes an internal copy of the value you pass to +it, removing the need to keep the value in scope and alive. The implication +however is that the value must have a copy constructor and assignment operator. + +If the mock method also needs to return a value as well, you can chain +`SetArgPointee()` with `Return()` using `DoAll()`, remembering to put the +`Return()` statement last: + +```cpp +using ::testing::_; +using ::testing::DoAll; +using ::testing::Return; +using ::testing::SetArgPointee; + +class MockMutator : public Mutator { + public: + ... + MOCK_METHOD(bool, MutateInt, (int* value), (override)); +} +... + MockMutator mutator; + EXPECT_CALL(mutator, MutateInt(_)) + .WillOnce(DoAll(SetArgPointee<0>(5), + Return(true))); +``` + +Note, however, that if you use the `ReturnOKWith()` method, it will override the +values provided by `SetArgPointee()` in the response parameters of your function +call. + +If the output argument is an array, use the `SetArrayArgument(first, last)` +action instead. It copies the elements in source range `[first, last)` to the +array pointed to by the `N`-th (0-based) argument: + +```cpp +using ::testing::NotNull; +using ::testing::SetArrayArgument; + +class MockArrayMutator : public ArrayMutator { + public: + MOCK_METHOD(void, Mutate, (int* values, int num_values), (override)); + ... +} +... + MockArrayMutator mutator; + int values[5] = {1, 2, 3, 4, 5}; + EXPECT_CALL(mutator, Mutate(NotNull(), 5)) + .WillOnce(SetArrayArgument<0>(values, values + 5)); +``` + +This also works when the argument is an output iterator: + +```cpp +using ::testing::_; +using ::testing::SetArrayArgument; + +class MockRolodex : public Rolodex { + public: + MOCK_METHOD(void, GetNames, (std::back_insert_iterator>), + (override)); + ... +} +... + MockRolodex rolodex; + vector names = {"George", "John", "Thomas"}; + EXPECT_CALL(rolodex, GetNames(_)) + .WillOnce(SetArrayArgument<0>(names.begin(), names.end())); +``` + +### Changing a Mock Object's Behavior Based on the State + +If you expect a call to change the behavior of a mock object, you can use +`::testing::InSequence` to specify different behaviors before and after the +call: + +```cpp +using ::testing::InSequence; +using ::testing::Return; + +... + { + InSequence seq; + EXPECT_CALL(my_mock, IsDirty()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(my_mock, Flush()); + EXPECT_CALL(my_mock, IsDirty()) + .WillRepeatedly(Return(false)); + } + my_mock.FlushIfDirty(); +``` + +This makes `my_mock.IsDirty()` return `true` before `my_mock.Flush()` is called +and return `false` afterwards. + +If the behavior change is more complex, you can store the effects in a variable +and make a mock method get its return value from that variable: + +```cpp +using ::testing::_; +using ::testing::SaveArg; +using ::testing::Return; + +ACTION_P(ReturnPointee, p) { return *p; } +... + int previous_value = 0; + EXPECT_CALL(my_mock, GetPrevValue) + .WillRepeatedly(ReturnPointee(&previous_value)); + EXPECT_CALL(my_mock, UpdateValue) + .WillRepeatedly(SaveArg<0>(&previous_value)); + my_mock.DoSomethingToUpdateValue(); +``` + +Here `my_mock.GetPrevValue()` will always return the argument of the last +`UpdateValue()` call. + +### Setting the Default Value for a Return Type {#DefaultValue} + +If a mock method's return type is a built-in C++ type or pointer, by default it +will return 0 when invoked. Also, in C++ 11 and above, a mock method whose +return type has a default constructor will return a default-constructed value by +default. You only need to specify an action if this default value doesn't work +for you. + +Sometimes, you may want to change this default value, or you may want to specify +a default value for types gMock doesn't know about. You can do this using the +`::testing::DefaultValue` class template: + +```cpp +using ::testing::DefaultValue; + +class MockFoo : public Foo { + public: + MOCK_METHOD(Bar, CalculateBar, (), (override)); +}; + + +... + Bar default_bar; + // Sets the default return value for type Bar. + DefaultValue::Set(default_bar); + + MockFoo foo; + + // We don't need to specify an action here, as the default + // return value works for us. + EXPECT_CALL(foo, CalculateBar()); + + foo.CalculateBar(); // This should return default_bar. + + // Unsets the default return value. + DefaultValue::Clear(); +``` + +Please note that changing the default value for a type can make your tests hard +to understand. We recommend you to use this feature judiciously. For example, +you may want to make sure the `Set()` and `Clear()` calls are right next to the +code that uses your mock. + +### Setting the Default Actions for a Mock Method + +You've learned how to change the default value of a given type. However, this +may be too coarse for your purpose: perhaps you have two mock methods with the +same return type and you want them to have different behaviors. The `ON_CALL()` +macro allows you to customize your mock's behavior at the method level: + +```cpp +using ::testing::_; +using ::testing::AnyNumber; +using ::testing::Gt; +using ::testing::Return; +... + ON_CALL(foo, Sign(_)) + .WillByDefault(Return(-1)); + ON_CALL(foo, Sign(0)) + .WillByDefault(Return(0)); + ON_CALL(foo, Sign(Gt(0))) + .WillByDefault(Return(1)); + + EXPECT_CALL(foo, Sign(_)) + .Times(AnyNumber()); + + foo.Sign(5); // This should return 1. + foo.Sign(-9); // This should return -1. + foo.Sign(0); // This should return 0. +``` + +As you may have guessed, when there are more than one `ON_CALL()` statements, +the newer ones in the order take precedence over the older ones. In other words, +the **last** one that matches the function arguments will be used. This matching +order allows you to set up the common behavior in a mock object's constructor or +the test fixture's set-up phase and specialize the mock's behavior later. + +Note that both `ON_CALL` and `EXPECT_CALL` have the same "later statements take +precedence" rule, but they don't interact. That is, `EXPECT_CALL`s have their +own precedence order distinct from the `ON_CALL` precedence order. + +### Using Functions/Methods/Functors/Lambdas as Actions {#FunctionsAsActions} + +If the built-in actions don't suit you, you can use an existing callable +(function, `std::function`, method, functor, lambda) as an action. + +```cpp +using ::testing::_; using ::testing::Invoke; + +class MockFoo : public Foo { + public: + MOCK_METHOD(int, Sum, (int x, int y), (override)); + MOCK_METHOD(bool, ComplexJob, (int x), (override)); +}; + +int CalculateSum(int x, int y) { return x + y; } +int Sum3(int x, int y, int z) { return x + y + z; } + +class Helper { + public: + bool ComplexJob(int x); +}; + +... + MockFoo foo; + Helper helper; + EXPECT_CALL(foo, Sum(_, _)) + .WillOnce(&CalculateSum) + .WillRepeatedly(Invoke(NewPermanentCallback(Sum3, 1))); + EXPECT_CALL(foo, ComplexJob(_)) + .WillOnce(Invoke(&helper, &Helper::ComplexJob)) + .WillOnce([] { return true; }) + .WillRepeatedly([](int x) { return x > 0; }); + + foo.Sum(5, 6); // Invokes CalculateSum(5, 6). + foo.Sum(2, 3); // Invokes Sum3(1, 2, 3). + foo.ComplexJob(10); // Invokes helper.ComplexJob(10). + foo.ComplexJob(-1); // Invokes the inline lambda. +``` + +The only requirement is that the type of the function, etc must be *compatible* +with the signature of the mock function, meaning that the latter's arguments (if +it takes any) can be implicitly converted to the corresponding arguments of the +former, and the former's return type can be implicitly converted to that of the +latter. So, you can invoke something whose type is *not* exactly the same as the +mock function, as long as it's safe to do so - nice, huh? + +Note that: + +* The action takes ownership of the callback and will delete it when the + action itself is destructed. +* If the type of a callback is derived from a base callback type `C`, you need + to implicitly cast it to `C` to resolve the overloading, e.g. + + ```cpp + using ::testing::Invoke; + ... + ResultCallback* is_ok = ...; + ... Invoke(is_ok) ...; // This works. + + BlockingClosure* done = new BlockingClosure; + ... Invoke(implicit_cast(done)) ...; // The cast is necessary. + ``` + +### Using Functions with Extra Info as Actions + +The function or functor you call using `Invoke()` must have the same number of +arguments as the mock function you use it for. Sometimes you may have a function +that takes more arguments, and you are willing to pass in the extra arguments +yourself to fill the gap. You can do this in gMock using callbacks with +pre-bound arguments. Here's an example: + +```cpp +using ::testing::Invoke; + +class MockFoo : public Foo { + public: + MOCK_METHOD(char, DoThis, (int n), (override)); +}; + +char SignOfSum(int x, int y) { + const int sum = x + y; + return (sum > 0) ? '+' : (sum < 0) ? '-' : '0'; +} + +TEST_F(FooTest, Test) { + MockFoo foo; + + EXPECT_CALL(foo, DoThis(2)) + .WillOnce(Invoke(NewPermanentCallback(SignOfSum, 5))); + EXPECT_EQ(foo.DoThis(2), '+'); // Invokes SignOfSum(5, 2). +} +``` + +### Invoking a Function/Method/Functor/Lambda/Callback Without Arguments + +`Invoke()` passes the mock function's arguments to the function, etc being +invoked such that the callee has the full context of the call to work with. If +the invoked function is not interested in some or all of the arguments, it can +simply ignore them. + +Yet, a common pattern is that a test author wants to invoke a function without +the arguments of the mock function. She could do that using a wrapper function +that throws away the arguments before invoking an underlining nullary function. +Needless to say, this can be tedious and obscures the intent of the test. + +There are two solutions to this problem. First, you can pass any callable of +zero args as an action. Alternatively, use `InvokeWithoutArgs()`, which is like +`Invoke()` except that it doesn't pass the mock function's arguments to the +callee. Here's an example of each: + +```cpp +using ::testing::_; +using ::testing::InvokeWithoutArgs; + +class MockFoo : public Foo { + public: + MOCK_METHOD(bool, ComplexJob, (int n), (override)); +}; + +bool Job1() { ... } +bool Job2(int n, char c) { ... } + +... + MockFoo foo; + EXPECT_CALL(foo, ComplexJob(_)) + .WillOnce([] { Job1(); }); + .WillOnce(InvokeWithoutArgs(NewPermanentCallback(Job2, 5, 'a'))); + + foo.ComplexJob(10); // Invokes Job1(). + foo.ComplexJob(20); // Invokes Job2(5, 'a'). +``` + +Note that: + +* The action takes ownership of the callback and will delete it when the + action itself is destructed. +* If the type of a callback is derived from a base callback type `C`, you need + to implicitly cast it to `C` to resolve the overloading, e.g. + + ```cpp + using ::testing::InvokeWithoutArgs; + ... + ResultCallback* is_ok = ...; + ... InvokeWithoutArgs(is_ok) ...; // This works. + + BlockingClosure* done = ...; + ... InvokeWithoutArgs(implicit_cast(done)) ...; + // The cast is necessary. + ``` + +### Invoking an Argument of the Mock Function + +Sometimes a mock function will receive a function pointer, a functor (in other +words, a "callable") as an argument, e.g. + +```cpp +class MockFoo : public Foo { + public: + MOCK_METHOD(bool, DoThis, (int n, (ResultCallback1* callback)), + (override)); +}; +``` + +and you may want to invoke this callable argument: + +```cpp +using ::testing::_; +... + MockFoo foo; + EXPECT_CALL(foo, DoThis(_, _)) + .WillOnce(...); + // Will execute callback->Run(5), where callback is the + // second argument DoThis() receives. +``` + +{: .callout .note} +NOTE: The section below is legacy documentation from before C++ had lambdas: + +Arghh, you need to refer to a mock function argument but C++ has no lambda +(yet), so you have to define your own action. :-( Or do you really? + +Well, gMock has an action to solve *exactly* this problem: + +```cpp +InvokeArgument(arg_1, arg_2, ..., arg_m) +``` + +will invoke the `N`-th (0-based) argument the mock function receives, with +`arg_1`, `arg_2`, ..., and `arg_m`. No matter if the argument is a function +pointer, a functor, or a callback. gMock handles them all. + +With that, you could write: + +```cpp +using ::testing::_; +using ::testing::InvokeArgument; +... + EXPECT_CALL(foo, DoThis(_, _)) + .WillOnce(InvokeArgument<1>(5)); + // Will execute callback->Run(5), where callback is the + // second argument DoThis() receives. +``` + +What if the callable takes an argument by reference? No problem - just wrap it +inside `std::ref()`: + +```cpp + ... + MOCK_METHOD(bool, Bar, + ((ResultCallback2* callback)), + (override)); + ... + using ::testing::_; + using ::testing::InvokeArgument; + ... + MockFoo foo; + Helper helper; + ... + EXPECT_CALL(foo, Bar(_)) + .WillOnce(InvokeArgument<0>(5, std::ref(helper))); + // std::ref(helper) guarantees that a reference to helper, not a copy of + // it, will be passed to the callback. +``` + +What if the callable takes an argument by reference and we do **not** wrap the +argument in `std::ref()`? Then `InvokeArgument()` will *make a copy* of the +argument, and pass a *reference to the copy*, instead of a reference to the +original value, to the callable. This is especially handy when the argument is a +temporary value: + +```cpp + ... + MOCK_METHOD(bool, DoThat, (bool (*f)(const double& x, const string& s)), + (override)); + ... + using ::testing::_; + using ::testing::InvokeArgument; + ... + MockFoo foo; + ... + EXPECT_CALL(foo, DoThat(_)) + .WillOnce(InvokeArgument<0>(5.0, string("Hi"))); + // Will execute (*f)(5.0, string("Hi")), where f is the function pointer + // DoThat() receives. Note that the values 5.0 and string("Hi") are + // temporary and dead once the EXPECT_CALL() statement finishes. Yet + // it's fine to perform this action later, since a copy of the values + // are kept inside the InvokeArgument action. +``` + +### Ignoring an Action's Result + +Sometimes you have an action that returns *something*, but you need an action +that returns `void` (perhaps you want to use it in a mock function that returns +`void`, or perhaps it needs to be used in `DoAll()` and it's not the last in the +list). `IgnoreResult()` lets you do that. For example: + +```cpp +using ::testing::_; +using ::testing::DoAll; +using ::testing::IgnoreResult; +using ::testing::Return; + +int Process(const MyData& data); +string DoSomething(); + +class MockFoo : public Foo { + public: + MOCK_METHOD(void, Abc, (const MyData& data), (override)); + MOCK_METHOD(bool, Xyz, (), (override)); +}; + + ... + MockFoo foo; + EXPECT_CALL(foo, Abc(_)) + // .WillOnce(Invoke(Process)); + // The above line won't compile as Process() returns int but Abc() needs + // to return void. + .WillOnce(IgnoreResult(Process)); + EXPECT_CALL(foo, Xyz()) + .WillOnce(DoAll(IgnoreResult(DoSomething), + // Ignores the string DoSomething() returns. + Return(true))); +``` + +Note that you **cannot** use `IgnoreResult()` on an action that already returns +`void`. Doing so will lead to ugly compiler errors. + +### Selecting an Action's Arguments {#SelectingArgs} + +Say you have a mock function `Foo()` that takes seven arguments, and you have a +custom action that you want to invoke when `Foo()` is called. Trouble is, the +custom action only wants three arguments: + +```cpp +using ::testing::_; +using ::testing::Invoke; +... + MOCK_METHOD(bool, Foo, + (bool visible, const string& name, int x, int y, + (const map>), double& weight, double min_weight, + double max_wight)); +... +bool IsVisibleInQuadrant1(bool visible, int x, int y) { + return visible && x >= 0 && y >= 0; +} +... + EXPECT_CALL(mock, Foo) + .WillOnce(Invoke(IsVisibleInQuadrant1)); // Uh, won't compile. :-( +``` + +To please the compiler God, you need to define an "adaptor" that has the same +signature as `Foo()` and calls the custom action with the right arguments: + +```cpp +using ::testing::_; +using ::testing::Invoke; +... +bool MyIsVisibleInQuadrant1(bool visible, const string& name, int x, int y, + const map, double>& weight, + double min_weight, double max_wight) { + return IsVisibleInQuadrant1(visible, x, y); +} +... + EXPECT_CALL(mock, Foo) + .WillOnce(Invoke(MyIsVisibleInQuadrant1)); // Now it works. +``` + +But isn't this awkward? + +gMock provides a generic *action adaptor*, so you can spend your time minding +more important business than writing your own adaptors. Here's the syntax: + +```cpp +WithArgs(action) +``` + +creates an action that passes the arguments of the mock function at the given +indices (0-based) to the inner `action` and performs it. Using `WithArgs`, our +original example can be written as: + +```cpp +using ::testing::_; +using ::testing::Invoke; +using ::testing::WithArgs; +... + EXPECT_CALL(mock, Foo) + .WillOnce(WithArgs<0, 2, 3>(Invoke(IsVisibleInQuadrant1))); // No need to define your own adaptor. +``` + +For better readability, gMock also gives you: + +* `WithoutArgs(action)` when the inner `action` takes *no* argument, and +* `WithArg(action)` (no `s` after `Arg`) when the inner `action` takes + *one* argument. + +As you may have realized, `InvokeWithoutArgs(...)` is just syntactic sugar for +`WithoutArgs(Invoke(...))`. + +Here are more tips: + +* The inner action used in `WithArgs` and friends does not have to be + `Invoke()` -- it can be anything. +* You can repeat an argument in the argument list if necessary, e.g. + `WithArgs<2, 3, 3, 5>(...)`. +* You can change the order of the arguments, e.g. `WithArgs<3, 2, 1>(...)`. +* The types of the selected arguments do *not* have to match the signature of + the inner action exactly. It works as long as they can be implicitly + converted to the corresponding arguments of the inner action. For example, + if the 4-th argument of the mock function is an `int` and `my_action` takes + a `double`, `WithArg<4>(my_action)` will work. + +### Ignoring Arguments in Action Functions + +The [selecting-an-action's-arguments](#SelectingArgs) recipe showed us one way +to make a mock function and an action with incompatible argument lists fit +together. The downside is that wrapping the action in `WithArgs<...>()` can get +tedious for people writing the tests. + +If you are defining a function (or method, functor, lambda, callback) to be used +with `Invoke*()`, and you are not interested in some of its arguments, an +alternative to `WithArgs` is to declare the uninteresting arguments as `Unused`. +This makes the definition less cluttered and less fragile in case the types of +the uninteresting arguments change. It could also increase the chance the action +function can be reused. For example, given + +```cpp + public: + MOCK_METHOD(double, Foo, double(const string& label, double x, double y), + (override)); + MOCK_METHOD(double, Bar, (int index, double x, double y), (override)); +``` + +instead of + +```cpp +using ::testing::_; +using ::testing::Invoke; + +double DistanceToOriginWithLabel(const string& label, double x, double y) { + return sqrt(x*x + y*y); +} +double DistanceToOriginWithIndex(int index, double x, double y) { + return sqrt(x*x + y*y); +} +... + EXPECT_CALL(mock, Foo("abc", _, _)) + .WillOnce(Invoke(DistanceToOriginWithLabel)); + EXPECT_CALL(mock, Bar(5, _, _)) + .WillOnce(Invoke(DistanceToOriginWithIndex)); +``` + +you could write + +```cpp +using ::testing::_; +using ::testing::Invoke; +using ::testing::Unused; + +double DistanceToOrigin(Unused, double x, double y) { + return sqrt(x*x + y*y); +} +... + EXPECT_CALL(mock, Foo("abc", _, _)) + .WillOnce(Invoke(DistanceToOrigin)); + EXPECT_CALL(mock, Bar(5, _, _)) + .WillOnce(Invoke(DistanceToOrigin)); +``` + +### Sharing Actions + +Just like matchers, a gMock action object consists of a pointer to a ref-counted +implementation object. Therefore copying actions is also allowed and very +efficient. When the last action that references the implementation object dies, +the implementation object will be deleted. + +If you have some complex action that you want to use again and again, you may +not have to build it from scratch every time. If the action doesn't have an +internal state (i.e. if it always does the same thing no matter how many times +it has been called), you can assign it to an action variable and use that +variable repeatedly. For example: + +```cpp +using ::testing::Action; +using ::testing::DoAll; +using ::testing::Return; +using ::testing::SetArgPointee; +... + Action set_flag = DoAll(SetArgPointee<0>(5), + Return(true)); + ... use set_flag in .WillOnce() and .WillRepeatedly() ... +``` + +However, if the action has its own state, you may be surprised if you share the +action object. Suppose you have an action factory `IncrementCounter(init)` which +creates an action that increments and returns a counter whose initial value is +`init`, using two actions created from the same expression and using a shared +action will exhibit different behaviors. Example: + +```cpp + EXPECT_CALL(foo, DoThis()) + .WillRepeatedly(IncrementCounter(0)); + EXPECT_CALL(foo, DoThat()) + .WillRepeatedly(IncrementCounter(0)); + foo.DoThis(); // Returns 1. + foo.DoThis(); // Returns 2. + foo.DoThat(); // Returns 1 - DoThat() uses a different + // counter than DoThis()'s. +``` + +versus + +```cpp +using ::testing::Action; +... + Action increment = IncrementCounter(0); + EXPECT_CALL(foo, DoThis()) + .WillRepeatedly(increment); + EXPECT_CALL(foo, DoThat()) + .WillRepeatedly(increment); + foo.DoThis(); // Returns 1. + foo.DoThis(); // Returns 2. + foo.DoThat(); // Returns 3 - the counter is shared. +``` + +### Testing Asynchronous Behavior + +One oft-encountered problem with gMock is that it can be hard to test +asynchronous behavior. Suppose you had a `EventQueue` class that you wanted to +test, and you created a separate `EventDispatcher` interface so that you could +easily mock it out. However, the implementation of the class fired all the +events on a background thread, which made test timings difficult. You could just +insert `sleep()` statements and hope for the best, but that makes your test +behavior nondeterministic. A better way is to use gMock actions and +`Notification` objects to force your asynchronous test to behave synchronously. + +```cpp +class MockEventDispatcher : public EventDispatcher { + MOCK_METHOD(bool, DispatchEvent, (int32), (override)); +}; + +TEST(EventQueueTest, EnqueueEventTest) { + MockEventDispatcher mock_event_dispatcher; + EventQueue event_queue(&mock_event_dispatcher); + + const int32 kEventId = 321; + absl::Notification done; + EXPECT_CALL(mock_event_dispatcher, DispatchEvent(kEventId)) + .WillOnce([&done] { done.Notify(); }); + + event_queue.EnqueueEvent(kEventId); + done.WaitForNotification(); +} +``` + +In the example above, we set our normal gMock expectations, but then add an +additional action to notify the `Notification` object. Now we can just call +`Notification::WaitForNotification()` in the main thread to wait for the +asynchronous call to finish. After that, our test suite is complete and we can +safely exit. + +{: .callout .note} +Note: this example has a downside: namely, if the expectation is not satisfied, +our test will run forever. It will eventually time-out and fail, but it will +take longer and be slightly harder to debug. To alleviate this problem, you can +use `WaitForNotificationWithTimeout(ms)` instead of `WaitForNotification()`. + +## Misc Recipes on Using gMock + +### Mocking Methods That Use Move-Only Types + +C++11 introduced *move-only types*. A move-only-typed value can be moved from +one object to another, but cannot be copied. `std::unique_ptr` is probably +the most commonly used move-only type. + +Mocking a method that takes and/or returns move-only types presents some +challenges, but nothing insurmountable. This recipe shows you how you can do it. +Note that the support for move-only method arguments was only introduced to +gMock in April 2017; in older code, you may find more complex +[workarounds](#LegacyMoveOnly) for lack of this feature. + +Let’s say we are working on a fictional project that lets one post and share +snippets called “buzzes”. Your code uses these types: + +```cpp +enum class AccessLevel { kInternal, kPublic }; + +class Buzz { + public: + explicit Buzz(AccessLevel access) { ... } + ... +}; + +class Buzzer { + public: + virtual ~Buzzer() {} + virtual std::unique_ptr MakeBuzz(StringPiece text) = 0; + virtual bool ShareBuzz(std::unique_ptr buzz, int64_t timestamp) = 0; + ... +}; +``` + +A `Buzz` object represents a snippet being posted. A class that implements the +`Buzzer` interface is capable of creating and sharing `Buzz`es. Methods in +`Buzzer` may return a `unique_ptr` or take a `unique_ptr`. Now we +need to mock `Buzzer` in our tests. + +To mock a method that accepts or returns move-only types, you just use the +familiar `MOCK_METHOD` syntax as usual: + +```cpp +class MockBuzzer : public Buzzer { + public: + MOCK_METHOD(std::unique_ptr, MakeBuzz, (StringPiece text), (override)); + MOCK_METHOD(bool, ShareBuzz, (std::unique_ptr buzz, int64_t timestamp), + (override)); +}; +``` + +Now that we have the mock class defined, we can use it in tests. In the +following code examples, we assume that we have defined a `MockBuzzer` object +named `mock_buzzer_`: + +```cpp + MockBuzzer mock_buzzer_; +``` + +First let’s see how we can set expectations on the `MakeBuzz()` method, which +returns a `unique_ptr`. + +As usual, if you set an expectation without an action (i.e. the `.WillOnce()` or +`.WillRepeatedly()` clause), when that expectation fires, the default action for +that method will be taken. Since `unique_ptr<>` has a default constructor that +returns a null `unique_ptr`, that’s what you’ll get if you don’t specify an +action: + +```cpp +using ::testing::IsNull; +... + // Use the default action. + EXPECT_CALL(mock_buzzer_, MakeBuzz("hello")); + + // Triggers the previous EXPECT_CALL. + EXPECT_THAT(mock_buzzer_.MakeBuzz("hello"), IsNull()); +``` + +If you are not happy with the default action, you can tweak it as usual; see +[Setting Default Actions](#OnCall). + +If you just need to return a move-only value, you can use it in combination with +`WillOnce`. For example: + +```cpp + EXPECT_CALL(mock_buzzer_, MakeBuzz("hello")) + .WillOnce(Return(std::make_unique(AccessLevel::kInternal))); + EXPECT_NE(nullptr, mock_buzzer_.MakeBuzz("hello")); +``` + +Quiz time! What do you think will happen if a `Return` action is performed more +than once (e.g. you write `... .WillRepeatedly(Return(std::move(...)));`)? Come +think of it, after the first time the action runs, the source value will be +consumed (since it’s a move-only value), so the next time around, there’s no +value to move from -- you’ll get a run-time error that `Return(std::move(...))` +can only be run once. + +If you need your mock method to do more than just moving a pre-defined value, +remember that you can always use a lambda or a callable object, which can do +pretty much anything you want: + +```cpp + EXPECT_CALL(mock_buzzer_, MakeBuzz("x")) + .WillRepeatedly([](StringPiece text) { + return std::make_unique(AccessLevel::kInternal); + }); + + EXPECT_NE(nullptr, mock_buzzer_.MakeBuzz("x")); + EXPECT_NE(nullptr, mock_buzzer_.MakeBuzz("x")); +``` + +Every time this `EXPECT_CALL` fires, a new `unique_ptr` will be created +and returned. You cannot do this with `Return(std::make_unique<...>(...))`. + +That covers returning move-only values; but how do we work with methods +accepting move-only arguments? The answer is that they work normally, although +some actions will not compile when any of method's arguments are move-only. You +can always use `Return`, or a [lambda or functor](#FunctionsAsActions): + +```cpp + using ::testing::Unused; + + EXPECT_CALL(mock_buzzer_, ShareBuzz(NotNull(), _)).WillOnce(Return(true)); + EXPECT_TRUE(mock_buzzer_.ShareBuzz(std::make_unique(AccessLevel::kInternal)), + 0); + + EXPECT_CALL(mock_buzzer_, ShareBuzz(_, _)).WillOnce( + [](std::unique_ptr buzz, Unused) { return buzz != nullptr; }); + EXPECT_FALSE(mock_buzzer_.ShareBuzz(nullptr, 0)); +``` + +Many built-in actions (`WithArgs`, `WithoutArgs`,`DeleteArg`, `SaveArg`, ...) +could in principle support move-only arguments, but the support for this is not +implemented yet. If this is blocking you, please file a bug. + +A few actions (e.g. `DoAll`) copy their arguments internally, so they can never +work with non-copyable objects; you'll have to use functors instead. + +#### Legacy workarounds for move-only types {#LegacyMoveOnly} + +Support for move-only function arguments was only introduced to gMock in April +of 2017. In older code, you may encounter the following workaround for the lack +of this feature (it is no longer necessary - we're including it just for +reference): + +```cpp +class MockBuzzer : public Buzzer { + public: + MOCK_METHOD(bool, DoShareBuzz, (Buzz* buzz, Time timestamp)); + bool ShareBuzz(std::unique_ptr buzz, Time timestamp) override { + return DoShareBuzz(buzz.get(), timestamp); + } +}; +``` + +The trick is to delegate the `ShareBuzz()` method to a mock method (let’s call +it `DoShareBuzz()`) that does not take move-only parameters. Then, instead of +setting expectations on `ShareBuzz()`, you set them on the `DoShareBuzz()` mock +method: + +```cpp + MockBuzzer mock_buzzer_; + EXPECT_CALL(mock_buzzer_, DoShareBuzz(NotNull(), _)); + + // When one calls ShareBuzz() on the MockBuzzer like this, the call is + // forwarded to DoShareBuzz(), which is mocked. Therefore this statement + // will trigger the above EXPECT_CALL. + mock_buzzer_.ShareBuzz(std::make_unique(AccessLevel::kInternal), 0); +``` + +### Making the Compilation Faster + +Believe it or not, the *vast majority* of the time spent on compiling a mock +class is in generating its constructor and destructor, as they perform +non-trivial tasks (e.g. verification of the expectations). What's more, mock +methods with different signatures have different types and thus their +constructors/destructors need to be generated by the compiler separately. As a +result, if you mock many different types of methods, compiling your mock class +can get really slow. + +If you are experiencing slow compilation, you can move the definition of your +mock class' constructor and destructor out of the class body and into a `.cc` +file. This way, even if you `#include` your mock class in N files, the compiler +only needs to generate its constructor and destructor once, resulting in a much +faster compilation. + +Let's illustrate the idea using an example. Here's the definition of a mock +class before applying this recipe: + +```cpp +// File mock_foo.h. +... +class MockFoo : public Foo { + public: + // Since we don't declare the constructor or the destructor, + // the compiler will generate them in every translation unit + // where this mock class is used. + + MOCK_METHOD(int, DoThis, (), (override)); + MOCK_METHOD(bool, DoThat, (const char* str), (override)); + ... more mock methods ... +}; +``` + +After the change, it would look like: + +```cpp +// File mock_foo.h. +... +class MockFoo : public Foo { + public: + // The constructor and destructor are declared, but not defined, here. + MockFoo(); + virtual ~MockFoo(); + + MOCK_METHOD(int, DoThis, (), (override)); + MOCK_METHOD(bool, DoThat, (const char* str), (override)); + ... more mock methods ... +}; +``` + +and + +```cpp +// File mock_foo.cc. +#include "path/to/mock_foo.h" + +// The definitions may appear trivial, but the functions actually do a +// lot of things through the constructors/destructors of the member +// variables used to implement the mock methods. +MockFoo::MockFoo() {} +MockFoo::~MockFoo() {} +``` + +### Forcing a Verification + +When it's being destroyed, your friendly mock object will automatically verify +that all expectations on it have been satisfied, and will generate googletest +failures if not. This is convenient as it leaves you with one less thing to +worry about. That is, unless you are not sure if your mock object will be +destroyed. + +How could it be that your mock object won't eventually be destroyed? Well, it +might be created on the heap and owned by the code you are testing. Suppose +there's a bug in that code and it doesn't delete the mock object properly - you +could end up with a passing test when there's actually a bug. + +Using a heap checker is a good idea and can alleviate the concern, but its +implementation is not 100% reliable. So, sometimes you do want to *force* gMock +to verify a mock object before it is (hopefully) destructed. You can do this +with `Mock::VerifyAndClearExpectations(&mock_object)`: + +```cpp +TEST(MyServerTest, ProcessesRequest) { + using ::testing::Mock; + + MockFoo* const foo = new MockFoo; + EXPECT_CALL(*foo, ...)...; + // ... other expectations ... + + // server now owns foo. + MyServer server(foo); + server.ProcessRequest(...); + + // In case that server's destructor will forget to delete foo, + // this will verify the expectations anyway. + Mock::VerifyAndClearExpectations(foo); +} // server is destroyed when it goes out of scope here. +``` + +{: .callout .tip} +**Tip:** The `Mock::VerifyAndClearExpectations()` function returns a `bool` to +indicate whether the verification was successful (`true` for yes), so you can +wrap that function call inside a `ASSERT_TRUE()` if there is no point going +further when the verification has failed. + +Do not set new expectations after verifying and clearing a mock after its use. +Setting expectations after code that exercises the mock has undefined behavior. +See [Using Mocks in Tests](gmock_for_dummies.md#using-mocks-in-tests) for more +information. + +### Using Checkpoints {#UsingCheckPoints} + +Sometimes you might want to test a mock object's behavior in phases whose sizes +are each manageable, or you might want to set more detailed expectations about +which API calls invoke which mock functions. + +A technique you can use is to put the expectations in a sequence and insert +calls to a dummy "checkpoint" function at specific places. Then you can verify +that the mock function calls do happen at the right time. For example, if you +are exercising the code: + +```cpp + Foo(1); + Foo(2); + Foo(3); +``` + +and want to verify that `Foo(1)` and `Foo(3)` both invoke `mock.Bar("a")`, but +`Foo(2)` doesn't invoke anything, you can write: + +```cpp +using ::testing::MockFunction; + +TEST(FooTest, InvokesBarCorrectly) { + MyMock mock; + // Class MockFunction has exactly one mock method. It is named + // Call() and has type F. + MockFunction check; + { + InSequence s; + + EXPECT_CALL(mock, Bar("a")); + EXPECT_CALL(check, Call("1")); + EXPECT_CALL(check, Call("2")); + EXPECT_CALL(mock, Bar("a")); + } + Foo(1); + check.Call("1"); + Foo(2); + check.Call("2"); + Foo(3); +} +``` + +The expectation spec says that the first `Bar("a")` call must happen before +checkpoint "1", the second `Bar("a")` call must happen after checkpoint "2", and +nothing should happen between the two checkpoints. The explicit checkpoints make +it clear which `Bar("a")` is called by which call to `Foo()`. + +### Mocking Destructors + +Sometimes you want to make sure a mock object is destructed at the right time, +e.g. after `bar->A()` is called but before `bar->B()` is called. We already know +that you can specify constraints on the [order](#OrderedCalls) of mock function +calls, so all we need to do is to mock the destructor of the mock function. + +This sounds simple, except for one problem: a destructor is a special function +with special syntax and special semantics, and the `MOCK_METHOD` macro doesn't +work for it: + +```cpp +MOCK_METHOD(void, ~MockFoo, ()); // Won't compile! +``` + +The good news is that you can use a simple pattern to achieve the same effect. +First, add a mock function `Die()` to your mock class and call it in the +destructor, like this: + +```cpp +class MockFoo : public Foo { + ... + // Add the following two lines to the mock class. + MOCK_METHOD(void, Die, ()); + ~MockFoo() override { Die(); } +}; +``` + +(If the name `Die()` clashes with an existing symbol, choose another name.) Now, +we have translated the problem of testing when a `MockFoo` object dies to +testing when its `Die()` method is called: + +```cpp + MockFoo* foo = new MockFoo; + MockBar* bar = new MockBar; + ... + { + InSequence s; + + // Expects *foo to die after bar->A() and before bar->B(). + EXPECT_CALL(*bar, A()); + EXPECT_CALL(*foo, Die()); + EXPECT_CALL(*bar, B()); + } +``` + +And that's that. + +### Using gMock and Threads {#UsingThreads} + +In a **unit** test, it's best if you could isolate and test a piece of code in a +single-threaded context. That avoids race conditions and dead locks, and makes +debugging your test much easier. + +Yet most programs are multi-threaded, and sometimes to test something we need to +pound on it from more than one thread. gMock works for this purpose too. + +Remember the steps for using a mock: + +1. Create a mock object `foo`. +2. Set its default actions and expectations using `ON_CALL()` and + `EXPECT_CALL()`. +3. The code under test calls methods of `foo`. +4. Optionally, verify and reset the mock. +5. Destroy the mock yourself, or let the code under test destroy it. The + destructor will automatically verify it. + +If you follow the following simple rules, your mocks and threads can live +happily together: + +* Execute your *test code* (as opposed to the code being tested) in *one* + thread. This makes your test easy to follow. +* Obviously, you can do step #1 without locking. +* When doing step #2 and #5, make sure no other thread is accessing `foo`. + Obvious too, huh? +* #3 and #4 can be done either in one thread or in multiple threads - anyway + you want. gMock takes care of the locking, so you don't have to do any - + unless required by your test logic. + +If you violate the rules (for example, if you set expectations on a mock while +another thread is calling its methods), you get undefined behavior. That's not +fun, so don't do it. + +gMock guarantees that the action for a mock function is done in the same thread +that called the mock function. For example, in + +```cpp + EXPECT_CALL(mock, Foo(1)) + .WillOnce(action1); + EXPECT_CALL(mock, Foo(2)) + .WillOnce(action2); +``` + +if `Foo(1)` is called in thread 1 and `Foo(2)` is called in thread 2, gMock will +execute `action1` in thread 1 and `action2` in thread 2. + +gMock does *not* impose a sequence on actions performed in different threads +(doing so may create deadlocks as the actions may need to cooperate). This means +that the execution of `action1` and `action2` in the above example *may* +interleave. If this is a problem, you should add proper synchronization logic to +`action1` and `action2` to make the test thread-safe. + +Also, remember that `DefaultValue` is a global resource that potentially +affects *all* living mock objects in your program. Naturally, you won't want to +mess with it from multiple threads or when there still are mocks in action. + +### Controlling How Much Information gMock Prints + +When gMock sees something that has the potential of being an error (e.g. a mock +function with no expectation is called, a.k.a. an uninteresting call, which is +allowed but perhaps you forgot to explicitly ban the call), it prints some +warning messages, including the arguments of the function, the return value, and +the stack trace. Hopefully this will remind you to take a look and see if there +is indeed a problem. + +Sometimes you are confident that your tests are correct and may not appreciate +such friendly messages. Some other times, you are debugging your tests or +learning about the behavior of the code you are testing, and wish you could +observe every mock call that happens (including argument values, the return +value, and the stack trace). Clearly, one size doesn't fit all. + +You can control how much gMock tells you using the `--gmock_verbose=LEVEL` +command-line flag, where `LEVEL` is a string with three possible values: + +* `info`: gMock will print all informational messages, warnings, and errors + (most verbose). At this setting, gMock will also log any calls to the + `ON_CALL/EXPECT_CALL` macros. It will include a stack trace in + "uninteresting call" warnings. +* `warning`: gMock will print both warnings and errors (less verbose); it will + omit the stack traces in "uninteresting call" warnings. This is the default. +* `error`: gMock will print errors only (least verbose). + +Alternatively, you can adjust the value of that flag from within your tests like +so: + +```cpp + ::testing::FLAGS_gmock_verbose = "error"; +``` + +If you find gMock printing too many stack frames with its informational or +warning messages, remember that you can control their amount with the +`--gtest_stack_trace_depth=max_depth` flag. + +Now, judiciously use the right flag to enable gMock serve you better! + +### Gaining Super Vision into Mock Calls + +You have a test using gMock. It fails: gMock tells you some expectations aren't +satisfied. However, you aren't sure why: Is there a typo somewhere in the +matchers? Did you mess up the order of the `EXPECT_CALL`s? Or is the code under +test doing something wrong? How can you find out the cause? + +Won't it be nice if you have X-ray vision and can actually see the trace of all +`EXPECT_CALL`s and mock method calls as they are made? For each call, would you +like to see its actual argument values and which `EXPECT_CALL` gMock thinks it +matches? If you still need some help to figure out who made these calls, how +about being able to see the complete stack trace at each mock call? + +You can unlock this power by running your test with the `--gmock_verbose=info` +flag. For example, given the test program: + +```cpp +#include + +using ::testing::_; +using ::testing::HasSubstr; +using ::testing::Return; + +class MockFoo { + public: + MOCK_METHOD(void, F, (const string& x, const string& y)); +}; + +TEST(Foo, Bar) { + MockFoo mock; + EXPECT_CALL(mock, F(_, _)).WillRepeatedly(Return()); + EXPECT_CALL(mock, F("a", "b")); + EXPECT_CALL(mock, F("c", HasSubstr("d"))); + + mock.F("a", "good"); + mock.F("a", "b"); +} +``` + +if you run it with `--gmock_verbose=info`, you will see this output: + +```shell +[ RUN ] Foo.Bar + +foo_test.cc:14: EXPECT_CALL(mock, F(_, _)) invoked +Stack trace: ... + +foo_test.cc:15: EXPECT_CALL(mock, F("a", "b")) invoked +Stack trace: ... + +foo_test.cc:16: EXPECT_CALL(mock, F("c", HasSubstr("d"))) invoked +Stack trace: ... + +foo_test.cc:14: Mock function call matches EXPECT_CALL(mock, F(_, _))... + Function call: F(@0x7fff7c8dad40"a",@0x7fff7c8dad10"good") +Stack trace: ... + +foo_test.cc:15: Mock function call matches EXPECT_CALL(mock, F("a", "b"))... + Function call: F(@0x7fff7c8dada0"a",@0x7fff7c8dad70"b") +Stack trace: ... + +foo_test.cc:16: Failure +Actual function call count doesn't match EXPECT_CALL(mock, F("c", HasSubstr("d")))... + Expected: to be called once + Actual: never called - unsatisfied and active +[ FAILED ] Foo.Bar +``` + +Suppose the bug is that the `"c"` in the third `EXPECT_CALL` is a typo and +should actually be `"a"`. With the above message, you should see that the actual +`F("a", "good")` call is matched by the first `EXPECT_CALL`, not the third as +you thought. From that it should be obvious that the third `EXPECT_CALL` is +written wrong. Case solved. + +If you are interested in the mock call trace but not the stack traces, you can +combine `--gmock_verbose=info` with `--gtest_stack_trace_depth=0` on the test +command line. + +### Running Tests in Emacs + +If you build and run your tests in Emacs using the `M-x google-compile` command +(as many googletest users do), the source file locations of gMock and googletest +errors will be highlighted. Just press `` on one of them and you'll be +taken to the offending line. Or, you can just type `C-x`` to jump to the next +error. + +To make it even easier, you can add the following lines to your `~/.emacs` file: + +```text +(global-set-key "\M-m" 'google-compile) ; m is for make +(global-set-key [M-down] 'next-error) +(global-set-key [M-up] '(lambda () (interactive) (next-error -1))) +``` + +Then you can type `M-m` to start a build (if you want to run the test as well, +just make sure `foo_test.run` or `runtests` is in the build command you supply +after typing `M-m`), or `M-up`/`M-down` to move back and forth between errors. + +## Extending gMock + +### Writing New Matchers Quickly {#NewMatchers} + +{: .callout .warning} +WARNING: gMock does not guarantee when or how many times a matcher will be +invoked. Therefore, all matchers must be functionally pure. See +[this section](#PureMatchers) for more details. + +The `MATCHER*` family of macros can be used to define custom matchers easily. +The syntax: + +```cpp +MATCHER(name, description_string_expression) { statements; } +``` + +will define a matcher with the given name that executes the statements, which +must return a `bool` to indicate if the match succeeds. Inside the statements, +you can refer to the value being matched by `arg`, and refer to its type by +`arg_type`. + +The *description string* is a `string`-typed expression that documents what the +matcher does, and is used to generate the failure message when the match fails. +It can (and should) reference the special `bool` variable `negation`, and should +evaluate to the description of the matcher when `negation` is `false`, or that +of the matcher's negation when `negation` is `true`. + +For convenience, we allow the description string to be empty (`""`), in which +case gMock will use the sequence of words in the matcher name as the +description. + +For example: + +```cpp +MATCHER(IsDivisibleBy7, "") { return (arg % 7) == 0; } +``` + +allows you to write + +```cpp + // Expects mock_foo.Bar(n) to be called where n is divisible by 7. + EXPECT_CALL(mock_foo, Bar(IsDivisibleBy7())); +``` + +or, + +```cpp + using ::testing::Not; + ... + // Verifies that a value is divisible by 7 and the other is not. + EXPECT_THAT(some_expression, IsDivisibleBy7()); + EXPECT_THAT(some_other_expression, Not(IsDivisibleBy7())); +``` + +If the above assertions fail, they will print something like: + +```shell + Value of: some_expression + Expected: is divisible by 7 + Actual: 27 + ... + Value of: some_other_expression + Expected: not (is divisible by 7) + Actual: 21 +``` + +where the descriptions `"is divisible by 7"` and `"not (is divisible by 7)"` are +automatically calculated from the matcher name `IsDivisibleBy7`. + +As you may have noticed, the auto-generated descriptions (especially those for +the negation) may not be so great. You can always override them with a `string` +expression of your own: + +```cpp +MATCHER(IsDivisibleBy7, + absl::StrCat(negation ? "isn't" : "is", " divisible by 7")) { + return (arg % 7) == 0; +} +``` + +Optionally, you can stream additional information to a hidden argument named +`result_listener` to explain the match result. For example, a better definition +of `IsDivisibleBy7` is: + +```cpp +MATCHER(IsDivisibleBy7, "") { + if ((arg % 7) == 0) + return true; + + *result_listener << "the remainder is " << (arg % 7); +