Standardized test incantations
[dbsrgits/DBM-Deep.git] / t / 38_data_sector_size.t
CommitLineData
e9b0b5f0 1##
2# DBM::Deep Test
3##
4use strict;
5use Test::More tests => 8;
6
7use t::common qw( new_fh );
8
45f047f8 9sub do_stuff {
10 my ($db) = @_;
11
12 $db->{foo}{bar} = [ 1 .. 3 ];
13}
14
15sub verify {
16 my ($db) = @_;
17
18 cmp_ok( $db->{foo}{bar}[2], '==', 3, "Correct value found" );
19}
20
e9b0b5f0 21use_ok( 'DBM::Deep' );
22
23my %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 {
45f047f8 39 my $db = DBM::Deep->new( file => $filename );
e9b0b5f0 40 verify( $db );
f1879fdc 41 $db->_get_self->_engine->storage->close( $db->_get_self );
e9b0b5f0 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 );
f1879fdc 61 $db->_get_self->_engine->storage->close( $db->_get_self );
e9b0b5f0 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 );
f1879fdc 81 $db->_get_self->_engine->storage->close( $db->_get_self );
e9b0b5f0 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 );
f1879fdc 101 $db->_get_self->_engine->storage->close( $db->_get_self );
e9b0b5f0 102 }
103}
104
105cmp_ok( $sizes{256}, '>', $sizes{128}, "Filesize for 256 > filesize for 128" );
106cmp_ok( $sizes{128}, '>', $sizes{64}, "Filesize for 128 > filesize for 64" );
107cmp_ok( $sizes{64}, '>', $sizes{32}, "Filesize for 64 > filesize for 32" );
108