• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/db-4.8.30/perl/BerkeleyDB/t/
1#!./perl -w
2
3use strict ;
4
5use lib 't' ;
6use BerkeleyDB; 
7use util ;
8use Test::More ;
9
10BEGIN 
11{
12    eval { require Encode; };
13    
14    plan skip_all => "Encode is not available"
15        if $@;
16
17    plan tests => 8;
18
19    use_ok('charnames', qw{greek});
20}
21
22
23use charnames qw{greek};
24
25
26my $Dfile = "dbhash.tmp";
27unlink $Dfile;
28
29umask(0) ;
30
31{
32    # UTF8
33    #
34
35   #use warnings ;
36   use strict ;
37   my (%h, $db) ;
38   unlink $Dfile;
39
40   ok $db = tie %h, 'BerkeleyDB::Hash', 
41    		-Filename   => $Dfile, 
42	        -Flags      => DB_CREATE; 
43
44   $db->filter_fetch_key   (sub { $_ = Encode::decode_utf8($_) if defined $_ });
45   $db->filter_store_key   (sub { $_ = Encode::encode_utf8($_) if defined $_ });
46   $db->filter_fetch_value (sub { $_ = Encode::decode_utf8($_) if defined $_ });
47   $db->filter_store_value (sub { $_ = Encode::encode_utf8($_) if defined $_ });
48
49   $h{"\N{alpha}"} = "alpha";
50   $h{"gamma"} = "\N{gamma}";
51
52   is $h{"\N{alpha}"}, "alpha";
53   is $h{"gamma"}, "\N{gamma}";
54
55   undef $db ;
56   untie %h;
57
58   my %newH;
59   ok $db = tie %newH, 'BerkeleyDB::Hash', 
60    		-Filename   => $Dfile, 
61	        -Flags      => DB_CREATE; 
62
63   $newH{"fred"} = "joe" ;
64   is $newH{"fred"}, "joe";
65
66   is $newH{"gamma"}, "\xCE\xB3";
67   is $newH{"\xCE\xB1"}, "alpha";
68
69   undef $db ;
70   untie %newH;
71   unlink $Dfile;
72}
73