=tests plan => 3

use File::Path qw/rmtree mkpath/;

my $tmp = 'ppptmp';

rmtree($tmp) if -d $tmp;
mkpath($tmp) or die "mkdir $tmp: $!\n";
chdir($tmp) or die "chdir $tmp: $!\n";

my $inc = '';
if ($ENV{'PERL_CORE'}) {
  $inc = '-I../../lib' if -d '../../lib';
}

END {
  chdir("..") if !-d $tmp && -d "../$tmp";
  rmtree($tmp);
}

ok(&Devel::PPPort::WriteFile("ppport.h"));

sub ppport
{
  my @args = shift;
  join '', `$^X $inc ppport.h @args`;
}

my @tests;

for (split /\s*={70,}\s*/, do { local $/; <DATA> }) {
  s/^\s+//; s/\s+$//;
  my($c, %f);
  ($c, @f{m/-{20,}\s+(\S+)\s+-{20,}/g}) = split /\s*-{20,}\s+\S+\s+-{20,}\s*/;
  push @tests, { code => $c, files => \%f };
}

my $t;
for $t (@tests) {
  my $f;
  for $f (keys %{$t->{files}}) {
    local *F;
    open F, ">$f" or die "open $f: $!\n";
    print F $t->{files}{$f} . "\n";
    close F;
  }

  eval $t->{code};

  unlink keys %{$t->{files}} or die "unlink: $!\n";
}

__DATA__

my $o = ppport('--help');
ok($o =~ /^Usage:/m);

---------------------------- test.xs ------------------------------------------

Perl_newSViv();

===============================================================================

ok(1);

---------------------------- test.xs ------------------------------------------

#include "ppport.h"

grok_bin();

