1#!/usr/bin/perl -w
2
3use Fcntl;
4use MLDBM qw(SDBM_File Storable);
5use Data::Dumper;
6use strict;
7use Test::More tests => 9;
8
9plan skip_all => "Optional module (Storable) not installed"
10  unless eval {
11               require Storable;
12              };
13tie my %o, 'MLDBM', 'testmldbm', O_CREAT|O_RDWR, 0640 or die $!;
14
15my $c_scalar = 'c';
16my $c = [\$c_scalar];
17my $b = {};
18my $a = [1, $b, $c];
19$b->{a} = $a;
20$b->{b} = $a->[1];
21$b->{c} = $a->[2];
22@o{qw(a b c)} = ($a, $b, $c);
23$o{d} = "{once upon a time}";
24$o{e} = 1024;
25$o{f} = 1024.1024;
26
27my $compare_ok = &MLDBM::_compare([ @o{qw(a b c)} ], [ $a, $b, $c ]);
28ok($compare_ok);
29
30is($o{d},"{once upon a time}");
31is($o{e},1024);
32is($o{f},1024.1024);
33#print ( ? "ok 2\n" : "# |$o{d}|\nnot ok 2\n");
34#print ($o{e} == 1024 ? "ok 3\n" : "# |$o{e}|\nnot ok 3\n");
35#print ($o{f} eq 1024.1024 ? "ok 4\n" : "# |$o{f}|\nnot ok 4\n");
36
37# NEW TEST SEQUENCE
38untie %o;
39my $obj = tie %o, 'MLDBM', 'testmldbm', O_CREAT|O_RDWR, 0640 or die $!;
40$obj->DumpMeth('portable');
41
42$c = [\$c_scalar];
43$b = {};
44$a = [1, $b, $c];
45$b->{a} = $a;
46$b->{b} = $a->[1];
47$b->{c} = $a->[2];
48@o{qw(a b c)} = ($a, $b, $c);
49$o{d} = "{once upon a time}";
50$o{e} = 1024;
51$o{f} = 1024.1024;
52
53$compare_ok = &MLDBM::_compare([ @o{qw(a b c)} ], [ $a, $b, $c]);
54ok($compare_ok);
55
56is($o{d},"{once upon a time}");
57is($o{e},1024);
58is($o{f},1024.1024);
59#print ($o{d} eq "{once upon a time}" ? "ok 6\n" : "# |$o{d}|\nnot ok 6\n");
60#print ($o{e} == 1024 ? "ok 7\n" : "# |$o{e}|\nnot ok 7\n");
61#print ($o{f} eq 1024.1024 ? "ok 8\n" : "# |$o{f}|\nnot ok 8\n");
62
63my $d=[17];
64$o{g}=$d;
65$d='';
66is($o{g}->[0],17);
67