diff --git a/Makefile b/Makefile index b84e182688e..790a883932c 100644 --- a/Makefile +++ b/Makefile @@ -2767,6 +2767,9 @@ ifdef GIT_INTEROP_MAKE_OPTS endif ifdef GIT_TEST_INDEX_VERSION @echo GIT_TEST_INDEX_VERSION=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_INDEX_VERSION)))'\' >>$@+ +endif +ifdef GIT_TEST_PERL_FATAL_WARNINGS + @echo GIT_TEST_PERL_FATAL_WARNINGS=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_PERL_FATAL_WARNINGS)))'\' >>$@+ endif @if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi diff --git a/config.mak.dev b/config.mak.dev index 89fefacd944..3126a5364d0 100644 --- a/config.mak.dev +++ b/config.mak.dev @@ -46,3 +46,5 @@ ifeq ($(filter gcc5,$(COMPILER_FEATURES)),) DEVELOPER_CFLAGS += -Wno-uninitialized endif endif + +GIT_TEST_PERL_FATAL_WARNINGS = YesPlease diff --git a/git-svn.perl b/git-svn.perl index 58f5a7ac8f8..70cb5e2a83b 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -2,7 +2,7 @@ # Copyright (C) 2006, Eric Wong # License: GPL v2 or later use 5.008; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use strict; use vars qw/ $AUTHOR $VERSION $oid $oid_short $oid_length diff --git a/perl/FromCPAN/Error.pm b/perl/FromCPAN/Error.pm index 8b95e2d73d0..d82b71325c6 100644 --- a/perl/FromCPAN/Error.pm +++ b/perl/FromCPAN/Error.pm @@ -12,7 +12,7 @@ package Error; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use vars qw($VERSION); use 5.004; diff --git a/perl/Git.pm b/perl/Git.pm index 10df990959e..02eacef0c2a 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -9,7 +9,7 @@ package Git; use 5.008; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use File::Temp (); use File::Spec (); diff --git a/perl/Git/I18N.pm b/perl/Git/I18N.pm index bfb4fb67a13..2037f387c89 100644 --- a/perl/Git/I18N.pm +++ b/perl/Git/I18N.pm @@ -1,7 +1,7 @@ package Git::I18N; use 5.008; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); BEGIN { require Exporter; if ($] < 5.008003) { diff --git a/perl/Git/IndexInfo.pm b/perl/Git/IndexInfo.pm index 2a7b4908f3e..9ee054f854e 100644 --- a/perl/Git/IndexInfo.pm +++ b/perl/Git/IndexInfo.pm @@ -1,6 +1,6 @@ package Git::IndexInfo; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use Git qw/command_input_pipe command_close_pipe/; sub new { diff --git a/perl/Git/LoadCPAN.pm b/perl/Git/LoadCPAN.pm index e5585e75e80..0c360bc7998 100644 --- a/perl/Git/LoadCPAN.pm +++ b/perl/Git/LoadCPAN.pm @@ -1,7 +1,7 @@ package Git::LoadCPAN; use 5.008; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); =head1 NAME diff --git a/perl/Git/LoadCPAN/Error.pm b/perl/Git/LoadCPAN/Error.pm index c6d2c45d808..5d84c202884 100644 --- a/perl/Git/LoadCPAN/Error.pm +++ b/perl/Git/LoadCPAN/Error.pm @@ -1,7 +1,7 @@ package Git::LoadCPAN::Error; use 5.008; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use Git::LoadCPAN ( module => 'Error', import => 1, diff --git a/perl/Git/LoadCPAN/Mail/Address.pm b/perl/Git/LoadCPAN/Mail/Address.pm index f70a4f064c3..340e88a7a56 100644 --- a/perl/Git/LoadCPAN/Mail/Address.pm +++ b/perl/Git/LoadCPAN/Mail/Address.pm @@ -1,7 +1,7 @@ package Git::LoadCPAN::Mail::Address; use 5.008; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use Git::LoadCPAN ( module => 'Mail::Address', import => 0, diff --git a/perl/Git/Packet.pm b/perl/Git/Packet.pm index b75738bed4b..d144f5168f3 100644 --- a/perl/Git/Packet.pm +++ b/perl/Git/Packet.pm @@ -1,7 +1,7 @@ package Git::Packet; use 5.008; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); BEGIN { require Exporter; if ($] < 5.008003) { diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm index d1c352f92b5..f6f1dc03c60 100644 --- a/perl/Git/SVN.pm +++ b/perl/Git/SVN.pm @@ -1,6 +1,6 @@ package Git::SVN; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use Fcntl qw/:DEFAULT :seek/; use constant rev_map_fmt => 'NH*'; use vars qw/$_no_metadata diff --git a/perl/Git/SVN/Editor.pm b/perl/Git/SVN/Editor.pm index c961444d4cb..47fd048bf2d 100644 --- a/perl/Git/SVN/Editor.pm +++ b/perl/Git/SVN/Editor.pm @@ -1,7 +1,7 @@ package Git::SVN::Editor; use vars qw/@ISA $_rmdir $_cp_similarity $_find_copies_harder $_rename_limit/; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use SVN::Core; use SVN::Delta; use Carp qw/croak/; diff --git a/perl/Git/SVN/Fetcher.pm b/perl/Git/SVN/Fetcher.pm index 729e5337df7..968309e6d63 100644 --- a/perl/Git/SVN/Fetcher.pm +++ b/perl/Git/SVN/Fetcher.pm @@ -3,7 +3,7 @@ package Git::SVN::Fetcher; $_placeholder_filename @deleted_gpath %added_placeholder $repo_id/; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use SVN::Delta; use Carp qw/croak/; use File::Basename qw/dirname/; diff --git a/perl/Git/SVN/GlobSpec.pm b/perl/Git/SVN/GlobSpec.pm index a0a8d176215..f2c1e1f6fbe 100644 --- a/perl/Git/SVN/GlobSpec.pm +++ b/perl/Git/SVN/GlobSpec.pm @@ -1,6 +1,6 @@ package Git::SVN::GlobSpec; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); sub new { my ($class, $glob, $pattern_ok) = @_; diff --git a/perl/Git/SVN/Log.pm b/perl/Git/SVN/Log.pm index 9c819188ea3..cc8b484f848 100644 --- a/perl/Git/SVN/Log.pm +++ b/perl/Git/SVN/Log.pm @@ -1,6 +1,6 @@ package Git::SVN::Log; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use Git::SVN::Utils qw(fatal); use Git qw(command command_oneline diff --git a/perl/Git/SVN/Memoize/YAML.pm b/perl/Git/SVN/Memoize/YAML.pm index 9676b8f2f73..8fcf6644a1c 100644 --- a/perl/Git/SVN/Memoize/YAML.pm +++ b/perl/Git/SVN/Memoize/YAML.pm @@ -1,5 +1,5 @@ package Git::SVN::Memoize::YAML; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use strict; use YAML::Any (); diff --git a/perl/Git/SVN/Migration.pm b/perl/Git/SVN/Migration.pm index dc90f6a6214..ed96ac593e8 100644 --- a/perl/Git/SVN/Migration.pm +++ b/perl/Git/SVN/Migration.pm @@ -33,7 +33,7 @@ package Git::SVN::Migration; # possible if noMetadata or useSvmProps are set; but should # be no problem for users that use the (sensible) defaults. use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use Carp qw/croak/; use File::Path qw/mkpath/; use File::Basename qw/dirname basename/; diff --git a/perl/Git/SVN/Prompt.pm b/perl/Git/SVN/Prompt.pm index e940b08505f..de158e848fb 100644 --- a/perl/Git/SVN/Prompt.pm +++ b/perl/Git/SVN/Prompt.pm @@ -1,6 +1,6 @@ package Git::SVN::Prompt; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); require SVN::Core; use vars qw/$_no_auth_cache $_username/; diff --git a/perl/Git/SVN/Ra.pm b/perl/Git/SVN/Ra.pm index 2cfe055a9a0..912e0350404 100644 --- a/perl/Git/SVN/Ra.pm +++ b/perl/Git/SVN/Ra.pm @@ -1,7 +1,7 @@ package Git::SVN::Ra; use vars qw/@ISA $config_dir $_ignore_refs_regex $_log_window_size/; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use Memoize; use Git::SVN::Utils qw( canonicalize_url diff --git a/perl/Git/SVN/Utils.pm b/perl/Git/SVN/Utils.pm index 3d1a0933a2e..5ca09ab4483 100644 --- a/perl/Git/SVN/Utils.pm +++ b/perl/Git/SVN/Utils.pm @@ -1,7 +1,7 @@ package Git::SVN::Utils; use strict; -use warnings; +use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); use SVN::Core; diff --git a/t/test-lib.sh b/t/test-lib.sh index 6bc0a30d38d..fa347ed3e1d 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -499,6 +499,12 @@ then export GIT_INDEX_VERSION fi +if test -n "$GIT_TEST_PERL_FATAL_WARNINGS" +then + GIT_PERL_FATAL_WARNINGS=1 + export GIT_PERL_FATAL_WARNINGS +fi + # Add libc MALLOC and MALLOC_PERTURB test # only if we are not executing the test with valgrind if test -n "$valgrind" ||