#! /usr/bin/env perl
use strict;
use warnings;

use Getopt::Long;

GetOptions(
    'backend=s' => \my $backend,
);

if ($backend) {
    if ($backend =~ /^(jvm|moar)/i) {
        $backend = lc $1;
    }
    else {
        die "Unsupported backed '$backend'. Known backends: jvm, moar\n";
    }
}
else {
    my $version = `./perl6 --version`;
    $backend = ($version =~ /jvm/i) ? "jvm" : 'moar';
}

my $impl = "rakudo.$backend";

my @OPTS = ('--keep-exit-code', $impl);

if (@ARGV) {
    my $file = $ARGV[0];
    if (! -e $file) {
        my $spec = "t/spec/$file";
        if (-e $spec) {
            $ARGV[0] = $spec;
        }
    }
}

my $nt = `t/spec/fudge @OPTS @ARGV`;
# uninstalled rakudo doesn't know how to find Test.pm
# ... or any other modules
my $pwd = `pwd`; chomp $pwd;
$ENV{PERL6LIB}="$pwd/lib:.";
my $first = substr($backend, 0, 1);
system("./perl6-$first", split ' ', $nt);
