Bug 803057 - Review Request: perl-Test-Valgrind - Generate suppressions, analyze and test any command with valgrind
Review Request: perl-Test-Valgrind - Generate suppressions, analyze and test ...
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Petr Pisar
Fedora Extras Quality Assurance
:
Depends On: 802377 802865
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-13 17:16 EDT by Paul Howarth
Modified: 2012-05-26 05:22 EDT (History)
3 users (show)

See Also:
Fixed In Version: perl-Test-Valgrind-1.13-3.fc18
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-05-26 05:22:15 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
ppisar: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Paul Howarth 2012-03-13 17:16:54 EDT
Spec URL:
http://subversion.city-fan.org/repos/cfo-repo/perl-Test-Valgrind/branches/fedora/perl-Test-Valgrind.spec

SRPM URL:
http://www.city-fan.org/~paul/extras/perl-Test-Valgrind/perl-Test-Valgrind-1.13-2.fc18.src.rpm

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.

Dependencies not yet in Fedora:

perl-Env-Sanctify (Bug #802377)
perl-Perl-Destruct-Level (Bug #802865)

For the EPEL-5 build, I need perl-File-HomeDir updating to at least 0.86 (Bug #803044), plus perl-Test-Kwalitee, which I can't build until perl-Sub-Exporter has been updated to at least version 0.979 (Bug #799993).
Comment 1 Petr Pisar 2012-05-03 09:17:32 EDT
Source file is original. Ok.
URL and Source0 are usable. Ok.
Summary verified from lib/Test/Valgrind.pm. Ok.
License verified from lib/Test/Valgrind.pm. Ok.
Description verified from lib/Test/Valgrind.pm. Ok.

BuildRoot tag is needed for EPEL5. Ok.
%clean section is needed for EPEL5. Ok.

Resulting package does not contain binary dependent code. noarch BuildArch is Ok.

I'm not sure removing the XS code is wise. I think it's used by Test::Valgrind::Command::Perl to gather suppression data. Also then XSLoader should be needed at run-time. 

BuildRequire perl(Test::Pod::Coverage) is not qualified because 1.08 version is provided by all releases. Ok.

TODO: Build-require `perl(Test::Pod) >= 0.18' as you requires optional Test::Pod::Coverage.
TODO: Build-require `perl(XSLoader)' because of optional test (t/20-bad.t:16).

BuildRequire perl(Test::Pod) is not qualified because 1.22 version is provided by all releases. Ok.

All tests pass. Ok.

$ rpmlint perl-Test-Valgrind.spec ../SRPMS/perl-Test-Valgrind-1.13-2.fc18.src.rpm ../RPMS/noarch/perl-Test-Valgrind-1.13-2.fc18.noarch.rpm 
perl-Test-Valgrind.src: W: spelling-error Summary(en_US) suppressions -> suppression, suppression's, suppress ions
perl-Test-Valgrind.src: W: spelling-error %description -l en_US memcheck -> checkmate
perl-Test-Valgrind.src: W: spelling-error %description -l en_US suppressions -> suppression, suppression's, suppress ions
perl-Test-Valgrind.noarch: W: spelling-error Summary(en_US) suppressions -> suppression, suppression's, suppress ions
perl-Test-Valgrind.noarch: W: spelling-error %description -l en_US memcheck -> checkmate
perl-Test-Valgrind.noarch: W: spelling-error %description -l en_US suppressions -> suppression, suppression's, suppress ions
2 packages and 1 specfiles checked; 0 errors, 6 warnings.
rpmlint is Ok.

$ rpm -q -lv -p ../RPMS/noarch/perl-Test-Valgrind-1.13-2.fc18.noarch.rpm
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/doc/perl-Test-Valgrind-1.13
-rw-r--r--    1 root    root                     5040 Aug 25  2011 /usr/share/doc/perl-Test-Valgrind-1.13/Changes
-rw-r--r--    1 root    root                     6648 Aug 25  2011 /usr/share/doc/perl-Test-Valgrind-1.13/README
drwxr-xr-x    2 root    root                        0 Aug 25  2011 /usr/share/doc/perl-Test-Valgrind-1.13/samples
-rwxr-xr-x    1 root    root                      172 Nov 29  2009 /usr/share/doc/perl-Test-Valgrind-1.13/samples/map.pl
-rw-r--r--    1 root    root                    22202 Nov 29  2009 /usr/share/doc/perl-Test-Valgrind-1.13/samples/xml-output-protocol4.txt
-rw-r--r--    1 root    root                    12146 Nov 29  2009 /usr/share/doc/perl-Test-Valgrind-1.13/samples/xml-output.txt
-rw-r--r--    1 root    root                     4716 May  3 14:53 /usr/share/man/man3/Test::Valgrind.3pm.gz
-rw-r--r--    1 root    root                     2846 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Action.3pm.gz
-rw-r--r--    1 root    root                     2590 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Action::Captor.3pm.gz
-rw-r--r--    1 root    root                     2517 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Action::Suppressions.3pm.gz
-rw-r--r--    1 root    root                     2630 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Action::Test.3pm.gz
-rw-r--r--    1 root    root                     2352 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Carp.3pm.gz
-rw-r--r--    1 root    root                     3103 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Command.3pm.gz
-rw-r--r--    1 root    root                     2401 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Command::Aggregate.3pm.gz
-rw-r--r--    1 root    root                     2837 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Command::Perl.3pm.gz
-rw-r--r--    1 root    root                     2648 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Command::PerlScript.3pm.gz
-rw-r--r--    1 root    root                     2495 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Component.3pm.gz
-rw-r--r--    1 root    root                     2607 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Parser.3pm.gz
-rw-r--r--    1 root    root                     2404 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Parser::Suppressions::Text.3pm.gz
-rw-r--r--    1 root    root                     2390 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Parser::Text.3pm.gz
-rw-r--r--    1 root    root                     2393 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Parser::XML.3pm.gz
-rw-r--r--    1 root    root                     2509 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Parser::XML::Twig.3pm.gz
-rw-r--r--    1 root    root                     2819 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Report.3pm.gz
-rw-r--r--    1 root    root                     3772 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Session.3pm.gz
-rw-r--r--    1 root    root                     2734 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Suppressions.3pm.gz
-rw-r--r--    1 root    root                     3195 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Tool.3pm.gz
-rw-r--r--    1 root    root                     2692 May  3 14:53 /usr/share/man/man3/Test::Valgrind::Tool::memcheck.3pm.gz
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/perl5/vendor_perl/Test
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/perl5/vendor_perl/Test/Valgrind
-rw-r--r--    1 root    root                     9939 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind.pm
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/perl5/vendor_perl/Test/Valgrind/Action
-rw-r--r--    1 root    root                     3366 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Action.pm
-rw-r--r--    1 root    root                     3029 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Action/Captor.pm
-rw-r--r--    1 root    root                     3933 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Action/Suppressions.pm
-rw-r--r--    1 root    root                     4432 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Action/Test.pm
-rw-r--r--    1 root    root                     1404 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Carp.pm
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/perl5/vendor_perl/Test/Valgrind/Command
-rw-r--r--    1 root    root                     3568 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Command.pm
-rw-r--r--    1 root    root                     2107 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Command/Aggregate.pm
-rw-r--r--    1 root    root                     5537 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Command/Perl.pm
-rw-r--r--    1 root    root                     2869 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Command/PerlScript.pm
-rw-r--r--    1 root    root                     2289 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Component.pm
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/perl5/vendor_perl/Test/Valgrind/Parser
-rw-r--r--    1 root    root                     2108 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Parser.pm
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/perl5/vendor_perl/Test/Valgrind/Parser/Suppressions
-rw-r--r--    1 root    root                     3828 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Parser/Suppressions/Text.pm
-rw-r--r--    1 root    root                     1542 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Parser/Text.pm
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/perl5/vendor_perl/Test/Valgrind/Parser/XML
-rw-r--r--    1 root    root                     1616 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Parser/XML.pm
-rw-r--r--    1 root    root                     4958 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Parser/XML/Twig.pm
-rw-r--r--    1 root    root                     3118 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Report.pm
-rw-r--r--    1 root    root                    11692 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Session.pm
-rw-r--r--    1 root    root                     4246 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Suppressions.pm
drwxr-xr-x    2 root    root                        0 May  3 14:53 /usr/share/perl5/vendor_perl/Test/Valgrind/Tool
-rw-r--r--    1 root    root                     3959 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Tool.pm
-rw-r--r--    1 root    root                     4905 Aug 25  2011 /usr/share/perl5/vendor_perl/Test/Valgrind/Tool/memcheck.pm
File permissions and layout are Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Test-Valgrind-1.13-2.fc18.noarch.rpm |sort |uniq -c
      1 perl(base)
      1 perl(Carp)
      1 perl(Digest::MD5)
      1 perl(Env::Sanctify)
      1 perl(Fcntl)
      1 perl(File::HomeDir) >= 0.86
      1 perl(File::Path)
      1 perl(File::Spec)
      1 perl(File::Temp) >= 0.14
      1 perl(Filter::Util::Call)
      1 perl(List::Util)
      1 perl(:MODULE_COMPAT_5.14.2)
      1 perl(Perl::Destruct::Level)
      1 perl(POSIX)
      1 perl(Scalar::Util)
      1 perl(strict)
      1 perl(Test::Builder)
      1 perl(Test::Valgrind::Suppressions)
      1 perl(version)
      1 perl(warnings)
      1 perl(XML::Twig)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsXz) <= 5.2-1
      1 valgrind >= 3.1.0
Binary requires are Ok if the XS code is not distributed.

$ rpm -q --provides  -p ../RPMS/noarch/perl-Test-Valgrind-1.13-2.fc18.noarch.rpm |sort |uniq -c
      1 perl(Test::Valgrind) = 1.13
      1 perl-Test-Valgrind = 1.13-2.fc18
      1 perl(Test::Valgrind::Action) = 1.13
      1 perl(Test::Valgrind::Action::Captor) = 1.13
      1 perl(Test::Valgrind::Action::Suppressions) = 1.13
      1 perl(Test::Valgrind::Action::Test) = 1.13
      1 perl(Test::Valgrind::Carp) = 1.13
      1 perl(Test::Valgrind::Command) = 1.13
      1 perl(Test::Valgrind::Command::Aggregate) = 1.13
      1 perl(Test::Valgrind::Command::Perl) = 1.13
      1 perl(Test::Valgrind::Command::PerlScript) = 1.13
      1 perl(Test::Valgrind::Component) = 1.13
      1 perl(Test::Valgrind::Parser) = 1.13
      1 perl(Test::Valgrind::Parser::Suppressions::Text) = 1.13
      1 perl(Test::Valgrind::Parser::Text) = 1.13
      1 perl(Test::Valgrind::Parser::XML) = 1.13
      1 perl(Test::Valgrind::Parser::XML::Twig) = 1.13
      1 perl(Test::Valgrind::Parser::XML::Twig::Elt) = 1.13
      1 perl(Test::Valgrind::Report) = 1.13
      1 perl(Test::Valgrind::Report::Suppressions)
      1 perl(Test::Valgrind::Session) = 1.13
      1 perl(Test::Valgrind::Suppressions) = 1.13
      1 perl(Test::Valgrind::Tool) = 1.13
      1 perl(Test::Valgrind::Tool::memcheck) = 1.13
      1 perl(Test::Valgrind::Tool::memcheck::Report) = 1.13
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/noarch/perl-Test-Valgrind-1.13-2.fc18.noarch.rpm 
Binary dependencies resolvable. Ok.

Package builds in F18 (http://koji.fedoraproject.org/koji/taskinfo?taskID=4049263). Ok.

Package is in line with Fedora and Perl packaging guidelines.


Please consider fixing `TODO' items before building this package.

Resolution: Package APPROVED.
Comment 2 Paul Howarth 2012-05-03 11:23:26 EDT
The XS code is there to provide some sample code that leaky in parts and not leaky in other parts for testing purposes. Upstream does not install it intentionally, but on old distros like EL-5 with ExtUtils::Install < 1.3702, there's no support for INSTALL.SKIP and so the Valgrind.so test file gets installed; my removal of this file is just doing the same thing that happens normally on more up to date distributions.

Regarding BR: perl(Pod::Coverage) and perl(XSLoader), and minimum version requirements for the pod-testing modules, I'll add them in before importing into git.


New Package SCM Request
=======================
Package Name: perl-Test-Valgrind
Short Description: Generate suppressions, analyze and test any command with valgrind
Owners: pghmcfc
Branches: f15 f16 f17 el5 el6
InitialCC: perl-sig
Comment 3 Gwyn Ciesla 2012-05-03 11:29:23 EDT
Git done (by process-git-requests).
Comment 4 Fedora Update System 2012-05-03 12:48:05 EDT
perl-Test-Valgrind-1.13-3.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/perl-Test-Valgrind-1.13-3.el6
Comment 5 Fedora Update System 2012-05-03 12:48:15 EDT
perl-Test-Valgrind-1.13-3.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/perl-Test-Valgrind-1.13-3.fc16
Comment 6 Fedora Update System 2012-05-03 12:48:24 EDT
perl-Test-Valgrind-1.13-3.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/perl-Test-Valgrind-1.13-3.el5
Comment 7 Fedora Update System 2012-05-03 12:48:55 EDT
perl-Test-Valgrind-1.13-3.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/perl-Test-Valgrind-1.13-3.fc15
Comment 8 Fedora Update System 2012-05-03 12:49:09 EDT
perl-Test-Valgrind-1.13-3.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/perl-Test-Valgrind-1.13-3.fc17
Comment 9 Fedora Update System 2012-05-12 21:54:49 EDT
perl-Test-Valgrind-1.13-3.fc16 has been pushed to the Fedora 16 stable repository.
Comment 10 Fedora Update System 2012-05-12 21:55:28 EDT
perl-Test-Valgrind-1.13-3.fc15 has been pushed to the Fedora 15 stable repository.
Comment 11 Fedora Update System 2012-05-18 17:37:38 EDT
perl-Test-Valgrind-1.13-3.el6 has been pushed to the Fedora EPEL 6 stable repository.
Comment 12 Fedora Update System 2012-05-18 17:38:05 EDT
perl-Test-Valgrind-1.13-3.el5 has been pushed to the Fedora EPEL 5 stable repository.
Comment 13 Fedora Update System 2012-05-26 03:17:04 EDT
perl-Test-Valgrind-1.13-3.fc17 has been pushed to the Fedora 17 stable repository.

Note You need to log in before you can comment on or make changes to this bug.