Package tests

This commit is contained in:
Michal Josef Špaček 2024-07-12 18:22:47 +02:00
parent a19306045d
commit 3b16b678ec
5 changed files with 59 additions and 1 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
# RHEL
--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -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 <mspacek@redhat.com> - 0.002010-7
- Package tests
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 0.002010-6
- Bump release for June 2024 mass rebuild

5
plans/sanity.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Sanity tests
discover:
how: fmf
execute:
how: tmt

12
tests/upstream-tests.fmf Normal file
View File

@ -0,0 +1,12 @@
summary: Upstream tests
contact: Michal Josef Spacek <mspacek@redhat.com>
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