Package tests
This commit is contained in:
parent
0e93949cf6
commit
94e89d3d49
@ -127,6 +127,13 @@ Recommends: gcc
|
||||
# Do not export private redefinitions
|
||||
%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(DynaLoader|ExtUtils::MakeMaker::_version\\)
|
||||
|
||||
# Filter modules bundled for tests
|
||||
%global __requires_exclude %{__requires_exclude}|^perl\\(MY)\s*$
|
||||
%global __requires_exclude %{__requires_exclude}|^perl\\(TieIn)\s*$
|
||||
%global __requires_exclude %{__requires_exclude}|^perl\\(TieOut)\s*$
|
||||
%global __requires_exclude %{__requires_exclude}|^perl\\(MakeMaker::Test.*)\s*$
|
||||
%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_libexecdir}
|
||||
|
||||
%description
|
||||
This utility is designed to write a Makefile for an extension module from a
|
||||
Makefile.PL. It is based on the Makefile.SH model provided by Andy
|
||||
@ -161,6 +168,28 @@ other modules but that do not need full-featured ExtUtils::MakeMaker. The
|
||||
issue with ExtUtils::MakeMaker is it pulls in Perl header files and that
|
||||
is an overkill for small subroutines.
|
||||
|
||||
%package tests
|
||||
Summary: Tests for %{name}
|
||||
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: perl-Test-Harness
|
||||
Requires: perl(CPAN::Meta) >= 2.143240
|
||||
Requires: perl(Encode)
|
||||
Requires: perl(File::Spec)
|
||||
Requires: perl(Parse::CPAN::Meta) >= 1.4414
|
||||
Requires: perl(Pod::Man)
|
||||
Requires: perl(version)
|
||||
%if %{with perl_ExtUtils_MakeMaker_enables_optional_test}
|
||||
# Optional tests
|
||||
Requires: perl-devel
|
||||
Requires: perl(B)
|
||||
Requires: perl(ExtUtils::CBuilder)
|
||||
Requires: perl(PerlIO)
|
||||
%endif
|
||||
|
||||
%description tests
|
||||
Tests from %{name}-%{version}. Execute them
|
||||
with "%{_libexecdir}/%{name}/test".
|
||||
|
||||
%prep
|
||||
%setup -q -n ExtUtils-MakeMaker-%{version}
|
||||
%patch0 -p1
|
||||
@ -178,15 +207,52 @@ perl -i -ne 'print $_ unless m{^lib/ExtUtils/MakeMaker/version(?:/|\.pm)}' MANIF
|
||||
rm -rf lib/ExtUtils/MakeMaker/Locale.pm
|
||||
perl -i -ne 'print $_ unless m{^lib/ExtUtils/MakeMaker/Locale\.pm}' MANIFEST
|
||||
|
||||
%if !%{with perl_ExtUtils_MakeMaker_enables_optional_test}
|
||||
# Remove optional tests
|
||||
rm t/02-xsdynamic.t t/03-xsstatic.t
|
||||
perl -i -ne 'print $_ unless m{^t/02-xsdynamic\.t}' MANIFEST
|
||||
perl -i -ne 'print $_ unless m{^t/03-xsstatic\.t}' MANIFEST
|
||||
perl -i -ne 'print $_ unless m{^t/unicode\.t}' MANIFEST
|
||||
%endif
|
||||
|
||||
# Help file to recognise the Perl scripts and normalize shebangs
|
||||
for F in `find t -name *.t`; 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
|
||||
|
||||
%build
|
||||
BUILDING_AS_PACKAGE=1 perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
|
||||
%{make_build}
|
||||
|
||||
%install
|
||||
%{make_install}
|
||||
|
||||
# Install tests
|
||||
mkdir -p %{buildroot}/%{_libexecdir}/%{name}
|
||||
cp -a t %{buildroot}/%{_libexecdir}/%{name}
|
||||
cat > %{buildroot}/%{_libexecdir}/%{name}/test << 'EOF'
|
||||
#!/bin/bash
|
||||
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}/* ./
|
||||
prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
|
||||
popd
|
||||
rm -rf "$DIR"
|
||||
EOF
|
||||
chmod +x %{buildroot}/%{_libexecdir}/%{name}/test
|
||||
|
||||
%{_fixperms} $RPM_BUILD_ROOT/*
|
||||
|
||||
%check
|
||||
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
|
||||
make test
|
||||
|
||||
%files
|
||||
@ -212,9 +278,13 @@ make test
|
||||
%{perl_vendorlib}/ExtUtils/MM/Utils.pm
|
||||
%{_mandir}/man3/ExtUtils::MM::Utils.*
|
||||
|
||||
%files tests
|
||||
%{_libexecdir}/%{name}
|
||||
|
||||
%changelog
|
||||
* Fri Feb 19 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2:7.60-1
|
||||
- 7.60 bump
|
||||
- Package tests
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.58-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
Loading…
Reference in New Issue
Block a user