Blame t/07magic.t

Packit 8df772
# $Id: 07magic.t,v 1.8 2007/04/20 05:40:48 ray Exp $
Packit 8df772
Packit 8df772
use strict;
Packit 8df772
Packit 8df772
use Clone;
Packit 8df772
use Test::More tests => 3;
Packit 8df772
Packit 8df772
SKIP: {
Packit 8df772
  eval "use Data::Dumper";
Packit 8df772
  skip "Data::Dumper not installed", 1 if $@;
Packit 8df772
Packit 8df772
  SKIP: {
Packit 8df772
    eval "use Scalar::Util qw( weaken )";
Packit 8df772
    skip "Scalar::Util not installed", 1 if $@;
Packit 8df772
  
Packit 8df772
    my $x = { a => "worked\n" }; 
Packit 8df772
    my $y = $x;
Packit 8df772
    weaken($y);
Packit 8df772
    my $z = Clone::clone($x);
Packit 8df772
    ok( Dumper($x) eq Dumper($z), "Cloned weak reference");
Packit 8df772
  }
Packit 8df772
Packit 8df772
  ## RT 21859: Clone segfault (isolated example)
Packit 8df772
  SKIP: {
Packit 8df772
    my $string = "HDDR-WD-250JS";
Packit 8df772
    eval {
Packit 8df772
      use utf8;
Packit 8df772
      utf8::upgrade($string);
Packit 8df772
    };
Packit 8df772
    skip $@, 1 if $@;
Packit 8df772
    $string = sprintf ('<<bg_color=%s>>%s<</bg_color>>%s',
Packit 8df772
          '#EA0',
Packit 8df772
          substr ($string, 0, 4),
Packit 8df772
          substr ($string, 4),
Packit 8df772
        );
Packit 8df772
    my $z = Clone::clone($string);
Packit 8df772
    ok( Dumper($string) eq Dumper($z), "Cloned magic utf8");
Packit 8df772
  }
Packit 8df772
}
Packit 8df772
Packit 8df772
SKIP: {
Packit 8df772
  eval "use Taint::Runtime qw(enable taint_env)";
Packit 8df772
  skip "Taint::Runtime not installed", 1 if $@;
Packit 8df772
  taint_env();
Packit 8df772
  my $x = "";
Packit 8df772
  for (keys %ENV)
Packit 8df772
  {
Packit 8df772
    $x = $ENV{$_};
Packit 8df772
    last if ( $x && length($x) > 0 );
Packit 8df772
  }
Packit 8df772
  my $y = Clone::clone($x);
Packit 8df772
  ## ok(Clone::clone($tainted), "Tainted input");
Packit 8df772
  ok( Dumper($x) eq Dumper($y), "Tainted input");
Packit 8df772
}
Packit 8df772