diff --git a/.github/actions/get-gtest/action.yml b/.github/actions/get-gtest/action.yml index 76faaea3bc9..e8d70699c8f 100644 --- a/.github/actions/get-gtest/action.yml +++ b/.github/actions/get-gtest/action.yml @@ -1,5 +1,5 @@ # -# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2022, 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 @@ -43,7 +43,7 @@ runs: uses: actions/checkout@v3 with: repository: google/googletest - ref: 'release-${{ steps.version.outputs.value }}' + ref: 'v${{ steps.version.outputs.value }}' path: gtest - name: 'Export path to where GTest is installed' diff --git a/doc/building.html b/doc/building.html index cfc9fb9c068..533a1238dab 100644 --- a/doc/building.html +++ b/doc/building.html @@ -1094,14 +1094,14 @@ just unpacked.

Building of Hotspot Gtest suite requires the source code of Google Test framework. The top directory, which contains both googletest and googlemock directories, should -be specified via --with-gtest. The supported version of -Google Test is 1.8.1, whose source code can be obtained:

+be specified via --with-gtest. The minimum supported +version of Google Test is 1.13.0, whose source code can be obtained:

To execute the most basic tests (tier 1), use:

make run-test-tier1
diff --git a/doc/building.md b/doc/building.md index 8aef6af590e..3e65230d125 100644 --- a/doc/building.md +++ b/doc/building.md @@ -864,13 +864,14 @@ https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSucces Download the latest `.tar.gz` file, unpack it, and point `--with-jtreg` to the `jtreg` directory that you just unpacked. -Building of Hotspot Gtest suite requires the source code of Google Test framework. -The top directory, which contains both `googletest` and `googlemock` -directories, should be specified via `--with-gtest`. -The supported version of Google Test is 1.8.1, whose source code can be obtained: +Building of Hotspot Gtest suite requires the source code of Google +Test framework. The top directory, which contains both `googletest` +and `googlemock` directories, should be specified via `--with-gtest`. +The minimum supported version of Google Test is 1.13.0, whose source +code can be obtained: - * by downloading and unpacking the source bundle from [here](https://github.com/google/googletest/releases/tag/release-1.8.1) - * or by checking out `release-1.8.1` tag of `googletest` project: `git clone -b release-1.8.1 https://github.com/google/googletest` + * by downloading and unpacking the source bundle from [here](https://github.com/google/googletest/releases/tag/v1.13.0) + * or by checking out `v1.13.0` tag of `googletest` project: `git clone -b v1.13.0 https://github.com/google/googletest` To execute the most basic tests (tier 1), use: ``` diff --git a/make/autoconf/lib-tests.m4 b/make/autoconf/lib-tests.m4 index 117a0215b1b..d117a8189f9 100644 --- a/make/autoconf/lib-tests.m4 +++ b/make/autoconf/lib-tests.m4 @@ -27,8 +27,9 @@ # Setup libraries and functionalities needed to test the JDK. ################################################################################ -# Minimum supported version +# Minimum supported versions JTREG_MINIMUM_VERSION=7.1.1 +GTEST_MINIMUM_VERSION=1.13.0 ############################################################################### # @@ -58,20 +59,13 @@ AC_DEFUN_ONCE([LIB_TESTS_SETUP_GTEST], AC_MSG_RESULT([$GTEST_FRAMEWORK_SRC]) UTIL_FIXUP_PATH([GTEST_FRAMEWORK_SRC]) - # Try to verify version. We require 1.8.1, but this can not be directly - # determined. :-( Instead, there are different, incorrect version - # numbers we can look for. - GTEST_VERSION_1="`$GREP GOOGLETEST_VERSION $GTEST_FRAMEWORK_SRC/CMakeLists.txt | $SED -E -e 's/set\(GOOGLETEST_VERSION (.*)\)/\1/'`" - if test "x$GTEST_VERSION_1" != "x1.9.0"; then - AC_MSG_ERROR([gtest at $GTEST_FRAMEWORK_SRC does not seem to be version 1.8.1]) - fi - - # We cannot grep for "AC_IN*T" as a literal since then m4 will treat it as a macro - # and expand it. - # Additional [] needed to keep m4 from mangling shell constructs. - [ GTEST_VERSION_2="`$GREP -A1 ^.C_INIT $GTEST_FRAMEWORK_SRC/configure.ac | $TAIL -n 1 | $SED -E -e 's/ +\[(.*)],/\1/'`" ] - if test "x$GTEST_VERSION_2" != "x1.8.0"; then - AC_MSG_ERROR([gtest at $GTEST_FRAMEWORK_SRC does not seem to be version 1.8.1 B]) + # Verify that the version is the required one. + # This is a simplified version of TOOLCHAIN_CHECK_COMPILER_VERSION + gtest_version="`$GREP GOOGLETEST_VERSION $GTEST_FRAMEWORK_SRC/CMakeLists.txt | $SED -E -e 's/set\(GOOGLETEST_VERSION (.*)\)/\1/'`" + comparable_actual_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$gtest_version"` + comparable_minimum_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$GTEST_MINIMUM_VERSION"` + if test $comparable_actual_version -lt $comparable_minimum_version ; then + AC_MSG_ERROR([gtest version is too old, at least version $GTEST_MINIMUM_VERSION is required]) fi fi fi diff --git a/make/conf/github-actions.conf b/make/conf/github-actions.conf index b7c27797034..d99f76ae40c 100644 --- a/make/conf/github-actions.conf +++ b/make/conf/github-actions.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2020, 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 @@ -25,7 +25,7 @@ # Versions and download locations for dependencies used by GitHub Actions (GHA) -GTEST_VERSION=1.8.1 +GTEST_VERSION=1.13.0 JTREG_VERSION=7.1.1+1 LINUX_X64_BOOT_JDK_EXT=tar.gz diff --git a/make/conf/jib-profiles.js b/make/conf/jib-profiles.js index 420a8cc87e6..b443d894029 100644 --- a/make/conf/jib-profiles.js +++ b/make/conf/jib-profiles.js @@ -1236,7 +1236,7 @@ var getJibProfilesDependencies = function (input, common) { gtest: { organization: common.organization, ext: "tar.gz", - revision: "1.8.1" + revision: "1.13.0+1.0" }, }; diff --git a/test/hotspot/gtest/gtestMain.cpp b/test/hotspot/gtest/gtestMain.cpp index 752f1b6a664..51e6030d10e 100644 --- a/test/hotspot/gtest/gtestMain.cpp +++ b/test/hotspot/gtest/gtestMain.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 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 @@ -230,7 +230,7 @@ static void runUnitTestsInner(int argc, char** argv) { 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) { // 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