From ccf2f5837b31cddd24ec81f7f67107d9fc03c294 Mon Sep 17 00:00:00 2001
From: Mikael Vidstedt
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:
--with-gtest
. The minimum supported
+version of Google Test is 1.13.0, whose source code can be obtained:
release-1.8.1
tag of
+href="https://github.com/google/googletest/releases/tag/v1.13.0">herev1.13.0
tag of
googletest
project:
-git clone -b release-1.8.1 https://github.com/google/googletest
git clone -b v1.13.0 https://github.com/google/googletest
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