commit 1b9632114e24d8b970fa32b87fb35c90c0ee70ba Author: Paul Howarth <paul@xxxxxxxxxxxx> Date: Thu May 3 16:40:08 2012 +0100 Initial import (perl-Test-Valgrind-1.13-3) The Test::Valgrind::* API lets you run Perl code through the memcheck tool of the valgrind memory debugger, to test for memory errors and leaks. The Test::Valgrind module itself is a front-end to this API. If they aren't available yet, it will first generate suppressions for the current perl interpreter and store them in the portable flavor of ~/.perl/Test-Valgrind/suppressions/$VERSION. The actual run will then take place, and tests will be passed or failed according to the result of the analysis. The complete API is much more versatile than this. By declaring an appropriate Test::Valgrind::Command class, you can run any executable (that is, not only Perl scripts) under valgrind, generate the corresponding suppressions on-the-fly and convert the analysis result to TAP output so that it can be incorporated into your project's test suite. If you're not interested in producing TAP, you can output the results in whatever format you like (for example HTML pages) by defining your own Test::Valgrind::Action class. .gitignore | 1 + perl-Test-Valgrind.spec | 147 +++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 149 insertions(+), 0 deletions(-) --- diff --git a/.gitignore b/.gitignore index e69de29..0245406 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/Test-Valgrind-[0-9.]*.tar.gz diff --git a/perl-Test-Valgrind.spec b/perl-Test-Valgrind.spec new file mode 100644 index 0000000..22b6be4 --- /dev/null +++ b/perl-Test-Valgrind.spec @@ -0,0 +1,147 @@ +Name: perl-Test-Valgrind +Summary: Generate suppressions, analyze and test any command with valgrind +Version: 1.13 +Release: 3%{?dist} +Group: Development/Libraries +License: GPL+ or Artistic +URL: http://search.cpan.org/dist/Test-Valgrind/ +Source0: http://search.cpan.org/CPAN/authors/id/V/VP/VPIT/Test-Valgrind-%{version}.tar.gz +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu) +BuildRequires: perl(base) +BuildRequires: perl(Carp) +BuildRequires: perl(Digest::MD5) +BuildRequires: perl(Env::Sanctify) +BuildRequires: perl(ExtUtils::Install) +BuildRequires: perl(ExtUtils::MakeMaker) +BuildRequires: perl(Fcntl) +BuildRequires: perl(File::HomeDir) >= 0.86 +BuildRequires: perl(File::Path) +BuildRequires: perl(File::Spec) +BuildRequires: perl(File::Temp) >= 0.14 +BuildRequires: perl(Filter::Util::Call) +BuildRequires: perl(lib) +BuildRequires: perl(List::Util) +BuildRequires: perl(POSIX) +BuildRequires: perl(Perl::Destruct::Level) +BuildRequires: perl(Pod::Coverage) >= 0.18 +BuildRequires: perl(Scalar::Util) +BuildRequires: perl(Test::Builder) +# Test::Kwalitee -> Module::CPANTS::Analyse -> List::MoreUtils -> Test::LeakTrace -> Test::Valgrind +%if 0%{!?perl_bootstrap:1} +BuildRequires: perl(Test::Kwalitee) +%endif +BuildRequires: perl(Test::More) +BuildRequires: perl(Test::Pod) >= 1.22 +BuildRequires: perl(Test::Pod::Coverage) >= 1.08 +BuildRequires: perl(Test::Portability::Files) +BuildRequires: perl(XML::Twig) +BuildRequires: perl(XSLoader) +BuildRequires: perl(version) +BuildRequires: valgrind >= 3.1.0 +Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) +Requires: perl(Carp) +Requires: perl(Digest::MD5) +Requires: perl(File::HomeDir) >= 0.86 +Requires: perl(File::Path) +Requires: perl(File::Temp) >= 0.14 +Requires: perl(Filter::Util::Call) +Requires: perl(List::Util) +Requires: perl(Perl::Destruct::Level) +Requires: perl(XML::Twig) +Requires: valgrind >= 3.1.0 + +# Don't "provide" private Perl libs +%{?perl_default_filter} + +%description +The Test::Valgrind::* API lets you run Perl code through the memcheck tool of +the valgrind memory debugger, to test for memory errors and leaks. The +Test::Valgrind module itself is a front-end to this API. If they aren't +available yet, it will first generate suppressions for the current perl +interpreter and store them in the portable flavor of +~/.perl/Test-Valgrind/suppressions/$VERSION. The actual run will then take +place, and tests will be passed or failed according to the result of the +analysis. + +The complete API is much more versatile than this. By declaring an appropriate +Test::Valgrind::Command class, you can run any executable (that is, not only +Perl scripts) under valgrind, generate the corresponding suppressions +on-the-fly and convert the analysis result to TAP output so that it can be +incorporated into your project's test suite. If you're not interested in +producing TAP, you can output the results in whatever format you like (for +example HTML pages) by defining your own Test::Valgrind::Action class. + +%prep +%setup -q -n Test-Valgrind-%{version} + +%build +perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +make pure_install DESTDIR=%{buildroot} +find %{buildroot} -type f -name .packlist -exec rm -f {} ';' +find %{buildroot} -type f -name '*.bs' -a -size 0 -exec rm -f {} ';' +%{_fixperms} %{buildroot} + +# The package is noarch; the XS code included is for testing purposes and is +# not part of the module itself +if [ "%{perl_vendorarch}" != "%{perl_vendorlib}" ]; then + mkdir -p %{buildroot}%{perl_vendorlib} + mv %{buildroot}%{perl_vendorarch}/* %{buildroot}%{perl_vendorlib}/ +fi + +# If we have ExtUtils::Install < 1.3702, INSTALL.SKIP will be ignored +# and valgrind.so will have been installed, so remove it +if perl -MExtUtils::Install -e 'exit (($ExtUtils::Install::VERSION < 1.3702) ? 0 : 1);'; then + rm %{buildroot}%{perl_vendorlib}/auto/Test/Valgrind/Valgrind.so +fi + +%check +make test + +%clean +rm -rf %{buildroot} + +%files +%doc Changes README samples/ +%{perl_vendorlib}/Test/ +%{_mandir}/man3/Test::Valgrind.3pm* +%{_mandir}/man3/Test::Valgrind::Action.3pm* +%{_mandir}/man3/Test::Valgrind::Action::Captor.3pm* +%{_mandir}/man3/Test::Valgrind::Action::Suppressions.3pm* +%{_mandir}/man3/Test::Valgrind::Action::Test.3pm* +%{_mandir}/man3/Test::Valgrind::Carp.3pm* +%{_mandir}/man3/Test::Valgrind::Command.3pm* +%{_mandir}/man3/Test::Valgrind::Command::Aggregate.3pm* +%{_mandir}/man3/Test::Valgrind::Command::Perl.3pm* +%{_mandir}/man3/Test::Valgrind::Command::PerlScript.3pm* +%{_mandir}/man3/Test::Valgrind::Component.3pm* +%{_mandir}/man3/Test::Valgrind::Parser.3pm* +%{_mandir}/man3/Test::Valgrind::Parser::Suppressions::Text.3pm* +%{_mandir}/man3/Test::Valgrind::Parser::Text.3pm* +%{_mandir}/man3/Test::Valgrind::Parser::XML.3pm* +%{_mandir}/man3/Test::Valgrind::Parser::XML::Twig.3pm* +%{_mandir}/man3/Test::Valgrind::Report.3pm* +%{_mandir}/man3/Test::Valgrind::Session.3pm* +%{_mandir}/man3/Test::Valgrind::Suppressions.3pm* +%{_mandir}/man3/Test::Valgrind::Tool.3pm* +%{_mandir}/man3/Test::Valgrind::Tool::memcheck.3pm* + +%changelog +* Thu May 3 2012 Paul Howarth <paul@xxxxxxxxxxxx> - 1.13-3 +- Incorporate suggestions from package review (#803057) + - BR: perl(Pod::Coverage) ≥ 0.18 + - BR: perl(XSLoader) + - BR: at least version 1.22 of perl(Test::Pod) + - BR: at least version 1.08 of perl(Test::Pod::Coverage) + +* Tue Mar 13 2012 Paul Howarth <paul@xxxxxxxxxxxx> - 1.13-2 +- Sanitize for Fedora submission + - Use Fedora-style dist tag + - Drop %%defattr, redundant since rpm 4.4 + +* Mon Mar 12 2012 Paul Howarth <paul@xxxxxxxxxxxx> - 1.13-1 +- Initial RPM version diff --git a/sources b/sources index e69de29..0c61805 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +55262a1d277a6225b4ede2d746da606c Test-Valgrind-1.13.tar.gz -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/perl-devel