32 lines
725 B
Raku
Executable file
32 lines
725 B
Raku
Executable file
sub check_alarm {
|
|
my ($iterations) = @_;
|
|
our ($test);
|
|
|
|
@output = read_text_file ("$test.output");
|
|
common_checks ("run", @output);
|
|
|
|
my (@products);
|
|
for (my ($i) = 0; $i < $iterations; $i++) {
|
|
for (my ($t) = 0; $t < 5; $t++) {
|
|
push (@products, ($i + 1) * ($t + 1) * 10);
|
|
}
|
|
}
|
|
@products = sort {$a <=> $b} @products;
|
|
|
|
local ($_);
|
|
foreach (@output) {
|
|
fail $_ if /out of order/i;
|
|
|
|
my ($p) = /product=(\d+)$/;
|
|
next if !defined $p;
|
|
|
|
my ($q) = shift (@products);
|
|
fail "Too many wakeups.\n" if !defined $q;
|
|
fail "Out of order wakeups ($p vs. $q).\n" if $p != $q; # FIXME
|
|
}
|
|
fail scalar (@products) . " fewer wakeups than expected.\n"
|
|
if @products != 0;
|
|
pass;
|
|
}
|
|
|
|
1;
|