One Hat Cyber Team
Your IP :
172.16.0.254
Server IP :
58.26.163.33
Server :
Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Server Software :
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
PHP Version :
7.3.25
Buat File
|
Buat Folder
Eksekusi
Dir :
C:
/
xampp7
/
perl
/
vendor
/
lib
/
Test2
/
Require
/
View File Name :
Module.pm
package Test2::Require::Module; use strict; use warnings; use base 'Test2::Require'; our $VERSION = '0.000130'; use Test2::Util qw/pkg_to_file/; sub skip { my $class = shift; my ($module, $ver) = @_; return "Module '$module' is not installed" unless check_installed($module); return undef unless defined $ver; return check_version($module, $ver); } sub check_installed { my ($mod) = @_; my $file = pkg_to_file($mod); return 1 if eval { require $file; 1 }; my $error = $@; return 0 if $error =~ m/Can't locate \Q$file\E in \@INC/; # Some other error, rethrow it. die $error; } sub check_version { my ($mod, $ver) = @_; return undef if eval { $mod->VERSION($ver); 1 }; my $have = $mod->VERSION; return "Need '$mod' version $ver, have $have."; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Test2::Require::Module - Skip tests if certain packages are not installed, or insufficient versions. =head1 DESCRIPTION Sometimes you have tests that are nice to run, but depend on tools that may not be available. Instead of adding the tool as a dep, or making the test always skip, it is common to make the test run conditionally. This package helps make that possible. This module is modeled after L<Test::Requires>. The difference is that this module is based on L<Test2> directly, and does not go through L<Test::Builder>. Another difference is that the packages you check for are not imported into your namespace for you. This is intentional. =head1 SYNOPSIS # The test will be skipped unless Some::Module is installed, any version. use Test2::Require::Module 'Some::Module'; # The test will be skipped unless 'Other::Module' is installed and at # version '5.555' or greater. use Test2::Require::Module 'Other::Module' => '5.555'; # We now need to use them directly, Test2::Require::Module does not import # them for us. use Some::Module; use Other::Module; =head1 SOURCE The source code repository for Test2-Suite can be found at F<https://github.com/Test-More/Test2-Suite/>. =head1 MAINTAINERS =over 4 =item Chad Granum E<lt>exodist@cpan.orgE<gt> =back =head1 AUTHORS =over 4 =item Chad Granum E<lt>exodist@cpan.orgE<gt> =back =head1 COPYRIGHT Copyright 2018 Chad Granum E<lt>exodist@cpan.orgE<gt>. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See F<http://dev.perl.org/licenses/> =cut