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