diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index f43bdf3c70..0467d1f424 100644
--- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -23,6 +23,7 @@ PTESTS_FAST_META_OE = "\
     function2 \
     fwupd \
     gcab \
+    googletest \
     hunspell \
     imagemagick \
     jemalloc \
diff --git a/meta-oe/recipes-test/googletest/files/run-ptest b/meta-oe/recipes-test/googletest/files/run-ptest
new file mode 100644
index 0000000000..da46c68550
--- /dev/null
+++ b/meta-oe/recipes-test/googletest/files/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ctest | sed -u 's/\*\*\*/   /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
diff --git a/meta-oe/recipes-test/googletest/googletest_1.17.0.bb b/meta-oe/recipes-test/googletest/googletest_1.17.0.bb
index c8ed80053d..4d5340b994 100644
--- a/meta-oe/recipes-test/googletest/googletest_1.17.0.bb
+++ b/meta-oe/recipes-test/googletest/googletest_1.17.0.bb
@@ -7,15 +7,20 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbd27594afd089daa160d3a16dd515a"
 PROVIDES += "gmock gtest"
 
 SRC_URI = "git://github.com/google/googletest.git;branch=v1.17.x;protocol=https \
+           file://run-ptest \
           "
 SRCREV = "52eb8108c5bdec04579160ae17225d66034bd723"
 
-inherit cmake pkgconfig
+inherit cmake pkgconfig ptest
 
 # allow for shared libraries, but do not default to them
 #
 PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
 
+EXTRA_OECMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', '-Dgtest_build_tests=ON -Dgmock_build_tests=ON', '', d)}"
+
+DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'rsync-native', '', d)}"
+
 CXXFLAGS:append = " -fPIC"
 
 ALLOW_EMPTY:${PN} = "1"
@@ -35,3 +40,40 @@ do_configure:prepend() {
     # there isn't python in HOSTTOOLS so "env python" fails
     sed -i 's@^#!/usr/bin/env python$@#!/usr/bin/env python3@g' ${S}/googlemock/test/*py ${S}/googletest/test/*py
 }
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/lib
+
+    ptest_libs="libshared_gmock_main.so \
+                libgtest_dll.so \
+                libgmock_main_no_exception.so \
+                libgtest_main_no_exception.so \
+                libgtest_no_exception.so \
+                libgtest_main_no_rtti.so \
+               "
+    for i in ${ptest_libs}; do
+        [ -f ${B}/lib/${i} ] && install -m 0755 ${B}/lib/${i} ${D}${PTEST_PATH}/lib
+    done
+
+    rsync -a ${B}/googletest ${D}${PTEST_PATH} \
+          --exclude CMakeFiles \
+          --exclude cmake_install.cmake \
+          --exclude Makefile \
+          --exclude generated
+    install -d ${D}${PTEST_PATH}/googletest/test
+    cp ${S}/googletest/test/*.py ${D}${PTEST_PATH}/googletest/test
+    cp ${S}/googletest/test/*.txt ${D}${PTEST_PATH}/googletest/test
+    rsync -a ${B}/googlemock ${D}${PTEST_PATH} \
+          --exclude CMakeFiles \
+          --exclude cmake_install.cmake \
+          --exclude Makefile \
+          --exclude generated
+    cp ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}
+    sed -i -e 's#${B}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+    sed -i -e 's#${S}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+    sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+    sed -i -e 's#${PYTHON}#/usr/bin/python3#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+    sed -i -e 's#${WORKDIR}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+}
+
+RDEPENDS:${PN}-ptest += "cmake sed python3-datetime python3-difflib python3-json python3-xml python3-misc python3-unittest"
