The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/pugs

use v6;
use Test;
use Test::Pil;

# Bootstrap.pil is already loaded now
#my $BOOTSTRAP = slurp('src/PIL/Native/Bootstrap.pil');

sub pil_output( Str $code, Str $optional_args? ) returns Str {
  my $tempfilename = "pil_test_" ~ $Test::num_of_tests_run;
  my $codefh = open( $tempfilename , :w);
  $codefh.print($code);
#  $codefh.print($BOOTSTRAP ~ "\n\n" ~ $code);
  $codefh.close();
  my $pilfh = Pipe::open("./pil $optional_args $tempfilename", :r);
  my $pilresult = $pilfh.readline();
  $pilfh.close();
  unlink($tempfilename);
  return $pilresult;
}

sub pil_is_ok( Str $code, Str $description? ) returns Bool {
  my $pilresult = pil_output( $code );
  ok( chomp($pilresult) ne 'nil', $description );
}

sub pil_is_eq( Str $code, Str $expected, Str $description? ) returns Bool {
  my $pilresult = pil_output( $code );
  is( chomp($pilresult), chomp($expected), $description );
}

sub pil_parsed_is_eq( Str $code, Str $expected, Str $description? ) returns Bool {
  my $pilresult = pil_output( $code, "-P");
  is( chomp($pilresult), chomp($expected), $description );
}