Merge cd5303b: RT# 50541: Fix for clear bug. Introduces a speed regression
[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,
45f047f8 30 fh => $fh,
e9b0b5f0 31 data_sector_size => 32,
32 );
33
34 do_stuff( $db );
35 }
36
37 $sizes{32} = -s $filename;
38
39 {
45f047f8 40 my $db = DBM::Deep->new( file => $filename );
e9b0b5f0 41 verify( $db );
f1879fdc 42 $db->_get_self->_engine->storage->close( $db->_get_self );
e9b0b5f0 43 }
44}
45
46{
47 my ($fh, $filename) = new_fh();
48 {
49 my $db = DBM::Deep->new(
50 file => $filename,
45f047f8 51 fh => $fh,
e9b0b5f0 52 data_sector_size => 64,
53 );
54
55 do_stuff( $db );
56 }
57
58 $sizes{64} = -s $filename;
59
60 {
61 my $db = DBM::Deep->new( $filename );
62 verify( $db );
f1879fdc 63 $db->_get_self->_engine->storage->close( $db->_get_self );
e9b0b5f0 64 }
65}
66
67{
68 my ($fh, $filename) = new_fh();
69 {
70 my $db = DBM::Deep->new(
71 file => $filename,
45f047f8 72 fh => $fh,
e9b0b5f0 73 data_sector_size => 128,
74 );
75
76 do_stuff( $db );
77 }
78
79 $sizes{128} = -s $filename;
80
81 {
82 my $db = DBM::Deep->new( $filename );
83 verify( $db );
f1879fdc 84 $db->_get_self->_engine->storage->close( $db->_get_self );
e9b0b5f0 85 }
86}
87
88{
89 my ($fh, $filename) = new_fh();
90 {
91 my $db = DBM::Deep->new(
92 file => $filename,
45f047f8 93 fh => $fh,
e9b0b5f0 94 data_sector_size => 256,
95 );
96
97 do_stuff( $db );
98 }
99
100 $sizes{256} = -s $filename;
101
102 {
103 my $db = DBM::Deep->new( $filename );
104 verify( $db );
f1879fdc 105 $db->_get_self->_engine->storage->close( $db->_get_self );
e9b0b5f0 106 }
107}
108
109cmp_ok( $sizes{256}, '>', $sizes{128}, "Filesize for 256 > filesize for 128" );
110cmp_ok( $sizes{128}, '>', $sizes{64}, "Filesize for 128 > filesize for 64" );
111cmp_ok( $sizes{64}, '>', $sizes{32}, "Filesize for 64 > filesize for 32" );
112