public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-util/cpputest/, dev-util/cpputest/files/
@ 2025-01-14  7:02 Sam James
  0 siblings, 0 replies; only message in thread
From: Sam James @ 2025-01-14  7:02 UTC (permalink / raw
  To: gentoo-commits

commit:     08bcbb8fa872ebfe830f17b8c89bdbaa01d1bc21
Author:     Z. Liu <zhixu.liu <AT> gmail <DOT> com>
AuthorDate: Sun Jan 12 15:37:00 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jan 14 07:01:50 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08bcbb8f

dev-util/cpputest: fix configure & test

1. fix unexpected errors during configuration, patch submitted to upstream at
   https://github.com/cpputest/cpputest/pull/1837
2. adopt patch from https://github.com/cpputest/cpputest/pull/1679, fix
   tests hangs w/ clang

Closes: https://bugs.gentoo.org/879681
Closes: https://bugs.gentoo.org/924958
Signed-off-by: Z. Liu <zhixu.liu <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/40105
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...{cpputest-4.0.ebuild => cpputest-4.0-r1.ebuild} |  9 ++++-
 .../cpputest/files/cpputest-4.0-autoconf.patch     | 46 ++++++++++++++++++++++
 .../files/cpputest-4.0-replace-UB-by-abort.patch   | 33 ++++++++++++++++
 dev-util/cpputest/metadata.xml                     |  9 ++++-
 4 files changed, 94 insertions(+), 3 deletions(-)

diff --git a/dev-util/cpputest/cpputest-4.0.ebuild b/dev-util/cpputest/cpputest-4.0-r1.ebuild
similarity index 79%
rename from dev-util/cpputest/cpputest-4.0.ebuild
rename to dev-util/cpputest/cpputest-4.0-r1.ebuild
index 0b624814f4ae..4d8d165e77c2 100644
--- a/dev-util/cpputest/cpputest-4.0.ebuild
+++ b/dev-util/cpputest/cpputest-4.0-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=7
+EAPI=8
 
 inherit autotools
 
@@ -19,6 +19,11 @@ DEPEND="test? ( >=dev-cpp/gtest-1.8.0 )"
 
 DOCS=( AUTHORS README.md README_CppUTest_for_C.txt )
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-4.0-autoconf.patch
+	"${FILESDIR}"/${P}-replace-UB-by-abort.patch
+)
+
 src_prepare() {
 	default
 	eautoreconf

diff --git a/dev-util/cpputest/files/cpputest-4.0-autoconf.patch b/dev-util/cpputest/files/cpputest-4.0-autoconf.patch
new file mode 100644
index 000000000000..fe171d7a5582
--- /dev/null
+++ b/dev-util/cpputest/files/cpputest-4.0-autoconf.patch
@@ -0,0 +1,46 @@
+patch submitted to upstream at https://github.com/cpputest/cpputest/pull/1837
+
+From 2ba7e10e73a1daf7194b83e952df58ce1c985644 Mon Sep 17 00:00:00 2001
+From: "Z. Liu" <zhixu.liu@gmail.com>
+Date: Sun, 12 Jan 2025 23:04:59 +0800
+Subject: [PATCH] configure.ac: fix call of AC_LANG_PROGRAM & unexpected
+ compilation errors
+
+1. multiple line should be enclosed by [[ ]], otherwise compilation of
+   conftest.cpp will failed with:
+     error: extra tokens at end of #include directive [-Werror,-Wextra-tokens]
+2. add #include <cstdint>
+3. size_t -> std::size_t
+
+Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
+---
+ configure.ac | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b19c9eb6..e91c4a27 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -325,13 +325,17 @@ AC_LANG_PUSH([C++])
+ # Can we use operator delete without exception handling specifier? (clang warns on this!)
+ CXXFLAGS="-Werror"
+ AC_MSG_CHECKING([whether CXX supports operator delete without exception handling specifier])
+-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <new>\nvoid operator delete(void* mem);])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); UT_DELETE_MUST_HAVE_EXCEPTION_SPECIFIER="yes"])
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <cstdint>
++#include <new>
++void operator delete(void* mem);]])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); UT_DELETE_MUST_HAVE_EXCEPTION_SPECIFIER="yes"])
+ CXXFLAGS="$saved_cxxflags"
+ 
+ # Can we use operator new with exception specifier (g++4.7 on MacOSX is broken here)
+ CXXFLAGS="-Werror"
+ AC_MSG_CHECKING([whether CXX supports operator new with exception handling specifier])
+-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <new>\nvoid* operator new(size_t size) throw(std::bad_alloc);;])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); UT_NEW_CANT_HAVE_EXCEPTION_SPECIFIER="yes"])
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <cstdint>
++#include <new>
++void* operator new(std::size_t size) throw(std::bad_alloc);;]])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); UT_NEW_CANT_HAVE_EXCEPTION_SPECIFIER="yes"])
+ CXXFLAGS="$saved_cxxflags"
+ 
+ # Flag -Wno-missing-exception-spec
+-- 
+2.45.2
+

diff --git a/dev-util/cpputest/files/cpputest-4.0-replace-UB-by-abort.patch b/dev-util/cpputest/files/cpputest-4.0-replace-UB-by-abort.patch
new file mode 100644
index 000000000000..54dbf24c9411
--- /dev/null
+++ b/dev-util/cpputest/files/cpputest-4.0-replace-UB-by-abort.patch
@@ -0,0 +1,33 @@
+fix tests hang with clang as reported in https://bugs.gentoo.org/924958
+
+patch from upstream PR at https://github.com/cpputest/cpputest/pull/1679
+commit https://github.com/cpputest/cpputest/commit/094df52c8f6dae1dccb30d0d39dd1eb832ded85c
+adapt to v4.0
+
+diff --git a/src/CppUTest/Utest.cpp b/src/CppUTest/Utest.cpp
+index d078bdf..3cbbcdf 100644
+--- a/src/CppUTest/Utest.cpp
++++ b/src/CppUTest/Utest.cpp
+@@ -153,7 +153,7 @@ UtestShell::~UtestShell()
+ // LCOV_EXCL_START - actually covered but not in .gcno due to race condition
+ static void defaultCrashMethod()
+ {
+-    UtestShell* ptr = (UtestShell*) NULLPTR; ptr->countTests();
++    abort();
+ }
+ // LCOV_EXCL_STOP
+ 
+diff --git a/tests/CppUTest/UtestTest.cpp b/tests/CppUTest/UtestTest.cpp
+index cf6ad1c..a26fb41 100644
+--- a/tests/CppUTest/UtestTest.cpp
++++ b/tests/CppUTest/UtestTest.cpp
+@@ -222,8 +222,7 @@ TEST(UtestShell, TestDefaultCrashMethodInSeparateProcessTest)
+     fixture.runAllTests();
+     fixture.assertPrintContains("Failed in separate process - killed by signal");
+ 
+-    /* Signal 11 usually happens, but with clang3.7 on Linux, it produced signal 4 */
+-    CHECK(fixture.getOutput().contains("signal 11") || fixture.getOutput().contains("signal 4"));
++    CHECK(fixture.getOutput().contains("signal 6"));
+ }
+ 
+ #endif

diff --git a/dev-util/cpputest/metadata.xml b/dev-util/cpputest/metadata.xml
index 8b0fb96a6593..d07ac8206d58 100644
--- a/dev-util/cpputest/metadata.xml
+++ b/dev-util/cpputest/metadata.xml
@@ -1,7 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<!-- maintainer-needed -->
+	<maintainer type="person" proxied="yes">
+		<email>zhixu.liu@gmail.com</email>
+		<name>Z. Liu</name>
+	</maintainer>
+	<maintainer type="project" proxied="proxy">
+		<email>proxy-maint@gentoo.org</email>
+		<name>Proxy Maintainers</name>
+	</maintainer>
 	<upstream>
 		<remote-id type="github">cpputest/cpputest</remote-id>
 	</upstream>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2025-01-14  7:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-14  7:02 [gentoo-commits] repo/gentoo:master commit in: dev-util/cpputest/, dev-util/cpputest/files/ Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox