The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Test::Bomb - a test which succeeds until a deadline passes ( a time bomb )

VERSION

version 0.007

SYNOPSIS

use this test to ignore part of your system until a deadline passes. After the deadline the test will fail unless you replace it. I use it for large projects where I want to forget about some subsystems until after other parts are done.

usage( in a test script ):

    bomb -after => 'Jan 31 2011';

before Jan 31 prints:

    ok 1 - bomb after Jan 31 2011

after deadline prints

    nok 1 - deadline passed

using bomb groups:

    bomb -with => 'pluginSystem' ;

looks for 'pluginSystem' in the config file and uses the date assigned there to exire the test.

NAME

Test::Bomb

NOTE

this is a development tool. if you release code that uses this test I expect you will have some very upset users.

Global variables

@configFiles

this is a list of filenames where the test will look to find bomb groups. File format is:

name=date

all whitespace is ignored. everything on the matching line is used for the test. Non-matching lines are ignored.

The first file found is used, the first file checked is the environment variable TESTBOMBCONFIG followed by [.]tbc and [.]testbombconfig in various places

%groups

This variable allow groups to be assigned programatically. Just assign hash element for the name of the group like this:

$Test::Bomb::group{DateCalculations} = 'Jan 1, 2000'; # RIP Y2K :)

Probably inside some module included by each test script so that they all get the same date;

TODO

  1. find more ways to check to see if the user is building a release. if that is the case then fail.

EXPORT

bomb is automatically exported; if you don't want to use the function why did you use the package?

SUBROUTINES/METHODS

bomb -after => 'date to expire'

acts like a test; errors cause test failure

readConfig

look for a group name in a config file

checkDate dateStr

compare the expiration date with today

releasing

check for various signs of project release so we can fail if a release is being generated ( perhaps there should be a way to override this for testing purposes.. )

NOTE: any flags added here need to be undone at the top of the test script; otherwise every test will fail when distributing this package

AUTHOR

David Delikat, <david-delikat at usa.net>

BUGS

Please report any bugs or feature requests to bug-test-bomb at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=test-bomb. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Test::Bomb

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

Copyright 2011 David Delikat.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

AUTHOR

David Delikat <david-delikat@usa.net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by David Delikat.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.