Package tests

This commit is contained in:
Jitka Plesnikova 2021-03-01 16:15:35 +01:00
parent 7e3010bec3
commit 4b0f0c6d85
5 changed files with 89 additions and 2 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

@ -14,7 +14,7 @@
Name: perl-IO-Compress
Version: 2.102
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Read and write compressed data
License: GPL+ or Artistic
URL: https://metacpan.org/release/IO-Compress
@ -54,6 +54,9 @@ BuildRequires: perl(warnings)
BuildRequires: perl(File::Path)
BuildRequires: perl(lib)
BuildRequires: perl(threads::shared)
%if !%{defined perl_bootstrap}
BuildRequires: perl(Test::More)
%endif
%if %{with perl_IO_Compress_enables_optional_test}
# Optional Tests
BuildRequires: perl(bytes)
@ -63,7 +66,6 @@ BuildRequires: perl(overload)
# Dual-lived module needs building early in the boot process
%if !%{defined perl_bootstrap}
BuildRequires: perl(Test::NoWarnings)
BuildRequires: perl(Test::Pod) >= 1.00
%endif
%endif
# Runtime
@ -80,6 +82,16 @@ Provides: perl-IO-Compress-Bzip2 = %{version}-%{release}
Obsoletes: perl-IO-Compress-Zlib < %{version}-%{release}
Provides: perl-IO-Compress-Zlib = %{version}-%{release}
# Filter modules bundled for tests
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(CompTestUtils\\)
%global __requires_exclude %{__requires_exclude}|^perl\\(.*\.pl)\s*$
%if %{defined perl_bootstrap}
%global __requires_exclude %{__requires_exclude}|^perl\\(Test::Builder)\s*$
%global __requires_exclude %{__requires_exclude}|^perl\\(Test::More)\s*$
%global __requires_exclude %{__requires_exclude}|^perl\\(Test::Simple)\s*$
%endif
%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_libexecdir}
%description
This distribution provides a Perl interface to allow reading and writing of
compressed data created with the zlib and bzip2 libraries.
@ -94,6 +106,15 @@ included with the IO-Compress distribution:
* IO-Compress-Bzip2
* IO-Compress-Base
%package tests
Summary: Tests for %{name}
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl-Test-Harness
%description tests
Tests from %{name}-%{version}. Execute them
with "%{_libexecdir}/%{name}/test".
%prep
%setup -q -n IO-Compress-%{version}
@ -101,19 +122,62 @@ included with the IO-Compress distribution:
chmod -c -x lib/IO/Uncompress/{Adapter/Identity,RawInflate}.pm
find examples -type f -exec chmod -c -x {} \;
%if ! %{defined perl_bootstrap}
# Remove bundled Test::* modules
rm -rf t/Test
perl -i -ne 'print $_ unless m{^t/Test/}' MANIFEST
%endif
# Fix shellbangs in examples
perl -MConfig -pi -e 's|^#!/usr/local/bin/perl\b|$Config{startperl}|' examples/io/anycat \
examples/io/bzip2/* examples/io/gzip/* examples/compress-zlib/*
# Help file to recognise the Perl scripts and normalize shebangs
for F in `find t -name *.t` `find t -name *.pl`; do
if head -1 "$F" | grep -q -e '^#!.*perl' ; then
perl -MConfig -pi -e 's|^#!.*perl\b|$Config{startperl}|' "$F"
else
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1' "$F"
fi
chmod +x "$F"
done
# Remove release tests
rm t/999pod.t t/999meta-*.t
perl -i -ne 'print $_ unless m{^t/999pod\.t}' MANIFEST
perl -i -ne 'print $_ unless m{^t/999meta-.*\.t}' MANIFEST
%build
perl Makefile.PL NO_PACKLIST=1 NO_PERLLOCAL=1
%{make_build}
%install
%{make_install} INSTALLDIRS=perl
# Install tests
mkdir -p %{buildroot}/%{_libexecdir}/%{name}
cp -a examples t %{buildroot}/%{_libexecdir}/%{name}
perl -i -pe "s{\"./bin/\"}{\"%{_bindir}\"}" %{buildroot}/%{_libexecdir}/%{name}/t/011-streamzip.t
cat > %{buildroot}/%{_libexecdir}/%{name}/test << 'EOF'
#!/bin/sh
set -e
# Lots of 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}/* ./
unset PERL_CORE
prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
popd
rm -rf "$DIR"
EOF
chmod +x %{buildroot}/%{_libexecdir}/%{name}/test
%{_fixperms} -c %{buildroot}
%check
unset PERL_CORE
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
# Build using "--without long_tests" to avoid very long tests
# (full suite can take nearly an hour on an i7 920)
make test COMPRESS_ZLIB_RUN_%{?with_long_tests:ALL}%{!?with_long_tests:MOST}=1
@ -146,7 +210,13 @@ make test COMPRESS_ZLIB_RUN_%{?with_long_tests:ALL}%{!?with_long_tests:MOST}=1
%{_mandir}/man3/IO::Compress::*.3*
%{_mandir}/man3/IO::Uncompress::*.3*
%files tests
%{_libexecdir}/%{name}
%changelog
* Mon Mar 01 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.102-2
- Package tests
* Sun Feb 28 2021 Paul Howarth <paul@city-fan.org> - 2.102-1
- 2.102 bump

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-IO-Compress
require: perl-IO-Compress-tests
test: /usr/libexec/perl-IO-Compress/test