]> git.vpit.fr Git - perl/modules/Lexical-Types.git/blobdiff - t/22-magic.t
Port module loading in magic tests to VPIT::TestHelpers
[perl/modules/Lexical-Types.git] / t / 22-magic.t
index d4212534ebf0343a7522e2f23b850676b466943e..cc8e497b30892328dd65509421cf6f0c6c9323b6 100644 (file)
@@ -5,15 +5,17 @@ use warnings;
 
 use Test::More;
 
+use lib 't/lib';
+use VPIT::TestHelpers;
+
 BEGIN {
- plan skip_all => 'Variable::Magic required to test magic'
-                                      unless eval "use Variable::Magic 0.31; 1";
+ load_or_skip('Variable::Magic', undef, [ ], 'required to test magic');
 }
 
 {
  package Lexical::Types::Test::Str;
 
- use Variable::Magic qw/wizard cast/;
+ use Variable::Magic qw<wizard cast>;
 
  our $wiz;
  BEGIN {
@@ -28,7 +30,7 @@ BEGIN {
 { package Str; }
 
 BEGIN {
- plan tests => 2 * 6;
+ plan tests => 2 * 8;
 }
 
 use Lexical::Types as => 'Lexical::Types::Test';
@@ -39,7 +41,8 @@ sub check (&$$;$) {
  my $want = wantarray;
  my @ret;
  {
-  local @{$got}{qw/get set/}; delete @{$got}{qw/get set/};
+  local @{$got}{qw<get set>};
+  delete @{$got}{qw<get set>};
   if ($want) {
    @ret = eval { $test->() };
   } elsif (defined $want) {
@@ -47,11 +50,18 @@ sub check (&$$;$) {
   } else {
    eval { $test->() };
   }
+  local $Test::Builder::Level = $Test::Builder::Level + 1;
   is_deeply $got, $exp, $desc;
  }
  return $want ? @ret : $ret[0];
 }
 
+sub zzz {
+ my $d = Variable::Magic::getdata($_[0], $Lexical::Types::Test::Str::wiz);
+ isnt $d,    undef,  'typed lexicals are tagged';
+ is ref($d), 'HASH', 'typed lexicals are correctly tagged';
+}
+
 for (1 .. 2) {
  my Str $x = "abc";
 
@@ -64,4 +74,6 @@ for (1 .. 2) {
  my Str $z;
  check { $z = "bar" . $x } $z, { set => 1 }, 'scalar assign';
  is $z, 'barabcfoo', 'scalar assign correctly';
+
+ zzz($z);
 }