Skip to content

Commit e239f6e

Browse files
zoffixznetmoritz
authored andcommitted
Implement alternate ways to call subtest from Test.pm6 (#743)
* Implement alternate calling methods for `subtest` * Fix incorrect sub names in test * Add diag() on start of subtest This makes it easier to see where the subset starts in the output
1 parent 0ee8331 commit e239f6e

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

lib/Test.pm6

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,10 @@ sub skip-rest($reason = '<unknown>') is export {
290290
$time_before = nqp::time_n;
291291
}
292292

293-
sub subtest(&subtests, $desc = '') is export {
293+
multi sub subtest(Pair $what) is export { subtest($what.value,$what.key) }
294+
multi sub subtest($desc, &subtests) is export { subtest(&subtests,$desc) }
295+
multi sub subtest(&subtests, $desc = '') is export {
296+
diag($desc) if $desc;
294297
_push_vars();
295298
_init_vars();
296299
$indents ~= " ";

t/02-rakudo/02-new-is_approx.t

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ subtest {
2121
nok($ok, $message);
2222
}, "check behaviour of 'large' numbers";
2323

24-
# "normal" numbers
25-
subtest {
24+
# "normal" numbers; also test subtest(Desc, Code) multi
25+
subtest "check behaviour of 'normal' numbers", {
2626
my $eulers_constant = 2.71828182;
2727
my $not_quite_ec = 2.71828;
2828

@@ -36,10 +36,10 @@ subtest {
3636
todo $message;
3737
my $ok = is-approx($not_quite_ec, $eulers_constant, $message);
3838
nok($ok, $message);
39-
}, "check behaviour of 'normal' numbers";
39+
};
4040

41-
# "small" numbers
42-
subtest {
41+
# "small" numbers; also test subtest(Pair[desc,code]) multi
42+
subtest "check behaviour of 'small' numbers" => {
4343
my $plancks_constant = 6.62609657e-34;
4444
my $not_quite_pc = 6.62609e-34;
4545

@@ -72,15 +72,15 @@ subtest {
7272
todo $message;
7373
$ok = is-approx($not_quite_pc, $plancks_constant, 1e-7, $message);
7474
nok($ok, $message);
75-
}, "check behaviour of 'small' numbers";
75+
};
7676

7777
# check tolerance input
7878
subtest {
7979
my $message = "should fail; cannot use negative tolerance values";
80-
dies_ok { is-approx(1, 1, -1, $message) }, $message;
80+
dies-ok { is-approx(1, 1, -1, $message) }, $message;
8181

8282
$message = "should fail; cannot use a zero tolerance value";
83-
dies_ok { is-approx(1, 1, 0, $message) }, $message;
83+
dies-ok { is-approx(1, 1, 0, $message) }, $message;
8484
}, "check tolerance input";
8585

8686
# expected value is zero

0 commit comments

Comments
 (0)