($case{stdout}{exact}, 'stdout_is') if $case{stdout}{exact};
$tc->stdout_isnt($case{stdout}{different}, 'stdout_isnt') if $case{stdout}{different};
$tc->stdout_like($case{stdout}{like}, 's
($case{stderr}{exact}, 'stderr_is') if $case{stderr}{exact};
$tc->stderr_isnt($case{stderr}{different}, 'stderr_isnt') if $case{stderr}{different};
$tc->stderr_like($case{stderr}{like}, 's
($case{merged}{exact}, 'merged_is') if $case{merged}{exact};
$tc->merged_isnt($case{merged}{different}, 'merged_isnt') if $case{merged}{different};
$tc->merged_like($case{merged}{like}, 'm
tc->in_time_ok
->timeout_is(0)
->timeout_isnt(2);
$tc->run(sleep => "sleep=10", -timeout => 1);
$tc->timed_out_ok
->timeout_is(1)
->timeout_isnt(2)
->timeout_isnt(0);
done_testing();
$tc->run(exit => 0);
$tc->signal_ok
->signal_is(0)
->signal_isnt(9);
$tc->run(exit => -9);
$tc->signal_failure_ok
->signal_is(9)
->signal_isnt(10)
->signal_isnt(0);
done_testing();
;
$tc->exit_code_ok
->exit_code_is(0)
->exit_code_isnt(1);
$tc->run(exit => 42);
$tc->exit_code_failure_ok
->exit_code_is(42)
->exit_code_isnt(1)
->exit_code_isnt(0);
done_testing();
_ok({stuff => 'blah'}, 'invoke with blah');
$tc->exit_code_ok
->exit_code_is(0)
->exit_code_isnt(1)
->signal_ok
->stderr_unlike(qr{.});
my $ftc = tc($sparring, qw{ <channel=stderr> <exit=