On Monday 11 November 2002 14:40, Michael G Schwern wrote:
> > We *could* add a method called really_create_a_new_builder() that doesn't
> > have the singleton properties, but what problem does that solve? As long
> > as we're stuck with test numbers, we have to try not to confuse
> > Test::Harness.
> Little known fact: test numbers are optional.
With the mandatory Test::Harness upgrade, yes. My point is that mixing
Test::Builder outputs is bad juju:
ok 1
ok 2
ok
ok 3
ok 1
ok 2
ok
ok 4
Maybe "stuck with" isn't the right phrase, but the conservative in me says
"test numbers will be around for a while." Plus, I *like* them as a final
sanity check.
> I know people have grumbled before about there being no way around the
> singleton property, I just can't remember why. I'm doing that a lot
> lately. Maybe I should check my hospital receipt, make sure all they took
> out was my appendix. What's this scar on the back of my head...?
And why are you beeping?
> Ok, here's one from me.
>
> It would make Test::Builder easier to test itself for one. There's lots of
> T::B tests which deliberately throw it off into some bizarre state or cause
> lots of failures. These results must be pipped off somewhere and analyzed
> seperately. For those tests, we're back to using a hand-rolled ok()
> function.
>
> With two T::B objects, we could beat on one object while leaving another in
> a normal state to perform the tests.
Simplifying the tests there is a *good* reason. They scare me.
I suppose we could also log only certain kinds of tests, too. That might make
some of my fiendish plans easier. (Log only can_ok(), in this T::B object.)
Maybe we're too coarsely grained on the singletonness. It's only the test
counters and outputs that really need to be single, right? We could make
Test::Builder::Counter and Test::Builder::Output as singletons and let
Test::Builder use those by default. For the tests, we could mock them or
override them, or whatever we find necessary.
Serious suggestion.
> The real reason why I put all the data into lexicals rather than a hash is
> because its easier to type $Have_Plan than $self->{Have_Plan}.
Hmm, perhaps a source filter that allows:
.$Have_Plan
It's only one character longer...
-- c