This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade Module-Metadata from version 1.000026 to 1.000027
[perl5.git] / cpan / Module-Metadata / t / taint.t
1 #!/usr/bin/perl -T
2 use strict;
3 use warnings;
4
5 use Config;
6 use Test::More $Config{ccflags} =~ /-DSILENT_NO_TAINT_SUPPORT/
7     ? ( skip_all => 'No taint support' ) : ( tests => 2 );
8 use Module::Metadata;
9 use Carp 'croak';
10
11 # stolen liberally from Class-Tiny/t/lib/TestUtils.pm - thanks xdg!
12 sub exception(&) {
13     my $code = shift;
14     my $success = eval { $code->(); 1 };
15     my $err = $@;
16     return undef if $success;   # original returned ''
17     croak "Execution died, but the error was lost" unless $@;
18     return $@;
19 }
20
21 my $taint_on = ! eval { no warnings; join('',values %ENV), kill 0; 1; };
22 ok($taint_on, 'taint flag is set');
23
24 # without the fix, we get:
25 # Insecure dependency in eval while running with -T switch at lib/Module/Metadata.pm line 668, <GEN0> line 15.
26 is(
27     exception { Module::Metadata->new_from_module( "Module::Metadata" )->version },
28     undef,
29     'no exception',
30 );
31