Commit | Line | Data |
ffed8b01 |
1 | ## |
2 | # DBM::Deep Test |
3 | ## |
995d119b |
4 | $|++; |
ffed8b01 |
5 | use strict; |
6 | use Test::More; |
7 | |
8 | my $max_levels = 1000; |
9 | |
995d119b |
10 | plan tests => 3; |
ffed8b01 |
11 | |
12 | use_ok( 'DBM::Deep' ); |
13 | |
14 | unlink "t/test.db"; |
15 | my $db = DBM::Deep->new( |
16 | file => "t/test.db", |
17 | type => DBM::Deep->TYPE_ARRAY, |
18 | ); |
ffed8b01 |
19 | |
20 | $db->[0] = []; |
21 | my $temp_db = $db->[0]; |
22 | for my $k ( 0 .. $max_levels ) { |
23 | $temp_db->[$k] = []; |
24 | $temp_db = $temp_db->[$k]; |
25 | } |
26 | $temp_db->[0] = "deepvalue"; |
27 | undef $temp_db; |
28 | |
29 | undef $db; |
30 | $db = DBM::Deep->new( |
31 | file => "t/test.db", |
32 | type => DBM::Deep->TYPE_ARRAY, |
33 | ); |
34 | |
995d119b |
35 | my $cur_level = -1; |
ffed8b01 |
36 | $temp_db = $db->[0]; |
37 | for my $k ( 0 .. $max_levels ) { |
995d119b |
38 | $cur_level = $k; |
ffed8b01 |
39 | $temp_db = $temp_db->[$k]; |
995d119b |
40 | eval { $temp_db->isa( 'DBM::Deep' ) } or last; |
ffed8b01 |
41 | } |
995d119b |
42 | is( $cur_level, $max_levels, "We read all the way down to level $cur_level" ); |
ffed8b01 |
43 | is( $temp_db->[0], "deepvalue", "And we retrieved the value at the bottom of the ocean" ); |