Help language development. Donate to The Perl Foundation

IRC::Channel::Log cpan:ELIZABETH last updated on 2021-06-09

run-tests
say run(<raku --version>, :out).out.slurp.chomp;
say "Running on $*DISTRO.gist().\n";

say "Testing {"dist.ini".IO.lines.head.substr(7)}";

my @failed;
my $done   = 0;
for "t".IO.dir(:test(*.ends-with: '.t' | '.rakutest')).map(*.Str).sort {
    say "=== $_";
    my $proc = run "raku", "--ll-exception", "-Ilib", $_, :out, :err, :merge;
    if $proc {
        $proc.out.slurp;
    }
    else {
        @failed.push($_);
        if $proc.out.slurp -> $stdout {
            my @lines = $stdout.lines;
            with @lines.first(*.starts-with(" from gen/moar/stage2"),:k) -> $index {
                say @lines[^$index].join("\n");
            }
            else {
                say $stdout;
            }
        }
        elsif $proc.err -> $stderr {
            say .slurp with $stderr;
        }
        else {
            say "No output received, exit-code $proc.exitcode() ($proc.signal())";
        }
    }
    $done++;
}

if @failed {
    say "FAILED: {[email protected]} of $done:";
    say "  $_" for @failed;
    exit [email protected];
}

say "\nALL {"$done " if $done > 1}OK";

# vim: expandtab shiftwidth=4