test extras activation in v1 path
Graham Knop [Tue, 3 Nov 2015 23:11:50 +0000 (18:11 -0500)]
t/extras.t

index 474ad38..0423d40 100644 (file)
@@ -5,9 +5,7 @@ use Test::More $] >= 5.008_004 ? qw(no_plan)
   : (skip_all => 'Extra tests disabled on perls <= 5.008003');
 
 use File::Temp;
-
-my $tempdir = File::Temp::tempdir(CLEANUP => 1, TMPDIR => 1);
-chdir $tempdir;
+use Cwd 'cwd';
 
 my %extras;
 BEGIN {
@@ -27,100 +25,108 @@ sub indirect::unimport {
   $indirect++;
 };
 
-{
+my $cwd = cwd;
+for my $version ( 1, 2 ) {
+
+  my $tempdir = File::Temp::tempdir('strictures-XXXXXX', CLEANUP => 1, TMPDIR => 1);
+  chdir $tempdir;
+
   local $strictures::Smells_Like_VCS = undef;
   eval qq{
 #line 1 "t/nogit.t"
-use strictures;
+use strictures $version;
 1;
 } or die "$@";
-  ok defined $strictures::Smells_Like_VCS, 'VCS dir has been checked';
-  ok !$strictures::Smells_Like_VCS,        'VCS dir not detected with no .git';
-}
+  ok defined $strictures::Smells_Like_VCS, "VCS dir has been checked (v$version)";
+  ok !$strictures::Smells_Like_VCS,        "VCS dir not detected with no .git (v$version)";
 
-mkdir '.git';
+  mkdir '.git';
 
-{
-  local $strictures::Smells_Like_VCS = undef;
-  eval qq{
+  {
+    local $strictures::Smells_Like_VCS = undef;
+    eval qq{
 #line 1 "t/withgit.t"
-use strictures;
-1;
-} or die "$@";
-  ok defined $strictures::Smells_Like_VCS, 'VCS dir has been checked';
-  ok $strictures::Smells_Like_VCS,         'VCS dir detected with .git';
-}
+use strictures $version;
+  1;
+  } or die "$@";
+    ok defined $strictures::Smells_Like_VCS, "VCS dir has been checked (v$version)";
+    ok $strictures::Smells_Like_VCS,         "VCS dir detected with .git (v$version)";
+  }
 
-$strictures::Smells_Like_VCS = 1;
-
-for my $check (
-  ["file.pl"            => 0],
-  ["test.pl"            => 0],
-  ["library.pm"         => 0],
-  ["t/test.t"           => 1],
-  ["xt/test.t"          => 1],
-  ["t/one.faket"        => 1],
-  ["lib/module.pm"      => 1],
-  ["other/one.pl"       => 0],
-  ["other/t/test.t"     => 0],
-  ["blib/module.pm"     => 1],
-) {
-  my ($file, $want) = @$check;
-  $indirect = 0;
-  eval qq{
+  chdir $cwd;
+  rmdir $tempdir;
+
+  local $strictures::Smells_Like_VCS = 1;
+
+  for my $check (
+    ["file.pl"            => 0],
+    ["test.pl"            => 0],
+    ["library.pm"         => 0],
+    ["t/test.t"           => 1],
+    ["xt/test.t"          => 1],
+    ["t/one.faket"        => 1],
+    ["lib/module.pm"      => 1],
+    ["other/one.pl"       => 0],
+    ["other/t/test.t"     => 0],
+    ["blib/module.pm"     => 1],
+  ) {
+    my ($file, $want) = @$check;
+    $indirect = 0;
+    eval qq{
 #line 1 "$file"
-use strictures;
+use strictures $version;
 1;
-  } or die "$@";
-  my $not = $want ? '' : ' not';
-  is $indirect, $want,
-    "file named $file does$not get extras";
-}
-
-{
-  local $ENV{PERL_STRICTURES_EXTRA} = 1;
-  local %strictures::extra_load_states = ();
-  local @INC = (sub {
-    die "Can't locate $_[1] in \@INC (...).\n"
-      if $extras{$_[1]};
-  }, @INC);
-  local %INC = %INC;
-  delete $INC{$_}
-    for keys %extras;
+    } or die "$@";
+    my $not = $want ? '' : ' not';
+    is $indirect, $want,
+      "file named $file does$not get extras (v$version)";
+  }
 
   {
-    open my $fh, '>', \(my $str = '');
-    my $e;
+    local $ENV{PERL_STRICTURES_EXTRA} = 1;
+    local %strictures::extra_load_states = ();
+    local @INC = (sub {
+      die "Can't locate $_[1] in \@INC (...).\n"
+        if $extras{$_[1]};
+    }, @INC);
+    local %INC = %INC;
+    delete $INC{$_}
+      for keys %extras;
+
     {
-      local *STDERR = $fh;
-      eval qq{
+      open my $fh, '>', \(my $str = '');
+      my $e;
+      {
+        local *STDERR = $fh;
+        eval qq{
 #line 1 "t/load_fail.t"
-use strictures;
+use strictures $version;
 1;
-      } or $e = "$@";
-    }
-    die $e if defined $e;
+        } or $e = "$@";
+      }
+      die $e if defined $e;
 
-    like(
-      $str,
-      qr/Missing were:\n\n  indirect multidimensional bareword::filehandles/,
-      "failure to load all three extra deps is reported"
-    );
-  }
+      like(
+        $str,
+        qr/Missing were:\n\n  indirect multidimensional bareword::filehandles/,
+        "failure to load all three extra deps is reported (v$version)"
+      );
+    }
 
-  {
-    open my $fh, '>', \(my $str = '');
-    my $e;
     {
-      local *STDERR = $fh;
-      eval qq{
+      open my $fh, '>', \(my $str = '');
+      my $e;
+      {
+        local *STDERR = $fh;
+        eval qq{
 #line 1 "t/load_fail.t"
-use strictures;
+use strictures $version;
 1;
-      } or $e = "$@";
-    }
-    die $e if defined $e;
+        } or $e = "$@";
+      }
+      die $e if defined $e;
 
-    is $str, '', "extra dep load failure is not reported a second time";
+      is $str, '', "extra dep load failure is not reported a second time (v$version)";
+    }
   }
 }