backtick version broke on file names with shell metachars (like spaces); rewrite...
authorIlmari Karonen <vyznev@users.mediawiki.org>
Sat, 27 Jan 2007 15:37:02 +0000 (15:37 +0000)
committerIlmari Karonen <vyznev@users.mediawiki.org>
Sat, 27 Jan 2007 15:37:02 +0000 (15:37 +0000)
t/maint/eol-style.t

index eb5be1b..d877a26 100644 (file)
@@ -7,6 +7,9 @@ use warnings;
 
 use Test::More;
 use File::Find;
+use IPC::Open3;
+use File::Spec;
+use Symbol qw(gensym);
 
 my $ext = qr/(?: php | inc | txt | sql | t)/x;
 my @files;
@@ -16,15 +19,17 @@ find( sub { push @files, $File::Find::name if -f && /\. $ext $/x }, '.' );
 plan tests => scalar @files ;
 
 for my $file (@files) {
-       my $res = `svn propget svn:eol-style $file 2>&1` ;
+       open NULL, '+>', File::Spec->devnull and \*NULL or die;
+       my $pid = open3('<&NULL', \*P, '>&NULL', qw'svn propget svn:eol-style', $file);
+       my $res = do { local $/; <P> . "" };
+       chomp $res;
+       waitpid $pid, 0;
 
-       if( $res =~ 'native' ) {
+       if ( $? != 0 ) {
+               ok 1 => "svn propget failed, $file probably not under version control";
+       } elsif ( $res eq 'native' ) {
                ok 1 => "$file svn:eol-style is 'native'";
-       } elsif( $res =~ substr( $file, 2 ) ) {
-               # not under version control
-               ok 1 => "File not under version control";
-               next;
        } else {
-               ok 0 => "svn:eol-style not native $file";
+               ok 0 => "$file svn:eol-style is '$res', should be 'native'";
        }
 }