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
/
Plugin
/
Edit File:
NoWarnings.pm
package Test2::Plugin::NoWarnings; use strict; use warnings; our $VERSION = '0.09'; # This is the version that added test2_is_testing_done. use Test2 1.302167; use Test2::API qw( context_do test2_is_testing_done ); use Test2::Event::Warning; my $echo = 0; sub import { shift; my %args = @_; $echo = $args{echo} if exists $args{echo}; return; } my $_orig_warn_handler = $SIG{__WARN__}; ## no critic (Variables::RequireLocalizedPunctuationVars) $SIG{__WARN__} = sub { unless ( test2_is_testing_done() ) { my $w = $_[0]; $w =~ s/\n+$//g; context_do { my $ctx = shift; $ctx->send_event( 'Warning', warning => "Unexpected warning: $w", ); } $_[0]; return unless $echo; } return if $_orig_warn_handler && $_orig_warn_handler eq 'IGNORE'; # The rest was copied from Test::Warnings # TODO: this doesn't handle blessed coderefs... does anyone care? goto &$_orig_warn_handler if $_orig_warn_handler and ( ( ref $_orig_warn_handler eq 'CODE' ) or ( $_orig_warn_handler ne 'DEFAULT' and $_orig_warn_handler ne 'IGNORE' and defined &$_orig_warn_handler ) ); if ( $_[0] =~ /\n$/ ) { warn $_[0]; } else { require Carp; Carp::carp( $_[0] ); } }; 1; # ABSTRACT: Fail if tests warn __END__ =pod =encoding UTF-8 =head1 NAME Test2::Plugin::NoWarnings - Fail if tests warn =head1 VERSION version 0.09 =head1 SYNOPSIS use Test2::V0; use Test2::Plugin::NoWarnings; ...; =head1 DESCRIPTION Loading this plugin causes your tests to fail if there any warnings while they run. Each warning generates a new failing test and the warning content is outputted via C<diag>. This module uses C<$SIG{__WARN__}>, so if the code you're testing sets this, then this module will stop working. =head1 ECHOING WARNINGS By default, this module suppresses the warning itself so it does not go to C<STDERR>. If you'd like to also have the warning go to C<STDERR> untouched, you can ask for this with the C<echo> import argument: use Test2::Plugin::NoWarnings echo => 1; =head1 SUPPORT Bugs may be submitted at L<https://github.com/houseabsolute/Test2-Plugin-NoWarnings/issues>. I am also usually active on IRC as 'autarch' on C<irc://irc.perl.org>. =head1 SOURCE The source code repository for Test2-Plugin-NoWarnings can be found at L<https://github.com/houseabsolute/Test2-Plugin-NoWarnings>. =head1 DONATIONS If you'd like to thank me for the work I've done on this module, please consider making a "donation" to me via PayPal. I spend a lot of free time creating free software, and would appreciate any support you'd care to offer. Please note that B<I am not suggesting that you must do this> in order for me to continue working on this particular software. I will continue to do so, inasmuch as I have in the past, for as long as it interests me. Similarly, a donation made in this way will probably not make me work on this software much more, unless I get so many donations that I can consider working on free software full time (let's all have a chuckle at that together). To donate, log into PayPal and send money to autarch@urth.org, or use the button at L<https://www.urth.org/fs-donation.html>. =head1 AUTHOR Dave Rolsky <autarch@urth.org> =head1 CONTRIBUTOR =for stopwords Michael Alan Dorman Michael Alan Dorman <mdorman@ironicdesign.com> =head1 COPYRIGHT AND LICENSE This software is Copyright (c) 2020 by Dave Rolsky. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) The full text of the license can be found in the F<LICENSE> file included with this distribution. =cut
Simpan