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