Compare commits

..

2 commits

Author SHA1 Message Date
David Tardon
2674ee498d Revert "switch to new upstream"
This would mean rebuilding depending packages too and I don't think the
update is worth it.

This reverts commit b8f63c4263.
2016-02-18 13:28:32 +01:00
David Tardon
3865c8b5df Revert "drop obsolete cppunit-config"
There are still packages that use it.

This reverts commit 178f2e9af8.
2016-02-15 14:26:17 +01:00
17 changed files with 1819 additions and 403 deletions

View file

@ -1 +0,0 @@
1

4
.gitignore vendored
View file

@ -1,6 +1,2 @@
cppunit-1.12.1.tar.gz
cppunit-1.12.1.tar.gz
cppunit-1.13.2.tar.gz
/cppunit-1.14.0.tar.gz
/cppunit-1.15.0.tar.gz
/cppunit-1.15.1.tar.gz

View file

@ -0,0 +1,28 @@
From 1cebdfc97b39961c2df68e84996f667d529eafc7 Mon Sep 17 00:00:00 2001
From: Thorsten Behrens <tbehrens@suse.com>
Date: Tue, 12 Nov 2013 08:59:19 +0100
Subject: [PATCH] Update FSF address in LGPL license.
Since rpmlint was bitching, and indeed
http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt features a
new address.
---
COPYING | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/COPYING b/COPYING
index b1e3f5a..0a41847 100644
--- a/COPYING
+++ b/COPYING
@@ -2,7 +2,7 @@
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
--
2.5.0

View file

@ -0,0 +1,43 @@
From a691504d5fb8fada5343252d3ce5bd147c677e50 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Sat, 13 Feb 2016 12:52:56 +0100
Subject: [PATCH] convert to UTF-8
---
NEWS | 2 +-
THANKS | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/NEWS b/NEWS
index b3c4c19..65dd5d8 100644
--- a/NEWS
+++ b/NEWS
@@ -164,7 +164,7 @@
Win32DynamicLibraryManager.cpp.
- MinGW, cygwin: enable build of shared library when using libtool.
- patch #1194394 contributed by Stéphane Fillod.
+ patch #1194394 contributed by Stéphane Fillod.
- autotool: applied patch #1076398 contributed by Henner Sudek. Quote:
"This patch allows AM_PATH_CPPUNIT to accept version
diff --git a/THANKS b/THANKS
index 89cfa9c..331f916 100644
--- a/THANKS
+++ b/THANKS
@@ -14,10 +14,10 @@ Lavoie Philippe <lavoie@yukon.genie.uottawa.ca>
Pavel Zabelin
Marco Welti <Welti@GretagMacbeth.ch>
Thomas Neidhart
-Hans Bühler <hans.buehler@topmail.de> (Dynamic Window library used by MFC UI)
+Hans Bühler <hans.buehler@topmail.de> (Dynamic Window library used by MFC UI)
John Sisson
Steven Mitter <smitter@iicm.tu-graz.ac.at>
Stephan Stapel <stephan.stapel@web.de>
Abdessattar Sassi <abdesassi@users.sourceforge.net> (hp-ux plug-in support)
Max Quatember and Andreas Pfaffenbichler (VC++ 7 MFC TestRunner go to source line)
-Vincent Rivière
+Vincent Rivière
--
2.5.0

146
changelog
View file

@ -1,146 +0,0 @@
* Mon Nov 21 2022 David Tardon <dtardon@redhat.com> - 1.15.1-8
- Convert license to SPDX
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Dec 25 2019 David Tardon <dtardon@redhat.com> - 1.15.1-2
- try again
* Wed Dec 25 2019 David Tardon <dtardon@redhat.com> - 1.15.1-1
- new upstream release
* Sat Dec 21 2019 David Tardon <dtardon@redhat.com> - 1.15.0-1
- new upstream release
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jun 28 2018 Rex Dieter <rdieter@fedoraproject.org> - 1.14.0-5
- use %%make_build %%make_install %%ldconfig_scriptlets
- -devel: tighten dep on main pkg with %%_isa
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue May 02 2017 David Tardon <dtardon@redhat.com> - 1.14.0-1
- new upstream release
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sat Feb 13 2016 David Tardon <dtardon@redhat.com> - 1.13.2-2
- drop obsolete cppunit-config
* Sat Feb 13 2016 David Tardon <dtardon@redhat.com> - 1.13.2-1
- switch to new upstream
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.1-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat Apr 11 2015 David Tardon <dtardon@redhat.com> - 1.12.1-15
- rebuild for yet another C++ ABI break
* Fri Feb 20 2015 David Tardon <dtardon@redhat.com> - 1.12.1-14
- rebuild for C++ stdlib ABI change in gcc5
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue May 20 2014 David Tardon <dtardon@redhat.com> - 1.12.1-11
- rhbz#925193 add support for aarch64
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Oct 05 2011 Caolán McNamara <caolanm@redhat.com> - 1.12.1-6
- add sf#2912630 fix for unused argument warnings
* Tue Jun 28 2011 Steven M. Parrish <smparrish@gmail.com> - 1.12.1-5
- Fix for bug 452340
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Thu Sep 18 2008 Patrice Dumas <pertusus@free.fr> 1.12.1-1
- Update to 1.12.1
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.12.0-5
- Autorebuild for GCC 4.3
* Mon Dec 17 2007 Patrice Dumas <pertusus@free.fr> 1.12.0-4
- remove libdir reference to cppunit-config, should fix multiarch conflict
(#340951)
- fix encoding and remove windows related files in examples
- keep timestamps
* Mon Jan 29 2007 Patrice Dumas <pertusus@free.fr> 1.12.0-3
- add rightly files to -devel (#224106)
- add necessary requires for -devel (#224106)
- ship examples
* Sun Sep 10 2006 Patrice Dumas <pertusus@free.fr> 1.12.0-2
- rebuild for FC6
* Wed Jul 5 2006 Patrice Dumas <pertusus@free.fr> 1.12.0-1
- update to 1.12
* Sun May 21 2006 Patrice Dumas <pertusus@free.fr> 1.11.6-1
- update to 1.11.6
* Wed Dec 21 2005 Patrice Dumas <pertusus@free.fr> 1.11.4-1
- update
* Mon Aug 15 2005 Tom "spot" Callaway <tcallawa@redhat.com> 1.11.0-2
- various cleanups
* Mon Jul 4 2005 Patrice Dumas <pertusus@free.fr> 1.11.0-1
- update using the fedora template
* Sat Apr 14 2001 Bastiaan Bakker <bastiaan.bakker@lifeline.nl>
- Initial release

View file

@ -0,0 +1,13 @@
diff -up cppunit-1.12.0/cppunit-config.in.nolibdir cppunit-1.12.0/cppunit-config.in
--- cppunit-1.12.0/cppunit-config.in.nolibdir 2007-10-21 11:19:40.000000000 +0200
+++ cppunit-1.12.0/cppunit-config.in 2007-10-21 11:20:01.000000000 +0200
@@ -87,9 +87,6 @@ if test "$echo_cflags" = "yes"; then
fi
if test "$echo_libs" = "yes"; then
- if test @libdir@ != /usr/lib ; then
- my_linker_flags="-L@libdir@"
- fi
echo ${my_linker_flags} -lcppunit @LIBADD_DL@
fi

1576
cppunit-aarch64.patch Normal file

File diff suppressed because it is too large Load diff

24
cppunit-msg.patch Normal file
View file

@ -0,0 +1,24 @@
--- cppunit-1.12.1/include/cppunit/Message.h 2010-10-08 14:02:26.514477964 +0200
+++ cppunit-1.12.1/include/cppunit/Message.h 2010-10-08 14:02:15.411948098 +0200
@@ -57,6 +57,8 @@ public:
const std::string &detail2,
const std::string &detail3 );
+ ~Message();
+
Message &operator =( const Message &other );
/*! \brief Returns the short description.
--- cppunit-1.12.1/src/cppunit/Message.cpp 2010-10-08 14:02:39.421768852 +0200
+++ cppunit-1.12.1/src/cppunit/Message.cpp 2010-10-08 14:02:54.066829633 +0200
@@ -47,6 +47,10 @@ Message::Message( const std::string &sho
addDetail( detail1, detail2, detail3 );
}
+Message::~Message()
+{
+}
+
Message &
Message::operator =( const Message &other )
{

View file

@ -0,0 +1,22 @@
--- cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h 2007-01-12 05:54:34.000000000 +0100
+++ cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h 2009-12-02 15:33:29.639857272 +0100
@@ -151,9 +151,7 @@
#include <windows.h>
#endif
#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
- BOOL APIENTRY DllMain( HANDLE hModule, \
- DWORD ul_reason_for_call, \
- LPVOID lpReserved ) \
+ BOOL APIENTRY DllMain( HANDLE, DWORD, LPVOID ) \
{ \
return TRUE; \
} \
@@ -162,7 +160,7 @@
// Unix
#elif defined(CPPUNIT_HAVE_UNIX_DLL_LOADER) || defined(CPPUNIT_HAVE_UNIX_SHL_LOADER)
#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
- int main( int argc, char *argv[] ) \
+ int main( int, char *[] ) \
{ \
return 0; \
} \

View file

@ -1,23 +1,24 @@
%global apiversion 1.15
%global apiversion 1.12
Name: cppunit
Version: 1.15.1
Release: %autorelease
Version: 1.12.1
Release: 17%{?dist}
Summary: C++ unit testing framework
# no license in files
License: LGPL-2.1-or-later
Url: https://www.freedesktop.org/wiki/Software/cppunit/
Source: https://dev-www.libreoffice.org/src/%{name}-%{version}.tar.gz
# Backport patch to run tests in deterministic order
# https://gerrit.libreoffice.org/c/cppunit/+/123963
Patch: run-tests-in-deterministic-order.patch
License: LGPLv2+
Url: http://cppunit.sourceforge.net/
Source: http://downloads.sourceforge.net/cppunit/cppunit-%{version}.tar.gz
Patch0: cppunit-1.12.0-nolibdir.patch
Patch1: cppunit-msg.patch
#https://sourceforge.net/tracker/?func=detail&aid=2912630&group_id=11795&atid=311795
Patch2: cppunit-warnings-sf2912630.patch
Patch3: cppunit-aarch64.patch
Patch4: 0001-Update-FSF-address-in-LGPL-license.patch
Patch5: 0001-convert-to-UTF-8.patch
BuildRequires: doxygen
BuildRequires: gcc-c++
BuildRequires: graphviz
BuildRequires: make
%description
CppUnit is the C++ port of the famous JUnit framework for unit testing.
@ -26,7 +27,7 @@ tests.
%package devel
Summary: Libraries and headers for cppunit development
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
%description devel
This package contains the libraries and headers necessary for developing
@ -43,32 +44,35 @@ the popular doxygen documentation generation tool.
%autosetup -p1
%build
%configure --enable-doxygen --disable-static --disable-silent-rules --disable-werror
%configure --enable-doxygen --disable-static --disable-silent-rules
sed -i \
-e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
libtool
%make_build
make %{?_smp_mflags}
%install
%make_install
make install DESTDIR=%{buildroot} INSTALL='install -p'
rm %{buildroot}%{_libdir}/*.la
# remove double of doc
rm -rf %{buildroot}%{_datadir}/doc/cppunit %{buildroot}%{_datadir}/%{name}/html
# ensure that timestamp of cppunit-config is the same for all arches
touch -c -r configure %{buildroot}%{_bindir}/cppunit-config
# clean up examples
rm -rf __dist-examples __dist-examples-dir
cp -a examples __dist-examples
make -C __dist-examples distclean
# Makefile.am files are left as documentation
find __dist-examples \( -name Makefile.in -o -name .gitignore -o -name '*.opt' -o -name '*.sln' -o -name '*.vcproj' \) -exec rm {} \;
find __dist-examples \( -name Makefile.in -o -name .cvsignore -o -name '*.dsw' -o -name '*.dsp' \) -exec rm {} \;
chmod a-x __dist-examples/qt/run.bat
mkdir __dist-examples-dir
mv __dist-examples __dist-examples-dir/examples
%post -p /sbin/ldconfig
%ldconfig_scriptlets
%postun -p /sbin/ldconfig
%files
%doc AUTHORS NEWS README THANKS TODO BUGS doc/FAQ
@ -78,8 +82,11 @@ mv __dist-examples __dist-examples-dir/examples
%{_libdir}/libcppunit-%{apiversion}.so.1.*
%files devel
%{_bindir}/cppunit-config
%{_includedir}/cppunit
%{_libdir}/libcppunit.so
%{_datadir}/aclocal/cppunit.m4
%{_mandir}/man1/cppunit-config.1*
%{_libdir}/pkgconfig/cppunit.pc
%files doc
@ -88,4 +95,88 @@ mv __dist-examples __dist-examples-dir/examples
%doc doc/html
%changelog
%autochangelog
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.1-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat Apr 11 2015 David Tardon <dtardon@redhat.com> - 1.12.1-15
- rebuild for yet another C++ ABI break
* Fri Feb 20 2015 David Tardon <dtardon@redhat.com> - 1.12.1-14
- rebuild for C++ stdlib ABI change in gcc5
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue May 20 2014 David Tardon <dtardon@redhat.com> - 1.12.1-11
- rhbz#925193 add support for aarch64
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Oct 05 2011 Caolán McNamara <caolanm@redhat.com> - 1.12.1-6
- add sf#2912630 fix for unused argument warnings
* Tue Jun 28 2011 Steven M. Parrish <smparrish@gmail.com> - 1.12.1-5
- Fix for bug 452340
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Thu Sep 18 2008 Patrice Dumas <pertusus@free.fr> 1.12.1-1
- Update to 1.12.1
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.12.0-5
- Autorebuild for GCC 4.3
* Mon Dec 17 2007 Patrice Dumas <pertusus@free.fr> 1.12.0-4
- remove libdir reference to cppunit-config, should fix multiarch conflict
(#340951)
- fix encoding and remove windows related files in examples
- keep timestamps
* Mon Jan 29 2007 Patrice Dumas <pertusus@free.fr> 1.12.0-3
- add rightly files to -devel (#224106)
- add necessary requires for -devel (#224106)
- ship examples
* Sun Sep 10 2006 Patrice Dumas <pertusus@free.fr> 1.12.0-2
- rebuild for FC6
* Wed Jul 5 2006 Patrice Dumas <pertusus@free.fr> 1.12.0-1
- update to 1.12
* Sun May 21 2006 Patrice Dumas <pertusus@free.fr> 1.11.6-1
- update to 1.11.6
* Wed Dec 21 2005 Patrice Dumas <pertusus@free.fr> 1.11.4-1
- update
* Mon Aug 15 2005 Tom "spot" Callaway <tcallawa@redhat.com> 1.11.0-2
- various cleanups
* Mon Jul 4 2005 Patrice Dumas <pertusus@free.fr> 1.11.0-1
- update using the fedora template
* Sat Apr 14 2001 Bastiaan Bakker <bastiaan.bakker@lifeline.nl>
- Initial release

View file

@ -1,19 +0,0 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- rhel-8
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}

View file

@ -1,5 +0,0 @@
summary: CI Gating Plan
discover:
how: fmf
execute:
how: tmt

View file

@ -1,43 +0,0 @@
From 64eaa35c2de99581e522608e841defffb4b2923b Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Thu, 21 Oct 2021 11:14:34 +0200
Subject: [PATCH] Run tests in deterministic order
LibreOffice already benefits from this (see
<https://git.libreoffice.org/core/+/2f2246d22e2a8ccbc1dc3e6f5243734a61edf270%5E!>
"external/cppunit: Run tests in deterministic order", especially as otherwise
the order in which tests happened to get run differed between --disable-lto and
--enable-lto builds.
Change-Id: I87d6d7cb0f4c2f6a0ea1ac3ba3d48b4e089eb5c7
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/123963
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
---
diff --git a/src/cppunit/TestFactoryRegistry.cpp b/src/cppunit/TestFactoryRegistry.cpp
index 35448a6..3b68d58 100644
--- a/src/cppunit/TestFactoryRegistry.cpp
+++ b/src/cppunit/TestFactoryRegistry.cpp
@@ -143,12 +143,20 @@
void
TestFactoryRegistry::addTestToSuite( TestSuite *suite )
{
+ std::multimap<std::string, Test *> sorted;
for ( Factories::iterator it = m_factories.begin();
it != m_factories.end();
++it )
{
TestFactory *factory = *it;
- suite->addTest( factory->makeTest() );
+ Test *test = factory->makeTest();
+ sorted.insert({test->getName(), test});
+ }
+ // In the unlikely case of multiple Tests with identical names, those will
+ // still be added in random order:
+ for (auto const &i: sorted)
+ {
+ suite->addTest( i.second );
}
}

View file

@ -1 +1 @@
SHA512 (cppunit-1.15.1.tar.gz) = 0feb47faec451357bb4c4e287efa17bb60fd3ad966d5350e9f25b414aaab79e94921024b0c0497672f8d3eeb22a599213d2d71d9e1d28b243b3e37f3a9a43691
bd30e9cf5523cdfc019b94f5e1d7fd19 cppunit-1.12.1.tar.gz

View file

@ -1,92 +0,0 @@
#include <iostream>
#include <cppunit/TestRunner.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/XmlOutputter.h>
using namespace std;
class Math
{
public:
int Addition (int x, int y);
};
int
Math::Addition (int x, int y)
{
return (x + y);
}
class Test:public
CPPUNIT_NS::TestCase
{
CPPUNIT_TEST_SUITE (Test);
CPPUNIT_TEST (testAddition);
CPPUNIT_TEST_SUITE_END ();
public:
void
setUp (void);
void
tearDown (void);
protected:
void
testAddition (void);
private:
Math *
mTestObj;
};
void
Test::testAddition (void)
{
CPPUNIT_ASSERT (5 == mTestObj->Addition (2, 3));
}
void
Test::setUp (void)
{
mTestObj = new Math ();
}
void
Test::tearDown (void)
{
delete mTestObj;
}
CPPUNIT_TEST_SUITE_REGISTRATION (Test);
int
main (int ac, char **av)
{
CPPUNIT_NS::TestResult controller;
CPPUNIT_NS::TestResultCollector result;
controller.addListener (&result);
CPPUNIT_NS::BriefTestProgressListener progress;
controller.addListener (&progress);
CPPUNIT_NS::TestRunner runner;
runner.
addTest (CPPUNIT_NS::TestFactoryRegistry::getRegistry ().makeTest ());
runner.run (controller);
CPPUNIT_NS::CompilerOutputter compileroutputter (&result, std::cerr);
compileroutputter.write ();
ofstream xmlFileOut ("output.xml");
CPPUNIT_NS::XmlOutputter xmlOut (&result, xmlFileOut);
xmlOut.write ();
return result.wasSuccessful ()? 0 : 1;
}

View file

@ -1,15 +0,0 @@
summary: cppunit basic test
description: ''
contact: Edjunior Machado <emachado@redhat.com>
component:
- cppunit
test: ./runtest.sh
framework: beakerlib
require:
- bash
- coreutils
- gcc-c++
- cppunit-devel
duration: 1h
extra-summary: /tools/cppunit/Sanity/basic-test
extra-task: /tools/cppunit/Sanity/basic-test

View file

@ -1,56 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/cppunit/Sanity/basic-test
# Description: cppunit basic test
# Author: Edjunior Machado <emachado@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="cppunit"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "cp hello.cpp $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "g++ -Wall -o hello hello.cpp -lcppunit"
rlAssertExists "hello"
rlRun "./hello > hello.log"
rlRun "cat hello.log"
rlAssertGrep 'Test::testAddition : OK' hello.log
rlRun "cat output.xml"
rlAssertGrep '<Name>Test::testAddition</Name>' output.xml
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd