summaryrefslogtreecommitdiff
path: root/t/maint/php-lint.t
blob: 6687a089405be2856f23a351edad5f684fd895b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env perl
#
# Based on php-tag.t and eol-style
#
use strict;
use warnings;

use Test::More;
use File::Find;
use IPC::Open3;
use File::Spec;
use Symbol qw(gensym);

my $ext = qr/(?: php | inc )/x;
my @files;

find( sub { push @files, $File::Find::name if -f && /\. $ext $/x }, '.' );

plan tests => scalar @files ;

for my $file (@files) {
	open NULL, '+>', File::Spec->devnull and \*NULL or die;
	my $pid = open3('<&NULL', \*P, '>&NULL', qw'php -l', $file);
	my $res = do { local $/; <P> . "" };
	chomp $res;
	waitpid $pid, 0;

	if ( $? == 0 ) {
		pass($file);
	} else {
		fail("$file does not pass php -l. Error was: $res");
	}
}