Re: 00-load.t tool

2012-04-11 Thread Eric Wilhelm
# from Michael G Schwern
# on Wednesday 11 April 2012 11:06:

 What exactly makes you uneasy? Maybe there is a way to address that
 if you can be more specific.

Mostly that it's cramming yet more complexity into core test library
 for a fairly narrow use case and functionality that lives quite
 happily in its own module.  It's already difficult enough to keep
 stable.

To reverse it, why should it be in Test::More?  People don't like to
 have extra test dependencies is not accepted.

Looking at this a different way, instead of a library, make a distzilla 
extension (or whatever) which generates (and regenerates) a 00-load.t 
as per Ovid's earlier example.

The trouble with having it in a library is not just that you have a test 
dependency, but also that you have to add more complexity to the 
library (and then you have a test dependency on a newer version) 
whenever someone wants to do a complex thing.

Many modules in a distribution may not load unless $optional_dependency 
is satisfied.  But, it is good to precheck all of the modules in a 
distribution before starting tests (aside: did someone say prefork?) 
and helps to wrap this in some useful diagnostic + bail out.

I think something which embeds code in a 00-load.t, plus helps you 
maintain a list of modules by scanning lib/ would be a handy way to do 
that.  (Perhaps a list + hash to address the optional dependencies and 
each optional module has a subref to determine if it is enabled.)

One could argue that the functionality should be included in each test 
file to keep things orthogonal.  Such a one may find that there may be 
a way to require(./t/00-load.t) from each test file, but might also 
end up with a library and/or a hybrid with regenerative breaking 
(prefork.)

--Eric
-- 
But you can never get 3n from n, ever, and if you think you can, please
email me the stock ticker of your company so I can short it.
--Joel Spolsky
---
http://scratchcomputing.com
---


Re: 00-load.t tool

2012-04-11 Thread Buddy Burden
Guys,

 Looking at this a different way, instead of a library, make a distzilla
 extension (or whatever) which generates (and regenerates) a 00-load.t
 as per Ovid's earlier example.
 :
 :

This sounds like the best idea to me.


            -- Buddy