You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2022/09/01 16:40:25 UTC

[kudu] branch master updated: [thirdparty] update googletest up to 1.12.1 version

This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new 9a8570b9c [thirdparty] update googletest up to 1.12.1 version
9a8570b9c is described below

commit 9a8570b9c6b3d4e24e47ca830c089ab04667ef41
Author: Alexey Serbin <al...@apache.org>
AuthorDate: Wed Aug 24 18:08:33 2022 -0700

    [thirdparty] update googletest up to 1.12.1 version
    
    Along with other fixes and updates, googletest v1.12.1 includes the fix
    that allows for building the library with CLANG 13 and newer [1].
    
    [1] https://github.com/google/googletest/issues/3427
    
    Change-Id: Ic1a398cbb93a6edb918e84e05927feb4b067058c
    Reviewed-on: http://gerrit.cloudera.org:8080/18922
    Reviewed-by: Attila Bukor <ab...@apache.org>
    Tested-by: Alexey Serbin <al...@apache.org>
---
 build-support/iwyu/mappings/gmock.imp              |  31 +++
 build-support/iwyu/mappings/gtest.imp              |  14 +-
 src/kudu/client/client-test.cc                     |   2 +-
 src/kudu/codegen/codegen-test.cc                   |   3 +-
 src/kudu/tools/kudu-tool-test.cc                   |   2 +-
 src/kudu/util/logging-test.cc                      |   3 +-
 thirdparty/build-definitions.sh                    |   8 +
 thirdparty/download-thirdparty.sh                  |   2 +-
 .../gmock-remove-unused-gunit-iwyu-pragma.patch    |  11 -
 thirdparty/patches/gmock-update-iwyu-pragma.patch  | 287 +++++++++++++++++++++
 thirdparty/vars.sh                                 |   2 +-
 11 files changed, 343 insertions(+), 22 deletions(-)

diff --git a/build-support/iwyu/mappings/gmock.imp b/build-support/iwyu/mappings/gmock.imp
new file mode 100644
index 000000000..0bbafd6f1
--- /dev/null
+++ b/build-support/iwyu/mappings/gmock.imp
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+[
+  { include: [ "<gmock/gmock-actions.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/gmock-cardinalities.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/gmock-function-mocker.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/gmock-matchers.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/gmock-more-actions.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/gmock-more-matchers.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/gmock-nice-strict.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/gmock-spec-builders.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/internal/custom/gmock-generated-actions.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/internal/custom/gmock-matchers.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/internal/custom/gmock-port.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/internal/gmock-internal-utils.h>", private, "<gmock/gmock.h>", public ] },
+  { include: [ "<gmock/internal/gmock-port.h>", private, "<gmock/gmock.h>", public ] }
+]
diff --git a/build-support/iwyu/mappings/gtest.imp b/build-support/iwyu/mappings/gtest.imp
index a54165027..cac2203d6 100644
--- a/build-support/iwyu/mappings/gtest.imp
+++ b/build-support/iwyu/mappings/gtest.imp
@@ -15,12 +15,20 @@
 # specific language governing permissions and limitations
 # under the License.
 [
-  { include: [ "<gtest/internal/gtest-internal.h>", private, "<gtest/gtest.h>", public ] },
-  { include: [ "<gtest/internal/gtest-string.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/gtest-assertion-result.h>", private, "<gtest/gtest.h>", public ] },
   { include: [ "<gtest/gtest-death-test.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/gtest-matchers.h>", private, "<gtest/gtest.h>", public ] },
   { include: [ "<gtest/gtest-message.h>", private, "<gtest/gtest.h>", public ] },
   { include: [ "<gtest/gtest-param-test.h>", private, "<gtest/gtest.h>", public ] },
   { include: [ "<gtest/gtest-printers.h>", private, "<gtest/gtest.h>", public ] },
   { include: [ "<gtest/gtest-test-part.h>", private, "<gtest/gtest.h>", public ] },
-  { include: [ "<gtest/gtest-typed-test.h>", private, "<gtest/gtest.h>", public ] }
+  { include: [ "<gtest/gtest-typed-test.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/gtest_pred_impl.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/internal/gtest-death-test-internal.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/internal/gtest-filepath.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/internal/gtest-internal.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/internal/gtest-param-util.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/internal/gtest-port.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/internal/gtest-string.h>", private, "<gtest/gtest.h>", public ] },
+  { include: [ "<gtest/internal/gtest-type-util.h>", private, "<gtest/gtest.h>", public ] }
 ]
diff --git a/src/kudu/client/client-test.cc b/src/kudu/client/client-test.cc
index f649cd488..7b59cbe57 100644
--- a/src/kudu/client/client-test.cc
+++ b/src/kudu/client/client-test.cc
@@ -42,7 +42,7 @@
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
-#include <gmock/gmock-matchers.h>
+#include <gmock/gmock.h>
 #include <google/protobuf/util/message_differencer.h>
 #include <gtest/gtest.h>
 
diff --git a/src/kudu/codegen/codegen-test.cc b/src/kudu/codegen/codegen-test.cc
index 0dca7035f..eb2a840f0 100644
--- a/src/kudu/codegen/codegen-test.cc
+++ b/src/kudu/codegen/codegen-test.cc
@@ -27,8 +27,7 @@
 #include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h> // IWYU pragma: keep
-#include <gmock/gmock-matchers.h>
-#include <gtest/gtest-matchers.h>
+#include <gmock/gmock.h>
 #include <gtest/gtest.h>
 
 #include "kudu/codegen/code_generator.h"
diff --git a/src/kudu/tools/kudu-tool-test.cc b/src/kudu/tools/kudu-tool-test.cc
index 064f1cad4..a0c89b40c 100644
--- a/src/kudu/tools/kudu-tool-test.cc
+++ b/src/kudu/tools/kudu-tool-test.cc
@@ -41,7 +41,7 @@
 #include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
-#include <gmock/gmock-matchers.h>
+#include <gmock/gmock.h>
 #include <gtest/gtest.h>
 #include <rapidjson/document.h>
 
diff --git a/src/kudu/util/logging-test.cc b/src/kudu/util/logging-test.cc
index 5514df99d..9f63cb7a7 100644
--- a/src/kudu/util/logging-test.cc
+++ b/src/kudu/util/logging-test.cc
@@ -28,8 +28,7 @@
 #include <vector>
 
 #include <glog/logging.h>
-#include <gmock/gmock-matchers.h>
-#include <gtest/gtest-matchers.h>
+#include <gmock/gmock.h>
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/substitute.h"
diff --git a/thirdparty/build-definitions.sh b/thirdparty/build-definitions.sh
index eb6b94690..ced8791ca 100644
--- a/thirdparty/build-definitions.sh
+++ b/thirdparty/build-definitions.sh
@@ -510,9 +510,17 @@ build_gmock_gtest() {
   # Install gmock/gtest libraries and headers manually instead of using make
   # install. Make install results in libraries with a malformed lib name on
   # macOS.
+  if [ -n "$OS_LINUX" ]; then
+    local ver_suffix=${DYLIB_SUFFIX}.${GMOCK_VERSION}
+  else
+    # on macOS the naming of versioned libraries differ from what it's on Linux
+    local ver_suffix=${GMOCK_VERSION}.${DYLIB_SUFFIX}
+  fi
   echo Installing gmock and gtest...
+  cp -a $GMOCK_SHARED_BDIR/lib/libgmock.$ver_suffix $PREFIX/lib/
   cp -a $GMOCK_SHARED_BDIR/lib/libgmock.$DYLIB_SUFFIX $PREFIX/lib/
   cp -a $GMOCK_STATIC_BDIR/lib/libgmock.a $PREFIX/lib/
+  cp -a $GMOCK_SHARED_BDIR/lib/libgtest.$ver_suffix $PREFIX/lib/
   cp -a $GMOCK_SHARED_BDIR/lib/libgtest.$DYLIB_SUFFIX $PREFIX/lib/
   cp -a $GMOCK_STATIC_BDIR/lib/libgtest.a $PREFIX/lib/
   rsync -av $GMOCK_SOURCE/googlemock/include/ $PREFIX/include/
diff --git a/thirdparty/download-thirdparty.sh b/thirdparty/download-thirdparty.sh
index f54a3f92d..20425f79b 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -183,7 +183,7 @@ fetch_and_patch \
  googletest-release-${GMOCK_VERSION}.tar.gz \
  $GMOCK_SOURCE \
  $GMOCK_PATCHLEVEL \
- "patch -p1 < $TP_DIR/patches/gmock-remove-unused-gunit-iwyu-pragma.patch"
+ "patch -p0 < $TP_DIR/patches/gmock-update-iwyu-pragma.patch"
 
 GFLAGS_PATCHLEVEL=0
 fetch_and_patch \
diff --git a/thirdparty/patches/gmock-remove-unused-gunit-iwyu-pragma.patch b/thirdparty/patches/gmock-remove-unused-gunit-iwyu-pragma.patch
deleted file mode 100644
index 907763113..000000000
--- a/thirdparty/patches/gmock-remove-unused-gunit-iwyu-pragma.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/googletest/include/gtest/gtest-matchers.h b/googletest/include/gtest/gtest-matchers.h
-index 9de6c2e1..f9ef74ef 100644
---- a/googletest/include/gtest/gtest-matchers.h
-+++ b/googletest/include/gtest/gtest-matchers.h
-@@ -32,7 +32,6 @@
- // This file implements just enough of the matcher interface to allow
- // EXPECT_DEATH and friends to accept a matcher argument.
- 
--// IWYU pragma: private, include "testing/base/public/gunit.h"
- // IWYU pragma: friend third_party/googletest/googlemock/.*
- // IWYU pragma: friend third_party/googletest/googletest/.*
diff --git a/thirdparty/patches/gmock-update-iwyu-pragma.patch b/thirdparty/patches/gmock-update-iwyu-pragma.patch
new file mode 100644
index 000000000..90b4bf8c5
--- /dev/null
+++ b/thirdparty/patches/gmock-update-iwyu-pragma.patch
@@ -0,0 +1,287 @@
+--- googletest/include/gtest/gtest-printers.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest-printers.h	2022-08-30 18:11:09.000000000 -0700
+@@ -94,7 +94,6 @@
+ // being defined as many user-defined container types don't have
+ // value_type.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/gtest-test-part.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest-test-part.h	2022-08-30 18:11:13.000000000 -0700
+@@ -27,7 +27,6 @@
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/gtest-death-test.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest-death-test.h	2022-08-30 18:10:59.000000000 -0700
+@@ -33,7 +33,6 @@
+ // #included by gtest.h so a user doesn't need to include this
+ // directly.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/internal/gtest-port.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/internal/gtest-port.h	2022-08-30 18:11:31.000000000 -0700
+@@ -38,7 +38,6 @@
+ // files are expected to #include this.  Therefore, it cannot #include
+ // any other Google Test header.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/internal/gtest-type-util.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/internal/gtest-type-util.h	2022-08-30 18:11:39.000000000 -0700
+@@ -30,7 +30,6 @@
+ // Type utilities needed for implementing typed and type-parameterized
+ // tests.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/internal/gtest-internal.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/internal/gtest-internal.h	2022-08-30 18:11:26.000000000 -0700
+@@ -32,7 +32,6 @@
+ // This header file declares functions and macros used internally by
+ // Google Test.  They are subject to change without notice.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/internal/gtest-death-test-internal.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/internal/gtest-death-test-internal.h	2022-08-30 18:11:21.000000000 -0700
+@@ -32,7 +32,6 @@
+ // This header file defines internal utilities needed for implementing
+ // death tests.  They are subject to change without notice.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/internal/gtest-filepath.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/internal/gtest-filepath.h	2022-08-30 18:11:23.000000000 -0700
+@@ -35,7 +35,6 @@
+ // This file is #included in gtest/internal/gtest-internal.h.
+ // Do not include this header file separately!
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/internal/gtest-string.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/internal/gtest-string.h	2022-08-30 18:11:33.000000000 -0700
+@@ -36,7 +36,6 @@
+ // This header file is #included by gtest-internal.h.
+ // It should not be #included by other files.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/internal/gtest-param-util.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/internal/gtest-param-util.h	2022-08-30 18:11:28.000000000 -0700
+@@ -29,7 +29,6 @@
+ 
+ // Type and function utilities for implementing parameterized tests.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/gtest-message.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest-message.h	2022-08-30 18:11:04.000000000 -0700
+@@ -41,7 +41,6 @@
+ // to CHANGE WITHOUT NOTICE.  Therefore DO NOT DEPEND ON IT in a user
+ // program!
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/gtest-matchers.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest-matchers.h	2022-08-30 18:11:01.000000000 -0700
+@@ -32,7 +32,6 @@
+ // This file implements just enough of the matcher interface to allow
+ // EXPECT_DEATH and friends to accept a matcher argument.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/gtest_pred_impl.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest_pred_impl.h	2022-08-30 18:11:18.000000000 -0700
+@@ -29,7 +29,6 @@
+ //
+ // Implements a family of generic predicate assertion macros.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/gtest-assertion-result.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest-assertion-result.h	2022-08-30 18:10:55.000000000 -0700
+@@ -31,7 +31,6 @@
+ //
+ // This file implements the AssertionResult type.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/gtest-typed-test.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest-typed-test.h	2022-08-30 18:11:15.000000000 -0700
+@@ -27,7 +27,6 @@
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googletest/include/gtest/gtest-param-test.h.orig	2022-08-30 18:09:54.000000000 -0700
++++ googletest/include/gtest/gtest-param-test.h	2022-08-30 18:11:06.000000000 -0700
+@@ -30,7 +30,6 @@
+ // Macros and functions for implementing parameterized tests
+ // in Google C++ Testing and Mocking Framework (Google Test)
+ 
+-// IWYU pragma: private, include "gtest/gtest.h"
+ // IWYU pragma: friend gtest/.*
+ // IWYU pragma: friend gmock/.*
+ 
+--- googlemock/include/gmock/gmock-actions.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/gmock-actions.h	2022-08-30 22:01:17.000000000 -0700
+@@ -124,7 +124,6 @@
+ // To learn more about using these macros, please search for 'ACTION' on
+ // https://github.com/google/googletest/blob/master/docs/gmock_cook_book.md
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_
+--- googlemock/include/gmock/gmock-spec-builders.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/gmock-spec-builders.h	2022-08-30 22:01:37.000000000 -0700
+@@ -55,7 +55,6 @@
+ // where all clauses are optional, and .InSequence()/.After()/
+ // .WillOnce() can appear any number of times.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_GMOCK_SPEC_BUILDERS_H_
+--- googlemock/include/gmock/gmock-function-mocker.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/gmock-function-mocker.h	2022-08-30 22:01:21.000000000 -0700
+@@ -31,7 +31,6 @@
+ //
+ // This file implements MOCK_METHOD.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_FUNCTION_MOCKER_H_  // NOLINT
+--- googlemock/include/gmock/gmock-more-matchers.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/gmock-more-matchers.h	2022-08-30 22:01:29.000000000 -0700
+@@ -34,7 +34,6 @@
+ // Note that tests are implemented in gmock-matchers_test.cc rather than
+ // gmock-more-matchers-test.cc.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_GMOCK_MORE_MATCHERS_H_
+--- googlemock/include/gmock/gmock-nice-strict.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/gmock-nice-strict.h	2022-08-30 22:01:31.000000000 -0700
+@@ -57,7 +57,6 @@
+ // In particular, nesting NiceMock, NaggyMock, and StrictMock is NOT
+ // supported.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_GMOCK_NICE_STRICT_H_
+--- googlemock/include/gmock/internal/gmock-internal-utils.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/internal/gmock-internal-utils.h	2022-08-30 22:01:52.000000000 -0700
+@@ -33,7 +33,6 @@
+ // Mock.  They are subject to change without notice, so please DO NOT
+ // USE THEM IN USER CODE.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_INTERNAL_UTILS_H_
+--- googlemock/include/gmock/internal/gmock-port.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/internal/gmock-port.h	2022-08-30 22:01:58.000000000 -0700
+@@ -34,7 +34,6 @@
+ // end with _ are part of Google Mock's public API and can be used by
+ // code outside Google Mock.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_PORT_H_
+--- googlemock/include/gmock/internal/custom/gmock-generated-actions.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/internal/custom/gmock-generated-actions.h	2022-08-30 22:01:45.000000000 -0700
+@@ -1,4 +1,3 @@
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_GENERATED_ACTIONS_H_
+--- googlemock/include/gmock/internal/custom/gmock-port.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/internal/custom/gmock-port.h	2022-08-30 22:01:49.000000000 -0700
+@@ -31,7 +31,6 @@
+ //
+ // ** Custom implementation starts here **
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_PORT_H_
+--- googlemock/include/gmock/internal/custom/gmock-matchers.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/internal/custom/gmock-matchers.h	2022-08-30 22:01:47.000000000 -0700
+@@ -29,7 +29,6 @@
+ 
+ // Injection point for custom user configurations. See README for details
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_MATCHERS_H_
+--- googlemock/include/gmock/gmock-more-actions.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/gmock-more-actions.h	2022-08-30 22:01:26.000000000 -0700
+@@ -31,7 +31,6 @@
+ //
+ // This file implements some commonly used variadic actions.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_GMOCK_MORE_ACTIONS_H_
+--- googlemock/include/gmock/gmock-cardinalities.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/gmock-cardinalities.h	2022-08-30 22:01:19.000000000 -0700
+@@ -33,7 +33,6 @@
+ // cardinalities can be defined by the user implementing the
+ // CardinalityInterface interface if necessary.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_GMOCK_CARDINALITIES_H_
+--- googlemock/include/gmock/gmock-matchers.h.orig	2022-08-30 21:59:24.000000000 -0700
++++ googlemock/include/gmock/gmock-matchers.h	2022-08-30 22:01:23.000000000 -0700
+@@ -249,7 +249,6 @@
+ // See googletest/include/gtest/gtest-matchers.h for the definition of class
+ // Matcher, class MatcherInterface, and others.
+ 
+-// IWYU pragma: private, include "gmock/gmock.h"
+ // IWYU pragma: friend gmock/.*
+ 
+ #ifndef GOOGLEMOCK_INCLUDE_GMOCK_GMOCK_MATCHERS_H_
diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh
index 9232f850a..b744d4ab3 100644
--- a/thirdparty/vars.sh
+++ b/thirdparty/vars.sh
@@ -46,7 +46,7 @@ GLOG_VERSION=0.6.0
 GLOG_NAME=glog-$GLOG_VERSION
 GLOG_SOURCE=$TP_SOURCE_DIR/$GLOG_NAME
 
-GMOCK_VERSION=1.10.0
+GMOCK_VERSION=1.12.1
 GMOCK_NAME=googletest-release-$GMOCK_VERSION
 GMOCK_SOURCE=$TP_SOURCE_DIR/$GMOCK_NAME