Make tests work with detached git dir
authorDennis Kaarsemaker <dennis@kaarsemaker.net>
Sun, 10 Nov 2013 22:17:38 +0000 (23:17 +0100)
committerTony Cook <tony@develop-help.com>
Mon, 16 Dec 2013 04:25:22 +0000 (15:25 +1100)
In my jenkins replacement, I run all tests with .git outside the work tree,
pointed to by $GIT_DIR. This is fairly common git practice, so let's make the
testsuite support this and run the relevant porting tests that are skipped
without this patch.

Porting/cmpVERSION.pl
t/test.pl

index eaf9415..19ad52a 100755 (executable)
@@ -32,7 +32,7 @@ unless (GetOptions('diffs' => \$diffs,
 die "$0: This does not look like a Perl directory\n"
     unless -f "perl.h" && -d "Porting";
 die "$0: 'This is a Perl directory but does not look like Git working directory\n"
-    unless -d ".git";
+    unless (-d ".git" || (exists $ENV{GIT_DIR} && -d $ENV{GIT_DIR}));
 
 my $null = devnull();
 
index 5b1ee18..fcab07a 100644 (file)
--- a/t/test.pl
+++ b/t/test.pl
@@ -176,6 +176,13 @@ sub find_git_or_skip {
            }
            $source_dir = $where;
        }
+    } elsif (exists $ENV{GIT_DIR}) {
+       my $commit = '8d063cd8450e59ea1c611a2f4f5a21059a2804f1';
+       my $out = `git rev-parse --verify --quiet '$commit^{commit}'`;
+       chomp $out;
+       if($out eq $commit) {
+           $source_dir = '.'
+       }
     }
     if ($source_dir) {
        my $version_string = `git --version`;