commit:     f91d23ad945f835be7f9259808e90f33b7aba336
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May 24 02:18:01 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May 24 02:18:25 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f91d23ad

dev-libs/metee: wire up tests

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../metee/files/metee-5.0.0-system-gtest.patch     | 42 ++++++++++++++++++++++
 dev-libs/metee/metee-5.0.0.ebuild                  | 38 +++++++++++++++++---
 2 files changed, 75 insertions(+), 5 deletions(-)

diff --git a/dev-libs/metee/files/metee-5.0.0-system-gtest.patch 
b/dev-libs/metee/files/metee-5.0.0-system-gtest.patch
new file mode 100644
index 000000000000..f0129aa2b19a
--- /dev/null
+++ b/dev-libs/metee/files/metee-5.0.0-system-gtest.patch
@@ -0,0 +1,42 @@
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 4344119..665dd4b 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -3,12 +3,9 @@
+ cmake_minimum_required(VERSION 3.15)
+ project(metee_test)
+ 
+-set(CMAKE_CXX_STANDARD 11)
++set(CMAKE_CXX_STANDARD 17)
+ 
+-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/googletest-src)
+-  file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/googletest-src
+-       DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+-  )
++if(TRUE)
+ else(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/googletest-src)
+   # Download and unpack googletest at configure time
+   configure_file(gtest.cmake.in googletest-download/CMakeLists.txt)
+@@ -36,13 +33,6 @@ set(gtest_force_shared_crt
+     CACHE BOOL "" FORCE
+ )
+ 
+-# Add googletest directly to our build. This defines the gtest and gtest_main
+-# targets.
+-add_subdirectory(
+-  ${CMAKE_CURRENT_BINARY_DIR}/googletest-src
+-  ${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL
+-)
+-
+ add_executable(${PROJECT_NAME}
+   Main.cpp
+   metee_test.cpp
+@@ -53,7 +43,7 @@ if(NOT CONSOLE_OUTPUT)
+   target_compile_definitions(${PROJECT_NAME} PRIVATE -DSYSLOG)
+ endif()
+ 
+-target_link_libraries(${PROJECT_NAME} metee gtest_main gmock_main)
++target_link_libraries(${PROJECT_NAME} metee gtest gmock)
+ 
+ target_include_directories(${PROJECT_NAME}
+   PRIVATE ${CMAKE_SOURCE_DIR}/src/Windows

diff --git a/dev-libs/metee/metee-5.0.0.ebuild 
b/dev-libs/metee/metee-5.0.0.ebuild
index bbbb7e70f0fe..435523682a22 100644
--- a/dev-libs/metee/metee-5.0.0.ebuild
+++ b/dev-libs/metee/metee-5.0.0.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-inherit cmake
+inherit cmake edo
 
 DESCRIPTION="Cross-platform access library for Intel CSME HECI interface"
 HOMEPAGE="https://github.com/intel/metee";
@@ -12,12 +12,19 @@ 
SRC_URI="https://github.com/intel/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.t
 LICENSE="Apache-2.0"
 SLOT="0/${PV}"
 KEYWORDS="~amd64"
-IUSE="doc"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
 
-BDEPEND="doc? ( app-text/doxygen )"
+BDEPEND="
+       doc? ( app-text/doxygen )
+       test? ( dev-cpp/gtest )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-5.0.0-system-gtest.patch
+)
 
 src_prepare() {
-       default
        cmake_src_prepare
 
        # Respect users CFLAGS
@@ -29,9 +36,30 @@ src_configure() {
                -DBUILD_DOCS="$(usex doc)"
                -DBUILD_SAMPLES="NO"
                -DBUILD_SHARED_LIBS="YES"
-               -DBUILD_TEST="NO"
+               -DBUILD_TEST="$(usex test)"
                -DCONSOLE_OUTPUT="NO"
        )
 
        cmake_src_configure
 }
+
+src_test() {
+       local skip_tests=(
+               MeTeeTESTInstance/MeTeeTEST.PROD_N_TestGetMeiKind/PCH
+               MeTeePPTESTInstance/MeTeePPTEST.PROD_MKHI_MoveSemantics/PCH
+       )
+
+       # The format for disabling test1, test2, and test3 looks like:
+       # -test1:test2:test3
+       edo "${BUILD_DIR}"/tests/metee_test \
+               --gtest_filter=-$(echo $(IFS=:; echo "${skip_tests[*]}"))
+}
+
+src_install() {
+       cmake_src_install
+
+       # Don't install test binary
+       if use test ; then
+               rm "${ED}"/usr/bin/metee_test || die
+       fi
+}

Reply via email to