-$stderr = join '', @$stderr;
-unless ($success) {
- diag $stderr;
- diag "Failed to execute data file (error $err_code)";
- fail "Couldn't run test $_" for 1 .. $total + 1;
- exit $total + 1;
+{
+ my $code = do { local $/; <DATA> };
+ my @warns;
+ {
+ local $SIG{__WARN__} = sub { push @warns, join '', 'warn:', @_ };
+ eval "die qq{ok\\n}; $code";
+ is($@, "ok\n", 'DATA compiled fine');
+ }
+ my $left = 0;
+ my %res = map {
+ if (/"P(\d+)"/) {
+ $1 => $_
+ } else {
+ ++$left; ()
+ }
+ } @warns;
+ for (1 .. $tests) {
+ my $w = $res{$_};
+ if ($wrong{$_}) {
+ like($w, expect("P$_"), "$_ should warn");
+ } else {
+ is($w, undef, "$_ shouldn't warn");
+ }
+ }
+ is($left, 0, 'nothing left');