diff options
-rw-r--r-- | Changes | 3 | ||||
-rw-r--r-- | MANIFEST | 5 | ||||
-rw-r--r-- | Makefile.PL | 13 | ||||
-rw-r--r-- | lib/Manifest.pm | 35 | ||||
-rw-r--r-- | t/0.load.t | 31 | ||||
-rw-r--r-- | t/1.get_test_files.t | 17 | ||||
-rw-r--r-- | t/1.make_test_manifest.t | 31 | ||||
-rw-r--r-- | test_manifest | 2 |
8 files changed, 77 insertions, 60 deletions
@@ -0,0 +1,3 @@ +$Id$ + +0.9 - @@ -1,9 +1,8 @@ -MANIFEST +Changes +MANIFEST This list of files Makefile.PL lib/Manifest.pm t/0.load.t -t/0.pod.t -t/0.prereq.t t/1.get_test_files.t t/1.make_test_manifest.t test_manifest diff --git a/Makefile.PL b/Makefile.PL index 8bfeb6a..a50f43c 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -3,18 +3,17 @@ use ExtUtils::MakeMaker; WriteMakefile ( - 'NAME' => 'Test::Manifest', - 'VERSION' => '0.7', + 'NAME' => 'Test::Manifest', + 'VERSION_FROM' => 'lib/Manifest.pm', + 'PREREQ_PM' => { - 'File::Find::Rule' => '0', - 'Test::Data' => '0', 'Test::More' => '0', - 'Test::Pod' => '0', - 'Test::Prereq' => '0', - 'Text::Diff' => '0', }, + 'PM' => { 'lib/Manifest.pm' => '$(INST_LIBDIR)/Manifest.pm', }, + + clean => { FILES => 'Test-Manifest-* t/test_manifest' }, ); diff --git a/lib/Manifest.pm b/lib/Manifest.pm index a8fefca..e0638ce 100644 --- a/lib/Manifest.pm +++ b/lib/Manifest.pm @@ -1,8 +1,9 @@ +# $Id$ package Test::Manifest; use strict; use base qw(Exporter); -use vars qw(@EXPORT_OK @EXPORT); +use vars qw(@EXPORT_OK @EXPORT $VERSION); use Carp qw(carp); use Exporter; @@ -10,6 +11,9 @@ use Exporter; @EXPORT = qw(run_t_manifest); @EXPORT_OK = qw(get_t_files make_test_manifest manifest_name); +#$VERSION = sprintf "%d.%02d", q$Revision$ =~ m/(\d+) . (\d+)/x; +$VERSION = 0.9; + my $Manifest = "t/test_manifest"; =head1 NAME @@ -18,9 +22,7 @@ Test::Manifest - interact with a t/test_manifest file =head1 SYNOPSIS -use Test::Manifest qw(get_t_files); - -WriteMakefile( ..., test => { TESTS => get_t_files() } ); +See the functions section. =head1 DESCRIPTION @@ -43,6 +45,21 @@ do the right thing. =item run_t_manifest +Run all of the files in t/test_manifest through Test::Harness:runtests +in the order they appear in the file. + +If you want to use this, in Makefile.PL you need to override some +MakeMaker magic (after you load ExtUtils::MakeMaker). + + sub ExtUtils::MM_Any::test_via_harness + { + my($self, $perl, $tests) = @_; + + return qq|\t$perl "-MTest::Manifest" | . + qq|"-e" "run_t_manifest(\$(TEST_VERBOSE), '\$(INST_LIB)', | . + qq|'\$(INST_ARCHLIB)')"\n|; + } + =cut sub run_t_manifest @@ -133,7 +150,17 @@ sub manifest_name } =back + +=head1 SOURCE AVAILABILITY + +This source is part of a SourceForge project which always has the +latest sources in CVS, as well as all of the previous releases. + + https://sourceforge.net/projects/brian-d-foy/ +If, for some reason, I disappear from the world, one of the other +members of the project can shepherd this module appropriately. + =head1 AUTHOR brian d foy, E<lt>bdfoy@cpan.orgE<lt> @@ -1,17 +1,18 @@ # $Id$ -BEGIN { - use File::Find::Rule; - @classes = map { my $x = $_; - $x =~ s|^blib/lib/||; - $x =~ s|/|::|g; - $x =~ s|\.pm$||; - $x; - } File::Find::Rule->file()->name( '*.pm' )->in( 'blib/lib' ); - } -use Test::More tests => scalar @classes; - -foreach my $class ( @classes ) - { - use_ok( $class ); - } +use lib qw(./blib/lib); + +print "1..1\n"; + +local( $@, $! ); + +eval <<USE; +package main; +require Test::Manifest; +Test::Manifest->import; +USE + +print "bail out! Test::Manifest could not compile.\n$@\n" + if $@; + +print "ok - Test::Manifest compiles\n"; diff --git a/t/1.get_test_files.t b/t/1.get_test_files.t index 4ccfef6..a6a1e8d 100644 --- a/t/1.get_test_files.t +++ b/t/1.get_test_files.t @@ -1,13 +1,22 @@ # $Id$ use strict; -use Test::More tests => 9; +use Test::More tests => 7; use Test::Manifest qw(get_t_files manifest_name); -use Test::Data qw(Scalar); my $test_manifest = manifest_name(); +open IN, 'test_manifest' or + print "bail out! Could not open test_manifest\n$!\n"; + +open OUT, "> $test_manifest" or + print "bail out! Could not open $test_manifest\n$!\n"; + +while( <IN> ) { print OUT } +close IN; +close OUT; + my @tests = (); print "bail out! Could not open manifest!" @@ -39,9 +48,9 @@ local $SIG{__WARN__} = sub { 1 }; my $string = get_t_files(); -undef_ok( $string ); +ok( ! $string ); my @array = get_t_files(); -undef_ok( $string ); +ok( ! $string ); } diff --git a/t/1.make_test_manifest.t b/t/1.make_test_manifest.t index e35ef2e..250dcda 100644 --- a/t/1.make_test_manifest.t +++ b/t/1.make_test_manifest.t @@ -1,33 +1,14 @@ # $Id$ -BEGIN { $| = 1; print "1..3\n"; } -END {print "not ok\n" unless $loaded;} -# Test it loads +use Test::More tests => 2; + use Test::Manifest qw(make_test_manifest); -$loaded = 1; -print "ok\n"; my $test_manifest = 't/test_manifest'; -eval { - unlink $test_manifest; - die "$test_manifest still exists!" if -e $test_manifest; - - make_test_manifest(); - - die "$test_manifest doesn't exist!" unless -e $test_manifest; - }; -print STDERR $@ if $@; -print $@ ? 'not ' : '', "ok\n"; +unlink $test_manifest; +ok( ! -e $test_manifest, 'test_manifest does not exit' ); -eval { - require Text::Diff; - - my $diff = Text::Diff::diff( 'test_manifest', $test_manifest ); - - die "Files are different! [$diff]" if $diff; - }; -print STDERR $@ if $@; -print $@ ? 'not ' : '', "ok\n"; +make_test_manifest(); -unlink $test_manifest; +ok( -e $test_manifest, 'test_manifest exists' ); diff --git a/test_manifest b/test_manifest index e294c5c..cd9f40b 100644 --- a/test_manifest +++ b/test_manifest @@ -1,5 +1,3 @@ 0.load.t -0.pod.t -0.prereq.t 1.get_test_files.t 1.make_test_manifest.t |