make hints test immune to perl -M options
[p5sagit/Eval-WithLexicals.git] / t / hints.t
index f5681b3..88bbec3 100644 (file)
--- a/t/hints.t
+++ b/t/hints.t
@@ -1,15 +1,10 @@
 use strictures ();
-my $strictures_hints;
-BEGIN {
-  local $ENV{PERL_STRICTURES_EXTRA} = 0;
-  strictures->VERSION(1); strictures->import();
-  # Find the hint value that 'use strictures 1' sets on this perl.
-  $strictures_hints = $^H;
-}
-use strictures 1;
-
 use Test::More;
 use Eval::WithLexicals;
+use lib 't/lib';
+
+use strictures 1;
+use get_strictures_hints qw($strictures_hints $strictures_warn);
 
 my $eval = Eval::WithLexicals->with_plugins("HintPersistence")->new(prelude => '');
 
@@ -33,24 +28,29 @@ $eval->eval('use strictures 1');
   like $@, qr/requires explicit package/, 'Correct message in $@';
 }
 
-is_deeply(
-  $eval->hints->{q{$^H}}, \$strictures_hints,
+is(
+  ${$eval->hints->{q{$^H}}}, $strictures_hints,
  'Hints are set per strictures'
 );
 
+is(
+  (unpack "H*", ${$eval->hints->{q{${^WARNING_BITS}}}}),
+  (unpack "H*", $strictures_warn),
+  'Warning bits are set per strictures'
+);
+
 is_deeply(
   $eval->lexicals, { },
   'Lexical not stored'
 );
 
 # Assumption about perl internals: sort pragma will set a key in %^H.
-
-$eval->eval(q{ { use sort 'stable' } }),
-ok !exists $eval->hints->{q{%^H}}->{sort},
+$eval->eval(q{ { use hint_hash_pragma 'param' } }),
+ok !exists $eval->hints->{q{%^H}}->{hint_hash_pragma},
   "Lexical pragma used below main scope not captured";
 
-$eval->eval(q{ use sort 'stable' }),
-ok exists $eval->hints->{q{%^H}}->{sort},
+$eval->eval(q{ use hint_hash_pragma 'param' }),
+is $eval->hints->{q{%^H}}->{hint_hash_pragma}, 'param',
   "Lexical pragma captured";
 
 done_testing;