File perl-Test-Valgrind.spec of Package perl-Test-Valgrind

#
# spec file for package perl-Test-Valgrind
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           perl-Test-Valgrind
Version:        1.19
Release:        0
%define cpan_name Test-Valgrind
Summary:        Generate suppressions, analyse and test any command with valgrind
License:        Artistic-1.0 or GPL-1.0+
Group:          Development/Libraries/Perl
Url:            http://search.cpan.org/dist/Test-Valgrind/
Source0:        http://www.cpan.org/authors/id/V/VP/VPIT/%{cpan_name}-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  perl
BuildRequires:  perl-macros
BuildRequires:  valgrind
BuildRequires:  perl(Env::Sanctify)
BuildRequires:  perl(File::HomeDir) >= 0.86
BuildRequires:  perl(File::Temp) >= 0.19
BuildRequires:  perl(Perl::Destruct::Level)
BuildRequires:  perl(XML::Twig)
Requires:       perl(Env::Sanctify)
Requires:       perl(File::HomeDir) >= 0.86
Requires:       perl(File::Temp) >= 0.19
Requires:       perl(Perl::Destruct::Level)
Requires:       perl(XML::Twig)
%{perl_requires}

%description
This module is a front-end to the 'Test::Valgrind::*' API that lets you run
Perl code through the 'memcheck' tool of the 'valgrind' memory debugger, to
test for memory errors and leaks. If they aren't available yet, it will
first generate suppressions for the current 'perl' interpreter and store
them in the portable flavour 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 testsuite. 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.

Due to the nature of perl's memory allocator, this module can't track leaks
of Perl objects. This includes non-mortalized scalars and memory cycles.
However, it can track leaks of chunks of memory allocated in XS extensions
with 'Newx' and friends or 'malloc'. As such, it's complementary to the
other very good leak detectors listed in the SEE ALSO section.

%prep
%setup -q -n %{cpan_name}-%{version}

%build
%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
%{__make} %{?_smp_mflags}

%check
%{__make} test

%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist

%files -f %{name}.files
%defattr(-,root,root,755)
%doc Changes README samples

%changelog
openSUSE Build Service is sponsored by