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/gating.yaml b/gating.yaml new file mode 100644 index 0000000..1608530 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,7 @@ +# RHEL +--- !Policy +product_versions: + - rhel-* +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/perl-Test-Needs.spec b/perl-Test-Needs.spec index f268500..5e04777 100644 --- a/perl-Test-Needs.spec +++ b/perl-Test-Needs.spec @@ -1,6 +1,6 @@ Name: perl-Test-Needs Version: 0.002010 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Skip tests when modules not available License: GPL-1.0-or-later OR Artistic-1.0-Perl @@ -11,6 +11,7 @@ BuildArch: noarch BuildRequires: make BuildRequires: perl-interpreter BuildRequires: perl-generators +BuildRequires: perl(Config) BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76 BuildRequires: perl(IPC::Open3) BuildRequires: perl(Test::Builder) @@ -25,14 +26,32 @@ BuildRequires: perl(warnings) %{?perl_default_filter} +# Remove private test modules +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(TestAPI\\)$ +%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(ModuleWithVersion|TestAPI|TestScript\\)$ + %description Skip test scripts if modules are not available. The requested modules will be loaded, and optionally have their versions checked. If the module is missing, the test script will be skipped. Modules that are found but fail to compile will exit with an error rather than skip. +%package tests +Summary: Tests for %{name} +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: perl-Test-Harness + +%description tests +Tests from %{name}. Execute them +with "%{_libexecdir}/%{name}/test". + %prep %setup -q -n Test-Needs-%{version} +# Help generators to recognize Perl scripts +for F in t/*.t; do + perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F" + chmod +x "$F" +done %build /usr/bin/perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 @@ -41,6 +60,14 @@ to compile will exit with an error rather than skip. %install %{make_install} %{_fixperms} $RPM_BUILD_ROOT/* +# Install tests +mkdir -p %{buildroot}%{_libexecdir}/%{name} +cp -a t %{buildroot}%{_libexecdir}/%{name} +cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF' +#!/bin/sh +cd %{_libexecdir}/%{name} && exec prove -I . -j "$(getconf _NPROCESSORS_ONLN)" +EOF +chmod +x %{buildroot}%{_libexecdir}/%{name}/test %check %{make_build} test @@ -50,7 +77,13 @@ to compile will exit with an error rather than skip. %{perl_vendorlib}/Test* %{_mandir}/man3/Test* +%files tests +%{_libexecdir}/%{name} + %changelog +* Fri Jul 12 2024 Michal Josef Špaček - 0.002010-7 +- Package tests + * Mon Jun 24 2024 Troy Dawson - 0.002010-6 - Bump release for June 2024 mass rebuild diff --git a/plans/sanity.fmf b/plans/sanity.fmf new file mode 100644 index 0000000..a72ded4 --- /dev/null +++ b/plans/sanity.fmf @@ -0,0 +1,5 @@ +summary: Sanity tests +discover: + how: fmf +execute: + how: tmt diff --git a/tests/upstream-tests.fmf b/tests/upstream-tests.fmf new file mode 100644 index 0000000..f0290ca --- /dev/null +++ b/tests/upstream-tests.fmf @@ -0,0 +1,12 @@ +summary: Upstream tests +contact: Michal Josef Spacek +component: perl-Test-Needs +require: perl-Test-Needs-tests +test: /usr/libexec/perl-Test-Needs/test +enabled: true +tag: + - rhel-buildroot +adjust: + - enabled: false + when: distro < rhel-10 or distro < centos-stream-10 + continue: false