1#!./perl -w
2
3use strict ;
4
5use lib 't' ;
6use BerkeleyDB;
7use Test::More ;
8use util ;
9
10plan(skip_all => "this needs Berkeley DB 4.3.x or better\n" )
11    if $BerkeleyDB::db_version < 4.3;
12
13plan tests => 16;
14
15
16if (1)
17{
18    # -MsgFile with a filename
19    my $msgfile = "./msgfile" ;
20    my $home = "./fred" ;
21    ok my $lexD = new LexDir($home) ;
22    my $lex = new LexFile $msgfile ;
23    ok my $env = new BerkeleyDB::Env( -MsgFile => $msgfile,
24    				  -Flags => DB_CREATE,
25				  -Home   => $home) ;
26    $env->stat_print();
27    ok length readFile($msgfile) > 0;
28
29    undef $env ;
30}
31
32
33{
34    # -MsgFile with a filehandle
35    use IO::File ;
36    my $msgfile = "./msgfile" ;
37    my $home = "./fred" ;
38    ok my $lexD = new LexDir($home) ;
39    my $lex = new LexFile $msgfile ;
40    my $fh = new IO::File ">$msgfile" ;
41    ok my $env = new BerkeleyDB::Env( -MsgFile => $fh,
42    					  -Flags => DB_CREATE,
43					  -Home   => $home) ;
44    is $env->stat_print(), 0;
45    close $fh;
46    ok length readFile($msgfile) > 0;
47
48    undef $env ;
49}
50
51{
52    # -MsgFile with a filehandle
53    use IO::File ;
54    my $msgfile = "./msgfile" ;
55    my $home = "./fred" ;
56    ok my $lexD = new LexDir($home) ;
57    my $lex = new LexFile $msgfile ;
58    my $Dfile = "db.db";
59    my $lex1 = new LexFile $Dfile ;
60    my $fh = new IO::File ">$msgfile" ;
61    ok my $env = new BerkeleyDB::Env( -MsgFile => $fh,
62    					  -Flags => DB_CREATE|DB_INIT_MPOOL,
63					  -Home   => $home) ;
64    ok my $db = new BerkeleyDB::Btree -Filename => $Dfile,
65				    -Env      => $env,
66				    -Flags    => DB_CREATE ;
67    is $db->stat_print(), 0;
68    close $fh;
69    ok length readFile($msgfile) > 0;
70
71    undef $db;
72    undef $env ;
73}
74
75{
76    # txn_stat_print
77    use IO::File ;
78    my $msgfile = "./msgfile" ;
79    my $home = "./fred" ;
80    ok my $lexD = new LexDir($home) ;
81    my $lex = new LexFile $msgfile ;
82    my $fh = new IO::File ">$msgfile" ;
83    ok my $env = new BerkeleyDB::Env( -MsgFile => $fh,
84    					  -Flags => DB_CREATE|DB_INIT_TXN,
85					  -Home   => $home) ;
86    is $env->txn_stat_print(), 0
87        or diag "$BerkeleyDB::Error";
88    close $fh;
89    ok length readFile($msgfile) > 0;
90
91    undef $env ;
92}
93