From: gfx Date: Sun, 25 Oct 2009 05:01:17 +0000 (+0900) Subject: Tweaks for Makefile.PL X-Git-Tag: 0.40_01~24 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=32cf1353e897e482f55d49b4c6c3be01ab4544a8;p=gitmo%2FMouse.git Tweaks for Makefile.PL --- diff --git a/Makefile.PL b/Makefile.PL index e6a0c67..dea9173 100755 --- a/Makefile.PL +++ b/Makefile.PL @@ -54,7 +54,7 @@ if ($Module::Install::AUTHOR) { if (eval{ require Moose; Moose->VERSION($require_version) }) { if (eval 'use Module::Install::AuthorTests; 1') { - create_moose_compatibility_test(); + do 'author/create-moose-compatibility-tests.pl'; recursive_author_tests('xt'); } else { print "you don't have a M::I::AuthorTests.\n"; @@ -68,79 +68,3 @@ clean_files 'lib/Mouse/Tiny.pm'; WriteAll check_nmake => 0; -sub create_moose_compatibility_test { - require File::Path; - require File::Spec; - require File::Basename; - - print "Creating compatibility tests in xt/compatibility/* ...\n"; - - File::Path::rmtree(File::Spec->catfile('xt', 'compatibility')); - - # some test does not pass... currently skip it. - my %SKIP_TEST = ( - '016-trigger.t' => "trigger's argument is incompatble :(", - '810-isa-or.t' => "Mouse has a [BUG]", - - '052-undefined-type-in-union.t' => "Mouse accepts undefined type as a member of union types", - '054-anon-leak.t' => 'Moose has memory leaks', - - '600-tiny-tiny.t' => "Moose doesn't support ::Tiny", - '601-tiny-mouse.t' => "Moose doesn't support ::Tiny", - '602-mouse-tiny.t' => "Moose doesn't support ::Tiny", - - '031_roles_applied_in_create.t' => 't/lib/* classes are not Moose classes/roles', - ); - - my @compat_tests; - - File::Find::find( - { - wanted => sub { - return unless -f $_; - - return if /failing/; # skip tests in failing/ directories which are Moose specific - - return if /with_moose/; # tests with Moose - return if /100_bugs/; # some tests require Mouse specific files - return if /deprecated/; - - my $basename = File::Basename::basename($_); - return if $basename =~ /^\./; - - if(exists $SKIP_TEST{$basename}){ - print "# skip $basename because: $SKIP_TEST{$basename}\n"; - return; - } - - my $dirname = File::Basename::dirname($_); - - my $tmpdir = File::Spec->catfile('xt', 'compatibility', $dirname); - File::Path::mkpath($tmpdir); - - my $tmpfile = File::Spec->catfile($tmpdir, $basename); - open my $wfh, '>', $tmpfile or die $!; - print $wfh do { - my $src = do { - open my $rfh, '<', $_ or die $!; - my $s = do { local $/; <$rfh> }; - close $rfh; - $s; - }; - $src =~ s/Mouse::(?:Util::)?is_class_loaded/Class::MOP::is_class_loaded/g; - $src =~ s/Mouse::(?:Util::)?load_class/Class::MOP::load_class/g; - $src =~ s/Mouse/Moose/g; - $src; - }; - close $wfh; - push @compat_tests, $tmpfile; - }, - no_chdir => 1 - }, - 't', - ); - print "Compatibility tests created.\n"; - - clean_files "@compat_tests"; -} - diff --git a/author/create-moose-compatibility-tests.pl b/author/create-moose-compatibility-tests.pl new file mode 100644 index 0000000..d875105 --- /dev/null +++ b/author/create-moose-compatibility-tests.pl @@ -0,0 +1,79 @@ +#!perl +use strict; +use warnings; + +use File::Path (); +use File::Spec (); +use File::Basename (); + +print "Creating compatibility tests in xt/compatibility/* ...\n"; + +File::Path::rmtree(File::Spec->catfile('xt', 'compatibility')); + +# some test does not pass... currently skip it. +my %SKIP_TEST = ( + '016-trigger.t' => "trigger's argument is incompatble :(", + '810-isa-or.t' => "Mouse has a [BUG]", + + '052-undefined-type-in-union.t' => "Mouse accepts undefined type as a member of union types", + '054-anon-leak.t' => 'Moose has memory leaks', + + '600-tiny-tiny.t' => "Moose doesn't support ::Tiny", + '601-tiny-mouse.t' => "Moose doesn't support ::Tiny", + '602-mouse-tiny.t' => "Moose doesn't support ::Tiny", + + '031_roles_applied_in_create.t' => 't/lib/* classes are not Moose classes/roles', +); + +my @compat_tests; + +File::Find::find( + { + wanted => sub { + return unless -f $_; + + return if /failing/; # skip tests in failing/ directories which are Moose specific + + return if /with_moose/; # tests with Moose + return if /100_bugs/; # some tests require Mouse specific files + return if /deprecated/; + + my $basename = File::Basename::basename($_); + return if $basename =~ /^\./; + + if(exists $SKIP_TEST{$basename}){ + print "# skip $basename because: $SKIP_TEST{$basename}\n"; + return; + } + + my $dirname = File::Basename::dirname($_); + + my $tmpdir = File::Spec->catfile('xt', 'compatibility', $dirname); + File::Path::mkpath($tmpdir); + + my $tmpfile = File::Spec->catfile($tmpdir, $basename); + open my $wfh, '>', $tmpfile or die $!; + print $wfh do { + my $src = do { + open my $rfh, '<', $_ or die $!; + my $s = do { local $/; <$rfh> }; + close $rfh; + $s; + }; + $src =~ s/Mouse::(?:Util::)?is_class_loaded/Class::MOP::is_class_loaded/g; + $src =~ s/Mouse::(?:Util::)?load_class/Class::MOP::load_class/g; + $src =~ s/Mouse/Moose/g; + $src; + }; + close $wfh; + push @compat_tests, $tmpfile; + }, + no_chdir => 1 + }, + 't', +); +print "Compatibility tests created.\n"; + +clean_files("@compat_tests"); # defined in main + + diff --git a/author/munge-tests-for-moose.pl b/author/munge-tests-for-moose.pl deleted file mode 100755 index 96ec4da..0000000 --- a/author/munge-tests-for-moose.pl +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env perl -pl -use strict; -use warnings; - -BEGIN { - @ARGV = glob('t/*.t t/*/*.t') if !@ARGV; - $^I = ''; -} - -next if $ARGV =~ /squirrel/i; # Squirrel tests are for both Moose and Mouse - -s/Mouse(?!::Tiny)/Moose/g; - -s/Moose::(load_class|is_class_loaded)/Class::MOP::$1/g; -