Package tests

This commit is contained in:
Jitka Plesnikova 2021-06-29 09:53:07 +02:00
parent 15fa54b50d
commit 7feb3cfcd3
5 changed files with 57 additions and 0 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
--- !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}

View File

@ -54,14 +54,32 @@ Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
# Filter under-specified dependencies # Filter under-specified dependencies
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Text::Wrap\\)$ %global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Text::Wrap\\)$
# Filter modules bundled for tests
%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_libexecdir}
%description %description
Pod::Simple is a Perl library for parsing text in the POD (plain old Pod::Simple is a Perl library for parsing text in the POD (plain old
documentation) markup language that is typically used for writing documentation) markup language that is typically used for writing
documentation for Perl and for Perl modules. documentation for Perl and for Perl modules.
%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 %prep
%setup -q -n Pod-Simple-%{version} %setup -q -n Pod-Simple-%{version}
# Help generators to recognize Perl scripts
for F in t/*.t t/*.pl; do
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F"
chmod +x "$F"
done
%build %build
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
%{make_build} %{make_build}
@ -70,8 +88,26 @@ perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
%{make_install} %{make_install}
%{_fixperms} $RPM_BUILD_ROOT/* %{_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
set -e
# Some tests write into temporary files/directories. The easiest solution
# is to copy the tests into a writable directory and execute them from there.
DIR=$(mktemp -d)
pushd "$DIR"
cp -a %{_libexecdir}/%{name}/* ./
prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
popd
rm -rf "$DIR"
EOF
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
%check %check
unset PERL_CORE PERL_TEST_DIFF unset PERL_CORE PERL_TEST_DIFF
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
make test make test
%files %files
@ -79,9 +115,13 @@ make test
%{perl_vendorlib}/* %{perl_vendorlib}/*
%{_mandir}/man3/* %{_mandir}/man3/*
%files tests
%{_libexecdir}/%{name}
%changelog %changelog
* Tue Jun 29 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1:3.43-1 * Tue Jun 29 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1:3.43-1
- 3.43 bump - 3.43 bump
- Package tests
* Mon May 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1:3.42-478 * Mon May 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1:3.42-478
- Perl 5.34 re-rebuild of bootstrapped packages - Perl 5.34 re-rebuild of bootstrapped packages

5
plans/sanity.fmf Normal file
View File

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

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

@ -0,0 +1,4 @@
summary: Upstream tests
component: perl-Pod-Simple
require: perl-Pod-Simple-tests
test: /usr/libexec/perl-Pod-Simple/test