Checking in breakout of the various packages in DBM::Deep::Engine and documentation...
[dbsrgits/DBM-Deep.git] / t / 13_setpack.t
CommitLineData
ffed8b01 1##
2# DBM::Deep Test
3##
4use strict;
2120a181 5use Config;
6use Test::More tests => 10;
fde3db1a 7use t::common qw( new_fh );
ffed8b01 8
9use_ok( 'DBM::Deep' );
10
2120a181 11my ($default, $small, $medium, $large);
ffed8b01 12
251dfd0e 13{
fde3db1a 14 my ($fh, $filename) = new_fh();
251dfd0e 15 my $db = DBM::Deep->new(
2a81bf9e 16 file => $filename,
e0098e7f 17 autoflush => 1,
251dfd0e 18 );
19 $db->{key1} = "value1";
20 $db->{key2} = "value2";
6e6789b0 21 $default = (stat($filename))[7];
2120a181 22}
23
24{
25 my ($fh, $filename) = new_fh();
26 {
27 my $db = DBM::Deep->new(
28 file => $filename,
29 autoflush => 1,
30 pack_size => 'medium',
31 );
32
33 $db->{key1} = "value1";
34 $db->{key2} = "value2";
6e6789b0 35 $medium = (stat($filename))[7];
2120a181 36 }
37
38 # This tests the header to verify that the pack_size is really there
39 {
40 my $db = DBM::Deep->new(
41 file => $filename,
42 );
43
44 is( $db->{key1}, 'value1', 'Can read key1' );
45 is( $db->{key2}, 'value2', 'Can read key2' );
46 }
47
48 cmp_ok( $medium, '==', $default, "The default is medium" );
251dfd0e 49}
50
51{
fde3db1a 52 my ($fh, $filename) = new_fh();
9b2370e0 53 {
54 my $db = DBM::Deep->new(
55 file => $filename,
56 autoflush => 1,
57 pack_size => 'small',
58 );
251dfd0e 59
9b2370e0 60 $db->{key1} = "value1";
61 $db->{key2} = "value2";
6e6789b0 62 $small = (stat($filename))[7];
9b2370e0 63 }
64
65 # This tests the header to verify that the pack_size is really there
66 {
67 my $db = DBM::Deep->new(
68 file => $filename,
69 );
70
71 is( $db->{key1}, 'value1', 'Can read key1' );
72 is( $db->{key2}, 'value2', 'Can read key2' );
73 }
2120a181 74
75 cmp_ok( $medium, '>', $small, "medium is greater than small" );
251dfd0e 76}
ffed8b01 77
2120a181 78SKIP: {
40df5605 79 eval "pack('Q', 0);";
2120a181 80 skip "Largefile support is not compiled into $^X", 3
40df5605 81 if $@;
2120a181 82
83 my ($fh, $filename) = new_fh();
84 {
85 my $db = DBM::Deep->new(
86 file => $filename,
87 autoflush => 1,
88 pack_size => 'large',
89 );
90
91 $db->{key1} = "value1";
92 $db->{key2} = "value2";
6e6789b0 93 $large = (stat($filename))[7];
2120a181 94 }
95
96 # This tests the header to verify that the pack_size is really there
97 {
98 my $db = DBM::Deep->new(
99 file => $filename,
100 );
101
102 is( $db->{key1}, 'value1', 'Can read key1' );
103 is( $db->{key2}, 'value2', 'Can read key2' );
104 }
105 cmp_ok( $medium, '<', $large, "medium is smaller than large" );
106}