Standardized test incantations
[dbsrgits/DBM-Deep.git] / t / 38_data_sector_size.t
1 ##
2 # DBM::Deep Test
3 ##
4 use strict;
5 use Test::More tests => 8;
6
7 use t::common qw( new_fh );
8
9 sub do_stuff {
10     my ($db) = @_;
11
12     $db->{foo}{bar} = [ 1 .. 3 ];
13 }
14
15 sub verify {
16     my ($db) = @_;
17
18     cmp_ok( $db->{foo}{bar}[2], '==', 3, "Correct value found" );
19 }
20
21 use_ok( 'DBM::Deep' );
22
23 my %sizes;
24
25 {
26     my ($fh, $filename) = new_fh();
27     {
28         my $db = DBM::Deep->new(
29             file => $filename,
30             data_sector_size => 32,
31         );
32
33         do_stuff( $db );
34     }
35
36     $sizes{32} = -s $filename;
37
38     {
39         my $db = DBM::Deep->new( file => $filename );
40         verify( $db );
41         $db->_get_self->_engine->storage->close( $db->_get_self );
42     }
43 }
44
45 {
46     my ($fh, $filename) = new_fh();
47     {
48         my $db = DBM::Deep->new(
49             file => $filename,
50             data_sector_size => 64,
51         );
52
53         do_stuff( $db );
54     }
55
56     $sizes{64} = -s $filename;
57
58     {
59         my $db = DBM::Deep->new( $filename );
60         verify( $db );
61          $db->_get_self->_engine->storage->close( $db->_get_self );
62     }
63 }
64
65 {
66     my ($fh, $filename) = new_fh();
67     {
68         my $db = DBM::Deep->new(
69             file => $filename,
70             data_sector_size => 128,
71         );
72
73         do_stuff( $db );
74     }
75
76     $sizes{128} = -s $filename;
77
78     {
79         my $db = DBM::Deep->new( $filename );
80         verify( $db );
81          $db->_get_self->_engine->storage->close( $db->_get_self );
82     }
83 }
84
85 {
86     my ($fh, $filename) = new_fh();
87     {
88         my $db = DBM::Deep->new(
89             file => $filename,
90             data_sector_size => 256,
91         );
92
93         do_stuff( $db );
94     }
95
96     $sizes{256} = -s $filename;
97
98     {
99         my $db = DBM::Deep->new( $filename );
100         verify( $db );
101          $db->_get_self->_engine->storage->close( $db->_get_self );
102     }
103 }
104
105 cmp_ok( $sizes{256}, '>', $sizes{128}, "Filesize for 256 > filesize for 128" );
106 cmp_ok( $sizes{128}, '>', $sizes{64}, "Filesize for 128 > filesize for 64" );
107 cmp_ok( $sizes{64}, '>', $sizes{32}, "Filesize for 64 > filesize for 32" );
108