Okay, I'm trying to think of a better way to implement skip than
what's currently the plan in Test::More (look at the man page to see
what the idea is). As an example, I'm looking at the Test::HiRes
tests, since it does a lot skipping. So the question is, how do you
make this:
if (!$have_ualarm) {
skip 12..13;
}
else {
my $tick = 0;
local $SIG{ALRM} = sub { $tick++ };
my $one = time; $tick = 0; ualarm(10_000); sleep until $tick;
my $two = time; $tick = 0; ualarm(10_000); sleep until $tick;
my $three = time;
ok 12, $one == $two || $two == $three, "slept too long, $one $two $three";
$tick = 0;
ualarm(10_000, 10_000);
sleep until $tick >= 3;
ok 13, 1;
ualarm(0);
}
Simpler to write? Do you bother, is it already simple enough? With
the current Test::More interface it would turn into this:
skip {
my $tick = 0;
local $SIG{ALRM} = sub { $tick++ };
my $one = time; $tick = 0; ualarm(10_000); sleep until $tick;
my $two = time; $tick = 0; ualarm(10_000); sleep until $tick;
my $three = time;
ok $one == $two || $two == $three, "slept too long, $one $two $three";
$tick = 0;
ualarm(10_000, 10_000);
sleep until $tick >= 3;
pass;
ualarm(0);
} 2, "Don't have ualarm", !$have_ualarm;
I dunno, is it worth the effort?
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/
Perl6 Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One
Death follows me like a wee followey thing.
-- Quakeman