Permalink
Browse files

Generate the list of modules to load from MANIFEST.

Build a cummulative manifest (MANIFEST.CUMMULATIVE) of all the files
we've ever shipped.

Use the cummulative manifest to check that we haven't loaded any
orphaned modules (modules we no longer ship but still, erroneously,
depend on).
  • Loading branch information...
1 parent 396ad8f commit 961215e501a2e83354800e97088857cc5f966d2f @AndyA AndyA committed Jan 23, 2010
Showing with 459 additions and 60 deletions.
  1. +4 −0 Changes
  2. +1 −1 MANIFEST
  3. +328 −0 MANIFEST.CUMMULATIVE
  4. +21 −0 inc/MyBuilder.pm
  5. +17 −0 misc/build-manifest-cummulative.sh
  6. +88 −59 t/000-load.t
View
@@ -1,5 +1,9 @@
Revision history for Test-Harness
+3.21 ????-??-??
+ - Add test to ensure we're not depending on a module we no
+ longer ship.
+
3.20 2009-01-22
- Remove references / dependency on TAP::Parser::Source::Perl
View
@@ -67,7 +67,7 @@ lib/TAP/Parser/YAMLish/Reader.pm
lib/TAP/Parser/YAMLish/Writer.pm
lib/Test/Harness.pm
Makefile.PL
-MANIFEST This list of files
+MANIFEST
META.yml
perlcriticrc
README
View
@@ -0,0 +1,328 @@
+.perltidyrc
+Build.PL
+Changes
+Changes-2.64
+HACKING.pod
+MANIFEST
+META.yml
+Makefile.PL
+README
+TODO
+bin/prove
+bin/runtests
+examples/README
+examples/analyze_tests.pl
+examples/bin/forked_tests.pl
+examples/bin/test_html.pl
+examples/bin/tprove
+examples/bin/tprove_color
+examples/bin/tprove_gtk
+examples/harness-hook/hook.pl
+examples/harness-hook/lib/Harness/Hook.pm
+examples/my_exec
+examples/my_execrc
+examples/silent-harness.pl
+examples/t/10-stuff.t
+examples/t/ruby.t
+examples/tapx_harness_execrc
+examples/test_urls.txt
+inc/MyBuilder.pm
+lib/App/Prove.pm
+lib/App/Prove/State.pm
+lib/App/Prove/State/Result.pm
+lib/App/Prove/State/Result/Test.pm
+lib/TAP/Base.pm
+lib/TAP/Formatter/Base.pm
+lib/TAP/Formatter/Color.pm
+lib/TAP/Formatter/Console.pm
+lib/TAP/Formatter/Console/ParallelSession.pm
+lib/TAP/Formatter/Console/Session.pm
+lib/TAP/Formatter/File.pm
+lib/TAP/Formatter/File/Session.pm
+lib/TAP/Formatter/Session.pm
+lib/TAP/Harness.pm
+lib/TAP/Harness/Beyond.pod
+lib/TAP/Harness/Color.pm
+lib/TAP/Harness/Compatible.pm
+lib/TAP/Object.pm
+lib/TAP/Parser.pm
+lib/TAP/Parser/Aggregator.pm
+lib/TAP/Parser/Grammar.pm
+lib/TAP/Parser/Iterator.pm
+lib/TAP/Parser/Iterator/Array.pm
+lib/TAP/Parser/Iterator/Process.pm
+lib/TAP/Parser/Iterator/Stream.pm
+lib/TAP/Parser/IteratorFactory.pm
+lib/TAP/Parser/Multiplexer.pm
+lib/TAP/Parser/Result.pm
+lib/TAP/Parser/Result/Bailout.pm
+lib/TAP/Parser/Result/Comment.pm
+lib/TAP/Parser/Result/Plan.pm
+lib/TAP/Parser/Result/Pragma.pm
+lib/TAP/Parser/Result/Test.pm
+lib/TAP/Parser/Result/Unknown.pm
+lib/TAP/Parser/Result/Version.pm
+lib/TAP/Parser/Result/YAML.pm
+lib/TAP/Parser/ResultFactory.pm
+lib/TAP/Parser/Scheduler.pm
+lib/TAP/Parser/Scheduler/Job.pm
+lib/TAP/Parser/Scheduler/Spinner.pm
+lib/TAP/Parser/Source.pm
+lib/TAP/Parser/Source/Perl.pm
+lib/TAP/Parser/SourceHandler.pm
+lib/TAP/Parser/SourceHandler/Executable.pm
+lib/TAP/Parser/SourceHandler/File.pm
+lib/TAP/Parser/SourceHandler/Handle.pm
+lib/TAP/Parser/SourceHandler/Perl.pm
+lib/TAP/Parser/SourceHandler/RawTAP.pm
+lib/TAP/Parser/SourceHandler/pgTAP.pm
+lib/TAP/Parser/Utils.pm
+lib/TAP/Parser/YAML.pm
+lib/TAP/Parser/YAMLish/Reader.pm
+lib/TAP/Parser/YAMLish/Writer.pm
+lib/TAPx/Base.pm
+lib/TAPx/Harness.pm
+lib/TAPx/Harness/Color.pm
+lib/TAPx/Harness/Compatible.pm
+lib/TAPx/Harness/Compatible/Iterator.pm
+lib/TAPx/Harness/Compatible/Point.pm
+lib/TAPx/Harness/Compatible/Results.pm
+lib/TAPx/Harness/Compatible/Straps.pm
+lib/TAPx/Harness/Compatible/TAP.pod
+lib/TAPx/Harness/Compatible/Util.pm
+lib/TAPx/Parser.pm
+lib/TAPx/Parser/Aggregator.pm
+lib/TAPx/Parser/Grammar.pm
+lib/TAPx/Parser/Iterator.pm
+lib/TAPx/Parser/Result.pm
+lib/TAPx/Parser/Result/Bailout.pm
+lib/TAPx/Parser/Result/Comment.pm
+lib/TAPx/Parser/Result/Plan.pm
+lib/TAPx/Parser/Result/Test.pm
+lib/TAPx/Parser/Result/Unknown.pm
+lib/TAPx/Parser/Source.pm
+lib/TAPx/Parser/Source/Perl.pm
+lib/TAPx/Parser/YAML.pm
+lib/Test/Harness.pm
+patches/ExtUtils-MakeMaker-6.31.patch
+perlcriticrc
+perltidyrc
+t/000-load.t
+t/010-base.t
+t/010-regression.t
+t/020-parse.t
+t/020-regression.t
+t/030-bailout.t
+t/030-grammar.t
+t/040-errors.t
+t/040-parse.t
+t/050-bailout.t
+t/050-streams.t
+t/060-aggregator.t
+t/060-errors.t
+t/070-callbacks.t
+t/070-streams.t
+t/080-aggregator.t
+t/080-premature-bailout.t
+t/090-callbacks.t
+t/090-iterators.t
+t/100-harness.t
+t/100-premature-bailout.t
+t/110-iterators.t
+t/110-source.t
+t/120-harness.t
+t/130-source.t
+t/140-results.t
+t/140-varsource.t
+t/150-results.t
+t/150-yamlish.t
+t/160-yaml.t
+t/160-yamlish-writer.t
+t/170-yamlish-output.t
+t/180-unicode.t
+t/190-nofork.t
+t/200-prove.t
+t/aggregator.t
+t/bailout.t
+t/base.t
+t/callbacks.t
+t/compat/000-compile.t
+t/compat/00compile.t
+t/compat/010-failure.t
+t/compat/020-inc_taint.t
+t/compat/030-nonumbers.t
+t/compat/040-test-harness-compat.t
+t/compat/060-version.t
+t/compat/base.t
+t/compat/callback.t
+t/compat/env.t
+t/compat/failure.t
+t/compat/from_line.t
+t/compat/harness.t
+t/compat/inc-propagation.t
+t/compat/inc_taint.t
+t/compat/nonumbers.t
+t/compat/ok.t
+t/compat/point-parse.t
+t/compat/point.t
+t/compat/prove-globbing.t
+t/compat/prove-switches.t
+t/compat/regression.t
+t/compat/strap-analyze.t
+t/compat/strap.t
+t/compat/subclass.t
+t/compat/switches.t
+t/compat/test-harness-compat.t
+t/compat/test-harness.t
+t/compat/version.t
+t/console.t
+t/data/catme.1
+t/data/execrc
+t/data/proverc
+t/data/sample.yml
+t/errors.t
+t/file.t
+t/glob-to-regexp.t
+t/grammar.t
+t/harness-bailout.t
+t/harness-subclass.t
+t/harness.t
+t/iterator_factory.t
+t/iterators.t
+t/lib/App/Prove/Plugin/Dummy.pm
+t/lib/App/Prove/Plugin/Dummy2.pm
+t/lib/Dev/Null.pm
+t/lib/EmptyParser.pm
+t/lib/IO/Capture.pm
+t/lib/IO/c55Capture.pm
+t/lib/MyCustom.pm
+t/lib/MyFileSourceHandler.pm
+t/lib/MyGrammar.pm
+t/lib/MyIterator.pm
+t/lib/MyIteratorFactory.pm
+t/lib/MyPerlSource.pm
+t/lib/MyPerlSourceHandler.pm
+t/lib/MyResult.pm
+t/lib/MyResultFactory.pm
+t/lib/MyShebangger.pm
+t/lib/MySource.pm
+t/lib/MySourceHandler.pm
+t/lib/NOP.pm
+t/lib/NoFork.pm
+t/lib/TAP/Harness/TestSubclass.pm
+t/lib/TAP/Parser/SubclassTest.pm
+t/lib/Test/Builder.pm
+t/lib/Test/Builder/Module.pm
+t/lib/Test/More.pm
+t/lib/Test/Simple.pm
+t/lib/if.pm
+t/multiplexer.t
+t/nofork-mux.t
+t/nofork.t
+t/object.t
+t/parse.t
+t/parser-config.t
+t/parser-subclass.t
+t/perl5lib.t
+t/pod-coverage.t
+t/pod.t
+t/premature-bailout.t
+t/process.t
+t/prove.t
+t/proveenv.t
+t/proverc.t
+t/proverc/emptyexec
+t/proverun.t
+t/regression.t
+t/results.t
+t/sample-tests/bailout
+t/sample-tests/bignum
+t/sample-tests/bignum_many
+t/sample-tests/combined
+t/sample-tests/combined_compat
+t/sample-tests/delayed
+t/sample-tests/descriptive
+t/sample-tests/descriptive_trailing
+t/sample-tests/die
+t/sample-tests/die_head_end
+t/sample-tests/die_last_minute
+t/sample-tests/die_unfinished
+t/sample-tests/duplicates
+t/sample-tests/echo
+t/sample-tests/empty
+t/sample-tests/escape_eol
+t/sample-tests/escape_hash
+t/sample-tests/head_end
+t/sample-tests/head_fail
+t/sample-tests/inc_taint
+t/sample-tests/junk_before_plan
+t/sample-tests/lone_not_bug
+t/sample-tests/no_nums
+t/sample-tests/no_output
+t/sample-tests/out_err_mix
+t/sample-tests/out_of_order
+t/sample-tests/schwern
+t/sample-tests/schwern-todo-quiet
+t/sample-tests/segfault
+t/sample-tests/sequence_misparse
+t/sample-tests/shbang_misparse
+t/sample-tests/simple
+t/sample-tests/simple_fail
+t/sample-tests/simple_yaml
+t/sample-tests/skip
+t/sample-tests/skip_nomsg
+t/sample-tests/skipall
+t/sample-tests/skipall_nomsg
+t/sample-tests/skipall_v13
+t/sample-tests/space_after_plan
+t/sample-tests/stdout_stderr
+t/sample-tests/strict
+t/sample-tests/switches
+t/sample-tests/taint
+t/sample-tests/taint_warn
+t/sample-tests/todo
+t/sample-tests/todo_inline
+t/sample-tests/todo_misparse
+t/sample-tests/too_many
+t/sample-tests/version_good
+t/sample-tests/version_late
+t/sample-tests/version_old
+t/sample-tests/vms_nit
+t/sample-tests/with_comments
+t/sample-tests/zero_valid
+t/scheduler.t
+t/source.t
+t/source_handler.t
+t/source_tests/harness
+t/source_tests/harness_badtap
+t/source_tests/harness_complain
+t/source_tests/harness_directives
+t/source_tests/harness_failure
+t/source_tests/psql
+t/source_tests/psql.bat
+t/source_tests/source
+t/source_tests/source.1
+t/source_tests/source.bat
+t/source_tests/source.pl
+t/source_tests/source.sh
+t/source_tests/source.t
+t/source_tests/source.tap
+t/source_tests/varsource
+t/spool.t
+t/state.t
+t/state_results.t
+t/streams.t
+t/subclass_tests/non_perl_source
+t/subclass_tests/perl_source
+t/taint.t
+t/testargs.t
+t/unicode.t
+t/utils.t
+t/yamlish-output.t
+t/yamlish-writer.t
+t/yamlish.t
+xt/author/pod-coverage.t
+xt/author/pod.t
+xt/author/stdin.t
+xt/perls/harness_perl.t
+xt/perls/sample-tests/perl_version
View
@@ -125,4 +125,25 @@ sub ACTION_smallprof {
print join( '', @rows );
}
+sub read_manifest {
+ my ( $self, $file, $into ) = @_;
+ open my $fh, '<', $file or die "Can't read $file: $!";
+ while (<$fh>) {
+ chomp;
+ s/\s*#.*//;
+ $into->{$_}++ if length $_;
+ }
+}
+
+sub ACTION_manifest {
+ my ( $self, @args ) = @_;
+ $self->SUPER::ACTION_manifest(@args);
+ my $stash = {};
+ my $mc = 'MANIFEST.CUMMULATIVE';
+ $self->read_manifest( $mc, $stash );
+ $self->read_manifest( 'MANIFEST', $stash );
+ open my $fh, '>', $mc or die "Can't write $mc: $!";
+ print $fh "$_\n" for sort keys %$stash;
+}
+
1;
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+mc="MANIFEST.CUMMULATIVE"
+mct="MANIFEST.CUMMULATIVE.$$.TMP"
+
+>$mct
+git tag | while read tag ; do
+ echo $tag
+ git co $tag
+ cat MANIFEST >> $mct
+done
+sort -u < $mct > $mc
+rm -f $mct
+git co master
+
+# vim:ts=2:sw=2:sts=2:et:ft=sh
+
Oops, something went wrong.

0 comments on commit 961215e

Please sign in to comment.