Hi
 
I am using perl-5.8.6 on EBCDIC platform and I encounter a test case(lib/DBM_Filter/t/encode.t) failing
 
The VerifyData sub routine expects the key as  'euro' where as on EBCDIC, I get the key as '/Ä>,'
can you explain me why this is happening?


use strict;
use warnings;
use Carp;
BEGIN
{

    eval { require Encode; };
    if ($@) {
        print "1..0 #  Skip: Encode is not available\n";
        exit 0;
    }
}


require "dbm_filter_util.pl";
# use charnames qw{greek};
use Test::More tests => 26;

BEGIN { use_ok('DBM_Filter') };
BEGIN { use_ok('SDBM_File') };
BEGIN { use_ok('Fcntl') };

unlink <Op_dbmx*>;
END { unlink <Op_dbmx*>; }

my %h1 = () ;
my $db1 = tie(%h1, 'SDBM_File','Op_dbmx', O_RDWR|O_CREAT, 0640) ;

eval { $db1->Filter_Push('encode' => 'iso-8859-16') };
is $@, '', "push an 'encode' filter (specify iso-8859-16)" ;
use charnames qw{:full};
StoreData(\%h1,
 { 
  'euro' => "\N{EURO SIGN}",                
 });


undef $db1;
{
    use warnings FATAL => 'untie';
    eval { untie %h1 };
    is $@, '', "untie without inner references" ;
}

# read the dbm file without the filter
my %h2 = () ;
my $db2 = tie(%h2, 'SDBM_File','Op_dbmx', O_RDWR|O_CREAT, 0640) ;

ok $db2, "tied to SDBM_File";

VerifyData(\%h2,
 {
  'euro' => "\xA4",     
 });

undef $db2;
{
    use warnings FATAL => 'untie';
    eval { untie %h2 };
    is $@, '', "untie without inner references" ;
}

 

 

Reply via email to