b0650abd76695becdc8b5a4c51e8c78275a3a9b5
[dbsrgits/DBM-Deep.git] / t / 13_setpack.t
1 ##
2 # DBM::Deep Test
3 ##
4 use strict;
5 use Test::More tests => 2;
6 use File::Temp qw( tempfile tempdir );
7
8 use_ok( 'DBM::Deep' );
9
10 my $dir = tempdir( CLEANUP => 1 );
11
12 my ($before, $after);
13
14 {
15     my ($fh, $filename) = tempfile( 'tmpXXXX', UNLINK => 1, DIR => $dir );
16     my $db = DBM::Deep->new(
17         file => $filename,
18         autoflush => 1
19     );
20     $db->{key1} = "value1";
21     $db->{key2} = "value2";
22     $before = (stat($db->_fh()))[7];
23 }
24
25 {
26     my ($fh, $filename) = tempfile( 'tmpXXXX', UNLINK => 1, DIR => $dir );
27     my $db = DBM::Deep->new(
28         file => $filename,
29         autoflush => 1
30     );
31
32     ##
33     # set pack to 2-byte (16-bit) words
34     ##
35     $db->_get_self->{engine}->set_pack( 2, 'S' );
36
37     $db->{key1} = "value1";
38     $db->{key2} = "value2";
39     $after = (stat($db->_fh()))[7];
40 }
41
42 ok( $after < $before, "The new packsize reduced the size of the file" );