⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.177
Server IP:
50.6.168.112
Server:
Linux server-617809.webnetzimbabwe.com 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64
Server Software:
Apache
PHP Version:
8.4.10
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
.cpan
/
build
/
Test-Requires-0.11-0
/
lib
/
Test
/
View File Name :
Requires.pm
package Test::Requires; use strict; use warnings; our $VERSION = '0.11'; use base 'Test::Builder::Module'; use 5.006; sub import { my $class = shift; my $caller = caller(0); # export methods { no strict 'refs'; *{"$caller\::test_requires"} = \&test_requires; } # test arguments if (@_ == 1 && ref $_[0] && ref $_[0] eq 'HASH') { while (my ($mod, $ver) = each %{$_[0]}) { test_requires($mod, $ver, $caller); } } else { for my $mod (@_) { test_requires($mod, undef, $caller); } } } sub test_requires { my ( $mod, $ver, $caller ) = @_; return if $mod eq __PACKAGE__; if (@_ != 3) { $caller = caller(0); } $ver ||= ''; eval qq{package $caller; use $mod $ver}; ## no critic. if (my $e = $@) { my $skip_all = sub { my $builder = __PACKAGE__->builder; if (not defined $builder->has_plan) { $builder->skip_all(@_); } elsif ($builder->has_plan eq 'no_plan') { $builder->skip(@_); if ( $builder->can('parent') && $builder->parent ) { die bless {} => 'Test::Builder::Exception'; } exit 0; } else { for (1..$builder->has_plan) { $builder->skip(@_); } if ( $builder->can('parent') && $builder->parent ) { die bless {} => 'Test::Builder::Exception'; } exit 0; } }; my $msg = "$e"; if ( $e =~ /^Can't locate/ ) { $msg = "Test requires module '$mod' but it's not found"; } if ($ENV{RELEASE_TESTING}) { __PACKAGE__->builder->BAIL_OUT($msg); } else { $skip_all->($msg); } } } 1; __END__ =head1 NAME Test::Requires - Checks to see if the module can be loaded =head1 SYNOPSIS # in your Makefile.PL use inc::Module::Install; test_requires 'Test::Requires'; # in your test use Test::More tests => 10; use Test::Requires { 'HTTP::MobileAttribute' => 0.01, # skip all if HTTP::MobileAttribute doesn't installed }; isa_ok HTTP::MobileAttribute->new, 'HTTP::MobileAttribute::NonMobile'; # or use Test::More tests => 10; use Test::Requires qw( HTTP::MobileAttribute ); isa_ok HTTP::MobileAttribute->new, 'HTTP::MobileAttribute::NonMobile'; # or use Test::More tests => 10; use Test::Requires; test_requires 'Some::Optional::Test::Required::Modules'; isa_ok HTTP::MobileAttribute->new, 'HTTP::MobileAttribute::NonMobile'; =head1 DESCRIPTION Test::Requires checks to see if the module can be loaded. If this fails rather than failing tests this B
. Test::Requires can also be used to require a minimum version of Perl: use Test::Requires "5.010"; # quoting is necessary!! # or use Test::Requires "v5.10"; =head1 AUTHOR Tokuhiro Matsuno E
tokuhirom @*(#RJKLFHFSDLJF gmail.comE
=head1 THANKS TO kazuho++ # some tricky stuff miyagawa++ # original code from t/TestPlagger.pm tomyhero++ # reported issue related older test::builder tobyink++ # documented that Test::Requires "5.010" works =head1 ENVIRONMENT If the C<< RELEASE_TESTING >> environment variable is true, then instead of skipping tests, Test::Requires bails out. =head1 SEE ALSO L
=head1 LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut