diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/changelog b/changelog new file mode 100644 index 0000000..56b16be --- /dev/null +++ b/changelog @@ -0,0 +1,146 @@ +* Mon Nov 21 2022 David Tardon - 1.15.1-8 +- Convert license to SPDX + +* Wed Jul 20 2022 Fedora Release Engineering - 1.15.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 1.15.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 1.15.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1.15.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 1.15.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Dec 25 2019 David Tardon - 1.15.1-2 +- try again + +* Wed Dec 25 2019 David Tardon - 1.15.1-1 +- new upstream release + +* Sat Dec 21 2019 David Tardon - 1.15.0-1 +- new upstream release + +* Wed Jul 24 2019 Fedora Release Engineering - 1.14.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 1.14.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 1.14.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jun 28 2018 Rex Dieter - 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 - 1.14.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 1.14.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.14.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue May 02 2017 David Tardon - 1.14.0-1 +- new upstream release + +* Fri Feb 10 2017 Fedora Release Engineering - 1.13.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Feb 13 2016 David Tardon - 1.13.2-2 +- drop obsolete cppunit-config + +* Sat Feb 13 2016 David Tardon - 1.13.2-1 +- switch to new upstream + +* Wed Feb 03 2016 Fedora Release Engineering - 1.12.1-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.12.1-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Apr 11 2015 David Tardon - 1.12.1-15 +- rebuild for yet another C++ ABI break + +* Fri Feb 20 2015 David Tardon - 1.12.1-14 +- rebuild for C++ stdlib ABI change in gcc5 + +* Sat Aug 16 2014 Fedora Release Engineering - 1.12.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 1.12.1-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 20 2014 David Tardon - 1.12.1-11 +- rhbz#925193 add support for aarch64 + +* Sat Aug 03 2013 Fedora Release Engineering - 1.12.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Feb 13 2013 Fedora Release Engineering - 1.12.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jul 18 2012 Fedora Release Engineering - 1.12.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jan 12 2012 Fedora Release Engineering - 1.12.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Oct 05 2011 Caolán McNamara - 1.12.1-6 +- add sf#2912630 fix for unused argument warnings + +* Tue Jun 28 2011 Steven M. Parrish - 1.12.1-5 +- Fix for bug 452340 + +* Tue Feb 08 2011 Fedora Release Engineering - 1.12.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jul 24 2009 Fedora Release Engineering - 1.12.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Feb 24 2009 Fedora Release Engineering - 1.12.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Sep 18 2008 Patrice Dumas 1.12.1-1 +- Update to 1.12.1 + +* Tue Feb 19 2008 Fedora Release Engineering - 1.12.0-5 +- Autorebuild for GCC 4.3 + +* Mon Dec 17 2007 Patrice Dumas 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 1.12.0-3 +- add rightly files to -devel (#224106) +- add necessary requires for -devel (#224106) +- ship examples + +* Sun Sep 10 2006 Patrice Dumas 1.12.0-2 +- rebuild for FC6 + +* Wed Jul 5 2006 Patrice Dumas 1.12.0-1 +- update to 1.12 + +* Sun May 21 2006 Patrice Dumas 1.11.6-1 +- update to 1.11.6 + +* Wed Dec 21 2005 Patrice Dumas 1.11.4-1 +- update + +* Mon Aug 15 2005 Tom "spot" Callaway 1.11.0-2 +- various cleanups + +* Mon Jul 4 2005 Patrice Dumas 1.11.0-1 +- update using the fedora template + +* Sat Apr 14 2001 Bastiaan Bakker +- Initial release diff --git a/cppunit.spec b/cppunit.spec index db48d00..e45bbca 100644 --- a/cppunit.spec +++ b/cppunit.spec @@ -2,17 +2,22 @@ Name: cppunit Version: 1.15.1 -Release: 4%{?dist} +Release: %autorelease Summary: C++ unit testing framework # no license in files -License: LGPLv2+ +License: LGPL-2.1-or-later Url: https://www.freedesktop.org/wiki/Software/cppunit/ -Source: http://dev-www.libreoffice.org/src/%{name}-%{version}.tar.gz +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 BuildRequires: doxygen BuildRequires: gcc-c++ BuildRequires: graphviz +BuildRequires: make %description CppUnit is the C++ port of the famous JUnit framework for unit testing. @@ -38,7 +43,7 @@ the popular doxygen documentation generation tool. %autosetup -p1 %build -%configure --enable-doxygen --disable-static --disable-silent-rules +%configure --enable-doxygen --disable-static --disable-silent-rules --disable-werror 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' \ @@ -83,137 +88,4 @@ mv __dist-examples __dist-examples-dir/examples %doc doc/html %changelog -* Mon Jul 27 2020 Fedora Release Engineering - 1.15.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jan 28 2020 Fedora Release Engineering - 1.15.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Dec 25 2019 David Tardon - 1.15.1-2 -- try again - -* Wed Dec 25 2019 David Tardon - 1.15.1-1 -- new upstream release - -* Sat Dec 21 2019 David Tardon - 1.15.0-1 -- new upstream release - -* Wed Jul 24 2019 Fedora Release Engineering - 1.14.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 1.14.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Jul 12 2018 Fedora Release Engineering - 1.14.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Jun 28 2018 Rex Dieter - 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 - 1.14.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Aug 02 2017 Fedora Release Engineering - 1.14.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.14.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Tue May 02 2017 David Tardon - 1.14.0-1 -- new upstream release - -* Fri Feb 10 2017 Fedora Release Engineering - 1.13.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Sat Feb 13 2016 David Tardon - 1.13.2-2 -- drop obsolete cppunit-config - -* Sat Feb 13 2016 David Tardon - 1.13.2-1 -- switch to new upstream - -* Wed Feb 03 2016 Fedora Release Engineering - 1.12.1-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jun 17 2015 Fedora Release Engineering - 1.12.1-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat Apr 11 2015 David Tardon - 1.12.1-15 -- rebuild for yet another C++ ABI break - -* Fri Feb 20 2015 David Tardon - 1.12.1-14 -- rebuild for C++ stdlib ABI change in gcc5 - -* Sat Aug 16 2014 Fedora Release Engineering - 1.12.1-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 1.12.1-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Tue May 20 2014 David Tardon - 1.12.1-11 -- rhbz#925193 add support for aarch64 - -* Sat Aug 03 2013 Fedora Release Engineering - 1.12.1-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Feb 13 2013 Fedora Release Engineering - 1.12.1-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Wed Jul 18 2012 Fedora Release Engineering - 1.12.1-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Thu Jan 12 2012 Fedora Release Engineering - 1.12.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Oct 05 2011 Caolán McNamara - 1.12.1-6 -- add sf#2912630 fix for unused argument warnings - -* Tue Jun 28 2011 Steven M. Parrish - 1.12.1-5 -- Fix for bug 452340 - -* Tue Feb 08 2011 Fedora Release Engineering - 1.12.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Fri Jul 24 2009 Fedora Release Engineering - 1.12.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Tue Feb 24 2009 Fedora Release Engineering - 1.12.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Thu Sep 18 2008 Patrice Dumas 1.12.1-1 -- Update to 1.12.1 - -* Tue Feb 19 2008 Fedora Release Engineering - 1.12.0-5 -- Autorebuild for GCC 4.3 - -* Mon Dec 17 2007 Patrice Dumas 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 1.12.0-3 -- add rightly files to -devel (#224106) -- add necessary requires for -devel (#224106) -- ship examples - -* Sun Sep 10 2006 Patrice Dumas 1.12.0-2 -- rebuild for FC6 - -* Wed Jul 5 2006 Patrice Dumas 1.12.0-1 -- update to 1.12 - -* Sun May 21 2006 Patrice Dumas 1.11.6-1 -- update to 1.11.6 - -* Wed Dec 21 2005 Patrice Dumas 1.11.4-1 -- update - -* Mon Aug 15 2005 Tom "spot" Callaway 1.11.0-2 -- various cleanups - -* Mon Jul 4 2005 Patrice Dumas 1.11.0-1 -- update using the fedora template - -* Sat Apr 14 2001 Bastiaan Bakker -- Initial release +%autochangelog diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..ce3cdc1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !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} diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..3fd3ab7 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,5 @@ +summary: CI Gating Plan +discover: + how: fmf +execute: + how: tmt diff --git a/run-tests-in-deterministic-order.patch b/run-tests-in-deterministic-order.patch new file mode 100644 index 0000000..2942e42 --- /dev/null +++ b/run-tests-in-deterministic-order.patch @@ -0,0 +1,43 @@ +From 64eaa35c2de99581e522608e841defffb4b2923b Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Thu, 21 Oct 2021 11:14:34 +0200 +Subject: [PATCH] Run tests in deterministic order + +LibreOffice already benefits from this (see + +"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 +Reviewed-by: Stephan Bergmann +--- + +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 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 ); + } + } + diff --git a/tests/Sanity/basic-test/hello.cpp b/tests/Sanity/basic-test/hello.cpp new file mode 100644 index 0000000..51fdecd --- /dev/null +++ b/tests/Sanity/basic-test/hello.cpp @@ -0,0 +1,92 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +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; +} diff --git a/tests/Sanity/basic-test/main.fmf b/tests/Sanity/basic-test/main.fmf new file mode 100644 index 0000000..ed785d1 --- /dev/null +++ b/tests/Sanity/basic-test/main.fmf @@ -0,0 +1,15 @@ +summary: cppunit basic test +description: '' +contact: Edjunior Machado +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 diff --git a/tests/Sanity/basic-test/runtest.sh b/tests/Sanity/basic-test/runtest.sh new file mode 100755 index 0000000..4d9e0aa --- /dev/null +++ b/tests/Sanity/basic-test/runtest.sh @@ -0,0 +1,56 @@ +#!/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 +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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 'Test::testAddition' output.xml + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd