1 Revision history for Perl extension Test::Harness
3 2.57_06 Sun Apr 23 00:55:43 CDT 2006
4 [THINGS THAT MIGHT BREAK YOUR CODE]
5 * Anything that displays a percentage of tests passed has been
6 removed. Output at the end of failing runs is now different.
9 * Fixed the TODO-passing patch from 2.57_05.
12 * The unnecessary display of percentages of tests passing and failing
13 have been removed. Tests are not a percentage game.
15 * Caches the results of _default_inc(), which is expensive because
16 of shelling out to get the pathnames. Benchmarking was showing that
17 15% of Test::Harness's time was spent in this function. For test
18 suites with many test files, this can be significant. With this
19 speedup, the "make test" for the Perl core speeds up 2.5%.
20 Thanks to Nicholas Clark for finding this.
23 * Fixed HARNESS_PERL_SWITCHES typo. Thanks, Andreas Koenig.
25 * Added docs on HARNESS_TIMER and --timer. Thanks, Mike O'Regan.
27 2.57_05 Wed Apr 19 00:31:10 CDT 2006
29 * Now shows details of the tests that unexpectedly pass, instead of
30 just giving a number. Thanks, demerphq!
33 * Fixed globbing to work under Perls before 5.6.0. Before Perl 5.6.0,
34 prove just uses the internal glob() function.
36 2.57_04 Mon Apr 17 13:35:10 CDT 2006
38 * prove's globbing is now done with File::Glob::bsd_glob().
39 Otherwise, "prove c:\program files\svk\t\*" fails because glob()
40 considers it to be two patterns, splitting on whitespace. Thanks to
44 * Added information about other TAP implementations in other languages.
48 [THINGS THAT MAY BREAK YOUR CODE]
49 * Internal functions _run_all_tests() and _show_results() no longer
50 exist. You shouldn't have been using them anyway since they're
51 prepended with underscores.
54 * Added the ability to send test output to a filehandle of
55 one's choosing. Two internal functions are now exposed:
56 execute_tests() and get_results() (formerly _run_all_tests() and
57 _show_results()). This should allow CPANPLUS to work properly
58 with Module::Build. Thanks to Ken Williams.
61 * Hid the documentation for the private methods in Test::Harness::Straps.
63 2.57_02 Fri Dec 30 23:51:17 CST 2005
64 [THINGS THAT MAY BREAK YOUR CODE]
65 * prove's --ext option has been removed. I'm betting that nobody used it.
68 * prove can now take -w and -W switches, analogous to those in perl.
69 This means that "prove -wlb t/*.t" is exactly the same as "make test".
71 * Started a Test::Harness::Util module for code that may be reused
72 by other Harness-using modules.
75 * The t/prove*.t tests now use $^X to call prove. Thanks to Yves Orton.
76 * Test::Harness::Straps no longer uses Win32::GetShortPathName().
79 2.57_01 Mon Dec 26 01:39:07 CST 2005
81 * Removed code and docs mentioning HARNESS_IGNORE_EXITCODE, which
85 * If we have hi-res timings, then they're shown in integer
86 milliseconds, rather than fractional seconds.
88 * Added the --perl switch to prove.
91 * Added links to CPAN support sites.
93 2.56 Wed Sep 28 16:04:00 CDT 2005
95 * Incorporate bleadperl patch to fix Test::Harness on VMS.
97 2.54 Wed Sep 28 09:52:19 CDT 2005
99 * Test counts were wrong, so wouldn't install on Perls < 5.8.0.
101 2.53_02 Thu Aug 25 21:37:01 CDT 2005
103 * File order in prove is now sorted within the directory. It's not
104 the sorting that's important as much as the deterministic results.
105 Thanks to Adam Kennedy and Casey West for pointing this out,
106 independently of each other, with 12 hours of the other.
109 * Fix calls to podusage() to not use the DATA typeglob. Thanks sungo.
111 2.53_01 Sun Jul 10 10:45:27 CDT 2005
113 * If we go over 100,000 tests, it used to print out a warning for
114 every test over 100,000. Now, we stop after the first. Thanks to
115 Sebastien Aperghis-Tramoni.
117 2.52 Sun Jun 26 23:05:19 CDT 2005
122 * The Test::Harness timer is now off by default. Set HARNESS_TIMER
123 true if you want it. Added --timer flag to prove.
127 * Call CORE::time() to figure out if we should print when we're
128 printing once per second. Otherwise, we're using Time::HiRes'
129 version of it. Thanks, Nicholas Clark.
131 2.50 Tue Jun 21 14:32:12 CDT 2005
133 * Added some includes in t/strap-analyze.t to make Cygwin happy.
135 2.49_02 Tue Jun 21 09:54:44 CDT 2005
137 * Added some includes in t/test_harness.t to make Cygwin happy.
139 2.49_01 Fri Jun 10 15:37:31 CDT 2005
141 * Now shows elapsed time in 1000ths of a second if Time::HiRes
145 * Test::Harness::Iterator didn't have a 1; at the end. Thanks to
146 Steve Peters for finding it.
148 2.48 Fri Apr 22 22:41:46 CDT 2005
149 Released after weeks of non-complaint.
151 2.47_03 Wed Mar 2 16:52:55 CST 2005
152 [THINGS THAT MIGHT BREAK YOUR CODE]
153 * Test::Harness now requires Perl 5.005_03 or above.
156 * Fixed incorrect "confused by tests in wrong order" error in 2.47_02.
158 2.47_02 Tue Mar 1 23:15:47 CST 2005
159 [THINGS THAT MIGHT BREAK YOUR CODE]
160 * Test directives for skip tests used to be anything that matches
161 /^skip/i, like the word "skipped", but now it must match
165 * T::H now sets environment variable HARNESS_VERSION, in case a test
166 program wants to know what version of T::H it's running under.
168 2.47_01 Mon Feb 21 01:14:13 CST 2005
170 * Fixed a problem submitted by Craig Berry:
172 Several of the Test::Harness tests now fail on VMS with the
175 Can't find string terminator "]" anywhere before EOF at -e line 1.
177 The problem is that when a command is piped to the shell and that
178 command has a newline character embedded in it, the part after
179 the newline is invisible to the shell. The patch below corrects
180 that by escaping the newline so it is not subject to variable
181 interpolation until it gets to the child's Perl one-liner.
184 * Test::Harness::Straps now has diagnostic gathering without changing
185 how tests are run. It also adds these messages by default.
186 Note that the new method, _is_diagnostic(), is for internal
187 use only. It may change soon. Thanks to chromatic.
190 * Expanded Test::Harness::TAP.pod, and added examples.
192 * Fixed a crucial documentation typo in Test::Harness::Straps.
194 2.46 Thu Jan 20 11:50:59 CST 2005
197 2.45_02 Fri Dec 31 14:57:33 CST 2004
199 * Turns off buffering on both STDERR and STDOUT, so that the two
200 output handles don't get out of sync with each other. Thanks to
203 * No longer requires, or supports, the HARNESS_OK_SLOW environment
204 variable. Test counts are only updated once per second, which
205 used to require having HARNESS_OK_SLOW set.
207 2.45_01 Fri Dec 17 22:39:17 CST 2004
208 [THINGS THAT MIGHT BREAK YOUR CODE]
209 * Test::Harness now requires Perl 5.004_05.
211 * We no longer try to print a stack if a coredump is detected.
214 * Reverted Test::Harness::Iterator::next()'s use of readline, since
215 it fails under Perl 5.5.4.
217 * We no longer try to print a stack if a coredump is detected.
218 This means that the external problems we've had with wait.ph
219 now disappear. This resolves a number of problems that various
220 Linux distros have, and closes a couple of RT tickets like #2729
224 * Added Test::Harness->strap() method to access the internal strap.
227 * Obfuscated the rt.cpan.org email address. The damage is already
228 done, but at least we'll have it hidden going forward.
230 2.44 Tue Nov 30 18:38:17 CST 2004
232 * De-anonymized the callbacks and handlers in Test::Harness, mostly
233 so I can profile better.
235 * Checks _is_header() only if _is_line() fails first. No point
236 in checking every line of the input for something that can only
239 * Inline the _detailize() function, which was getting called once
240 per line of input. Reduced execution time about 5-7%.
242 * Removed unnecessary temporary variables in Test::Harness::Straps
243 and in Test::Harness::Iterator.
245 2.43_02 Thu Nov 25 00:20:36 CST 2004
247 * Added more debug output if $Test::Harness::Debug is on.
250 * Test::Harness now removes default paths from the paths that it
251 sets in PERL5LIB. This fixes RT #5649. Thanks, Schwern.
253 [THINGS THAT MIGHT BREAK YOUR CODE]
254 * Test::Harness::Straps' constructor no longer will work as an
255 object method. You can't say $strap->new any more, but that's
256 OK because you never really wanted to anyway.
260 * Added workaround for local $ENV{} bug on Cygwin to
261 t/prove-switches.t. See the following RT tickets for details.
263 https://rt.cpan.org/Ticket/Display.html?id=6452
264 http://rt.perl.org/rt3/Ticket/Display.html?id=30952
267 2.42 Wed Apr 28 22:13:11 CDT 2004
269 * prove -v now sets TEST_VERBOSE in case your tests rely on them.
270 * prove globs the command line, since Win32's shell doesn't.
273 * Cross-platform test fixes on t/prove-globbing.t
276 2.40 Tue Dec 30 20:38:59 CST 2003
278 * Test::Harness::Straps should now properly quote on VMS.
281 * prove now takes a -l option to add lib/ to @INC. Now when you're
282 building a module, you don't have to do a make before you run
283 the prove. Thanks to David Wheeler for the idea.
286 * Internal functions corestatus() and canonfailed() prepended with
287 underscores, to indicate such.
289 * Gratuitous text-only changes in Test::Harness::Iterator.
291 * All tests now do their use_ok() in a BEGIN block. Some of the
292 use_ok() calls were too much of a hassle to put into a BEGIN block,
293 so I changed them to regular use calls.
296 2.38 Mon Nov 24 22:36:18 CST 2003
297 Released. See changes below.
299 2.37_03 Tue Nov 18 23:51:38 CST 2003
301 * prove -V now shows the Perl version being used.
302 * Now there's a HARNESS_DEBUG flag that shows diagnostics as the
303 harness runs the tests. This is different from HARNESS_VERBOSE,
304 which shows test output, but not information about the harness
306 * Added _command_line() to the Strap API.
309 * Bad interaction with Module::Build: The strap was only checking
310 $ENV{HARNESS_PERL_SWITCHES} for definedness, but not emptiness.
311 It now also strips any leading or trailing whitesapce from the
313 * Test::Harness and prove only quote those parms that actually need
314 to be quoted: Have some whitespace and aren't already quoted.
316 2.36 Fri Nov 14 09:24:44 CST 2003
318 * t/prove-includes.t properly ignores PROVE_SWITCHES that you may
321 2.35_02 Thu Nov 13 09:57:36 CST 2003
323 * prove's --blib now works just like the blib pragma.
325 2.35_01 Wed Nov 12 23:08:45 CST 2003
327 * Fixed taint-handling and path preservation under MacOS. Thanks to
328 Schwern for the patch and the tests.
330 * Preserves case of -t or -T in the shebang line of the test.
333 * Added -t to prove analogous to Perl's -t. Removed the --taint
336 * prove can take default options from the PROVE_SWITCHES variable.
338 * Added HARNESS_PERL to allow you to specify the Perl interpreter
341 * prove's --perl switch sets the HARNESS_PERL on the fly for you.
343 * Quotes the switches and filename in the subprogram. This helps
344 with filenames with spaces that are subject to shell mangling.
347 2.34 Sat Nov 8 22:09:15 CST 2003
349 * Allowed prove to run on Perl versions < 5.6.0.
352 * Command-line switches to prove may now be stacked.
353 * Added check for proper Pod::Usage version.
354 * "make clean" does a better job of cleaning up after itself.
357 2.32 Fri Nov 7 09:41:21 CST 2003
358 Test::Harness now includes a powerful development tool to help
359 programmers work with automated tests. The prove utility runs
360 test files against the harness, like a "make test", but with many
363 * prove is designed as a development tool
364 Perl users typically run the test harness through a makefile via
365 "make test". That's fine for module distributions, but it's
366 suboptimal for a test/code/debug development cycle.
369 prove lets your run against only the files you want to check.
370 Running "prove t/live/ t/master.t" checks every *.t in t/live, plus
373 * prove has an easy verbose mode
374 To get full test program output from "make test", you must set
375 "HARNESS_VERBOSE" in the environment. prove has a "-v" option.
377 * prove can run under taint mode
378 prove's "-T" runs your tests under "perl -T".
380 * prove can shuffle tests
381 You can use prove's "--shuffle" option to try to excite problems
382 that don't show up when tests are run in the same order every time.
384 * Not everything is a module
385 More and more users are using Perl's testing tools outside the
386 context of a module distribution, and may not even use a makefile at
389 Prove requires Pod::Usage, which is standard after Perl 5.004.
391 I'm very excited about prove, and hope that developers will begin
392 adopting it to their coding cycles. I welcome your comments at
395 There are also some minor bug fixes in Test::Harness itself, listed
396 below in the 2.31_* notes.
399 2.31_05 Thu Nov 6 14:56:22 CST 2003
401 - If a MacPerl script had a shebang with -T, the -T wouldn't get
403 - Removed the -T on three *.t files, which didn't need them, and
404 which were causing problems.
405 - Conditionally installs bin/prove, depending on whether Pod::Usage
406 is available, which prove needs.
407 - Removed old leftover code from Makefile.PL.
409 2.31_04 Mon Nov 3 23:36:06 CST 2003
410 Minor tweaks here and there, almost ready to release.
412 2.31_03 Mon Nov 3 08:50:36 CST 2003
414 - prove is almost feature-complete. Removed the handling of
415 --exclude for excluding certain tests. It may go back in the
417 - prove -d is now debug. Dry is prove -D.
419 2.31_02 Fri Oct 31 23:46:03 CST 2003
421 - Added many more switches to prove: -d for dry run, and -b for
425 - T:H:Straps now recognizes MSWin32 in $^0.
426 - RT#3811: Could do regex matching on garbage in _is_test().
428 - RT#3827: Strips backslashes from and normalizes @INC entries
429 for Win32. Fixed by Yves Orton.
432 - Added $self->{_is_macos} to the T:H:Strap object.
433 - t/test-harness.t sorts its test results, rather than relying on
438 - Added "prove" script to run a test or set of tests through the
439 harness. Thanks to Curtis Poe for the foundation.
442 - Fixed POD problem in Test::Harness::Assert
444 2.30 Thu Aug 14 20:04:00 CDT 2003
445 No functional changes in this version. It's only to make some doc
446 tweaks, and bump up the version number in T:H:Straps.
449 - Changed Schwern to Andy as the maintainer.
450 - Incorporated the TODO file into Harness.pm proper.
451 - Cleaned up formatting in Test::Harness::Straps.
453 2.29 Wed Jul 17 14:08:00 CDT 2003
456 2.28_91 Sun Jul 13 00:10:00 CDT 2003
458 - Added support for HARNESS_OK_SLOW. This will make a significant
459 speedup for slower connections.
460 - Folded in some changes from bleadperl that spiff up the
464 - Added some isa_ok() checks to the tests.
465 - All Test::Harness* modules are used by use_ok()
466 - Fixed the prototype for the canonfailed() function, not that
467 it matters since it's never called without parens.
469 2.28_90 Sat Jul 05 20:21:00 CDT 2003
471 - Now, when you run a test harnessed, the numbers don't fly by one
472 at a time, one update per second. This significantly speeds
473 up the run time for running thousands of tests. *COUGH*
474 Regexp::Common *COUGH*
476 2.28 Thu Apr 24 14:39:00 CDT 2003
477 - No functional changes.
479 2.27_05 Mon Apr 21 15:55:00 CDT 2003
480 - No functional changes.
481 - Fixed circular depency in the test suite. Thanks, Rob Brown.
483 2.27_04 Sat Apr 12 21:42:00 CDT 2003
484 - Added test for $Test::Harness::Switches patch below.
486 2.27_03 Thu Apr 03 10:47:00 CDT 2003
487 - Fixed straps not respecting $Test::Harness::Switches. Thanks
488 to Miyagawa for the patch.
489 - Added t/pod.t to test POD validity.
491 2.27_02 Mon Mar 24 13:17:00 CDT 2003
492 2.27_01 Sun Mar 23 19:46:00 CDT 2003
493 - Handed over to Andy Lester for further maintenance.
494 - Fixed when the path to perl contains spaces on Windows
495 * Stas Bekman noticed that tests with no output at all were
496 interpreted as passing
497 - MacPerl test tweak for busted exit codes (bleadperl 17345)
498 - Abigail and Nick Clark both hit the 100000 "huge test that will
499 suck up all your memory" limit with legit tests. Made the check
500 smarter to allow large, planned tests to work.
501 - Partial fix of stats display when a test fails only because there's
503 - Made wait.ph and WCOREDUMP anti-vommit protection more robust in
504 cases where wait.ph loads but WCOREDUMP() pukes when run.
506 - Ilya noticed the per test skip reason was accumlating between tests.
508 2.26 Wed Jun 19 16:58:02 EDT 2002
509 - Workaround for MacPerl's lack of a working putenv. It will never
510 see the PERL5LIB environment variable (perl@16942).
512 2.25 Sun Jun 16 03:00:33 EDT 2002
513 - $Strap is now a global to allow Test::Harness::Straps
515 - Little spelling nit in a diagnostic.
516 - Chris Richmond noted that the runtests() docs were wrong. It will
517 die, not return false, when any tests fail. This is silly, but
518 historically necessary for 'make test'. Docs corrected.
519 - MacPerl test fixes from Pudge. (mutation of bleadperl@16989)
520 - Undef warning introduced in 2.24 on skipped tests with no reasons
522 * Test::Harness now depends on File::Spec
524 2.24 Wed May 29 19:02:18 EDT 2002
525 * Nikola Knezevic found a bug when tests are completely skipped
526 but no reason is given it was considered a failure.
527 * Made Test::Harness::Straps->analyze_file & Test::Harness a bit
528 more graceful when the test doesn't exist.
530 2.23 Wed May 22 12:59:47 EDT 2002
531 - reason for all skip wasn't being displayed. Broken in 2.20.
532 - Changed the wait status tests to conform with POSIX standards.
533 - Quieted some SYSTEM$ABORT noise leaking out from dying test tests
536 2.22 Fri May 17 19:01:35 EDT 2002
537 - Fixed parsing of #!/usr/bin/perl-current to not see a -t.
539 - Fixed exit codes on MPE/iX
541 2.21 Mon May 6 00:43:22 EDT 2002
542 - removed a bunch of dead code left over after 2.20's gutting.
543 - The fix for the $^X "bug" added in 2.02 has been removed. It
544 caused more trouble than the old bug (I'd never seen a problem
546 - 2.20 broke $verbose
548 2.20 Sat May 4 22:31:20 EDT 2002
549 * An almost complete conversion of the Test::Harness test parsing
550 to use Test::Harness::Straps.
552 2.04 Tue Apr 30 00:54:49 EDT 2002
553 * Changing the output format of skips
554 - Taking into account VMS's special exit codes in the tests.
556 2.03 Thu Apr 25 01:01:34 EDT 2002
557 * $^X fix made safer.
558 - Noise from loading wait.ph to analyze core files supressed
559 - MJD found a situation where a test could run Test::Harness
560 out of memory. Protecting against that specific case.
561 - Made the 1..M docs a bit clearer.
562 - Fixed TODO tests so Test::Harness does not display a NOK for
564 - Test::Harness::Straps->analyze_file() docs were not clear as to
567 2.02 Thu Mar 14 18:06:04 EST 2002
568 * Ken Williams fixed the long standing $^X bug.
569 * Added HARNESS_VERBOSE
570 * Fixed a bug where Test::Harness::Straps was considering a test that
571 is ok but died as passing.
572 - Added the exit and wait codes of the test to the
573 analyze_file() results.
575 2.01 Thu Dec 27 18:54:36 EST 2001
576 * Added 'passing' to the results to tell you if the test passed
577 * Added Test::Harness::Straps example (examples/mini_harness.plx)
578 * Header-at-end tests were being interpreted as failing sometimes
579 - The 'skip_all' results from analyze* was not being set
580 - analyze_fh() and analyze_file() now work more efficiently, reading
581 line-by-line instead of slurping as before.
583 2.00 Sun Dec 23 19:13:57 EST 2001
584 - Fixed a warning on VMS.
585 - Removed a little unnecessary code from analyze_file()
586 - Made sure filehandles are getting closed
587 - analyze() now considers "not \nok" to be a failure (VMSism)
588 but Test::Harness still doesn't.
590 2.00_05 Mon Dec 17 22:08:02 EST 2001
591 * Wasn't filtering @INC properly when a test is run with -T, caused the
592 command line to be too long on VMS. VMS should be 100% now.
593 - Little bug in the skip 'various reasons' logic.
594 - Minor POD nit in 5.004_04
595 - Little speling mistak
597 2.00_04 Sun Dec 16 00:33:32 EST 2001
598 * Major Test::Harness::Straps doc bug.
600 2.00_03 Sat Dec 15 23:52:17 EST 2001
601 * First release candidate
602 * 'summary' is now 'details'
603 * Test #1 is now element 0 on the details array. It works out better
605 * analyze_file() is more portable, but no longer taint clean
606 * analyze_file() properly preserves @INC and handles -T switches
607 - minor mistake in the test header line parsing
609 1.26 Mon Nov 12 15:44:01 EST 2001
610 * An excuse to upload a new version to CPAN to get Test::Harness
613 2.00_00 Sat Sep 29 00:12:03 EDT 2001
614 * Partial gutting of the internals
615 * Added Test::Harness::Straps
617 1.25 Tue Aug 7 08:51:09 EDT 2001
618 * Fixed a bug with tests failing if they're all skipped
619 reported by Stas Bekman.
620 - Fixed a very minor warning in 5.004_04
621 - Fixed displaying filenames not from @ARGV
622 - Merging with bleadperl
623 - minor fixes to the filename in the report
624 - '[no reason given]' skip reason
626 1.24 Tue Aug 7 08:51:09 EDT 2001
627 - Added internal information about number of todo tests
629 1.23 Tue Jul 31 15:06:47 EDT 2001
630 - Merged in Ilya's "various reasons" patch
631 * Fixed "not ok 23 - some name # TODO" style tests
633 1.22 Mon Jun 25 02:00:02 EDT 2001
634 * Fixed bug with failing tests using header at end.
635 - Documented how Test::Harness deals with garbage input
636 - Turned on test counter mismatch warning
638 1.21 Wed May 23 19:22:53 BST 2001
639 * No longer considered unstable. Merging back with the perl core.
640 - Fixed minor nit about the report summary
641 - Added docs on the meaning of the failure report
642 - Minor POD nits fixed mirroring perl change 9176
643 - TODO and SEE ALSO expanded
645 1.20 Wed Mar 14 23:09:20 GMT 2001 by Michael G Schwern *UNSTABLE*
646 * Fixed and tested with 5.004!
649 - Now uneffected by -l, $\ or $,
651 1.19 Sat Mar 10 00:43:29 GMT 2001 by Michael G Schwern *UNSTABLE*
652 - More internal reworking
653 * Removed use of experimental /(?>...)/ feature for backwards compat
654 * Removed use of open(my $fh, $file) for backwards compatibility
655 * Removed use of Tie::StdHandle in tests for backwards compat
656 * Added dire warning that this is unstable.
657 - Added some tests from the old CPAN release
659 1.18 Mon Mar 5 17:35:11 GMT 2001 by Michael G Schwern
660 * Under new management!
661 * Test::Harness is now being concurrently shipped on CPAN as well
663 - Switched "our" for "use vars" and moved the minimum version back
664 to 5.004. This may be optimistic.
667 *** Missing version history to be extracted from Perl changes ***
670 1.07 Fri Feb 23 1996 by Andreas Koenig
671 - Gisle sent me a documentation patch that showed me, that the
672 unless(/^#/) is unnessessary. Applied the patch and deleted the block
673 checking for "comment" lines. -- All lines are comment lines that do
674 not match /^1\.\.([0-9]+)/ or /^(not\s+)?ok\b/.
675 - Ilyaz request to print "ok (empty test case)" whenever we say 1..0
677 - Harness now doesn't abort anymore if we received confused test output,
680 1.05 Wed Jan 31 1996 by Andreas Koenig
681 - More updates on docu and introduced the liberality that the script
682 output may omit the test numbers.
684 1.03 Mon January 28 1996 by Andreas Koenig
685 - Added the statistics for subtests. Updated the documentation.
687 1.02 by Andreas Koenig
688 - This version reports a list of the tests that failed accompanied by
689 some trivial statistics. The older (unnumbered) version stopped
690 processing after the first failed test.
691 - Additionally it reports the exit status if there is one.