From: Peter Rabbitson Date: Sun, 24 Apr 2016 13:49:30 +0000 (+0200) Subject: Fix last remaining tests with -T under < 5.10 X-Git-Tag: v0.082840~30 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=21357344f9d2934dd8e5c7e8529a69c9324568c8;p=dbsrgits%2FDBIx-Class.git Fix last remaining tests with -T under < 5.10 ( cherry-pick of 652d9b762 ) Model on https://github.com/p5sagit/namespace-clean/commit/acb1d694, this is still a mega-kludge, as the FIXME in the file says --- diff --git a/maint/travis-ci_scripts/40_script.bash b/maint/travis-ci_scripts/40_script.bash index ddbaab4..9b38103 100755 --- a/maint/travis-ci_scripts/40_script.bash +++ b/maint/travis-ci_scripts/40_script.bash @@ -25,12 +25,7 @@ if [[ "$CLEANTEST" = "true" ]] ; then run_or_err "Prepare blib" "make pure_all" run_harness_tests else - PROVECMD="prove -lrswj$VCPU_USE xt t" - - # FIXME - temporary, until Package::Stash is fixed - if perl -M5.010 -e 1 &>/dev/null ; then - PROVECMD="$PROVECMD -T" - fi + PROVECMD="prove -lrswTj$VCPU_USE xt t" echo_err "$(tstamp) running tests with \`$PROVECMD\`" $PROVECMD 2> >(tee "$TEST_STDERR_LOG") diff --git a/t/55namespaces_cleaned.t b/t/55namespaces_cleaned.t index de47f14..b2a1f40 100644 --- a/t/55namespaces_cleaned.t +++ b/t/55namespaces_cleaned.t @@ -33,6 +33,29 @@ BEGIN { use strict; use warnings; +# FIXME This is a crock of shit, needs to go away +# currently here to work around https://rt.cpan.org/Ticket/Display.html?id=74151 +# kill with fire when PS::XS / RT#74151 is *finally* fixed +BEGIN { + my $PS_provider; + + if ( "$]" < 5.010 ) { + require Package::Stash::PP; + $PS_provider = 'Package::Stash::PP'; + } + else { + require Package::Stash; + $PS_provider = 'Package::Stash'; + } + eval <<"EOS" or die $@; + +sub stash_for (\$) { + $PS_provider->new(\$_[0]); +} +1; +EOS +} + use Test::More; use lib 't/lib'; @@ -47,7 +70,6 @@ use DBICTest; use File::Find; use File::Spec; use B qw/svref_2object/; -use Package::Stash; # makes sure we can load at least something use DBIx::Class; @@ -106,7 +128,7 @@ for my $mod (@modules) { skip "$mod exempt from namespace checks",1 if $skip_idx->{$mod}; my %all_method_like = (map - { %{Package::Stash->new($_)->get_all_symbols('CODE')} } + { %{stash_for($_)->get_all_symbols('CODE')} } (reverse @{mro::get_linear_isa($mod)}) ); diff --git a/t/94versioning.t b/t/94versioning.t index a154d8f..de45516 100644 --- a/t/94versioning.t +++ b/t/94versioning.t @@ -39,6 +39,11 @@ BEGIN { # in case it came from the env $ENV{DBIC_NO_VERSION_CHECK} = 0; +# FIXME - work around RT#113965 in combination with -T on older perls: +# the non-deparsing XS portion of D::D gets confused by some of the IO +# handles trapped in the debug object of DBIC. What a mess. +$Data::Dumper::Deparse = 1; + use_ok('DBICVersion_v1'); my $version_table_name = 'dbix_class_schema_versions'; diff --git a/t/storage/debug.t b/t/storage/debug.t index 0aba07e..5f8d53d 100644 --- a/t/storage/debug.t +++ b/t/storage/debug.t @@ -10,6 +10,10 @@ use lib qw(t/lib); use DBICTest; use Path::Class qw/file/; +# something deep in Path::Class - mainline ditched it altogether +plan skip_all => "Test is finicky under -T before 5.10" + if "$]" < 5.010 and ${^TAINT}; + BEGIN { delete @ENV{qw(DBIC_TRACE DBIC_TRACE_PROFILE DBICTEST_SQLITE_USE_FILE)} } my $schema = DBICTest->init_schema();