diff options
Diffstat (limited to 'lang/perl/BerkeleyDB/t/queue.t')
| -rw-r--r-- | lang/perl/BerkeleyDB/t/queue.t | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/lang/perl/BerkeleyDB/t/queue.t b/lang/perl/BerkeleyDB/t/queue.t index fd372ae7..a2ffa76f 100644 --- a/lang/perl/BerkeleyDB/t/queue.t +++ b/lang/perl/BerkeleyDB/t/queue.t @@ -12,7 +12,7 @@ use util; plan(skip_all => "Queue needs Berkeley DB 3.3.x or better\n" ) if $BerkeleyDB::db_version < 3.3; -plan tests => 257; +plan tests => 260; my $Dfile = "dbhash.tmp"; @@ -867,6 +867,28 @@ EOM undef $db ; untie @array ; } + +{ + # RT #75691: scalar(@array) returns incorrect value after shift() on tied array + my $lex = new LexFile $Dfile ; + my @array ; + my $db ; + $db = tie @array, 'BerkeleyDB::Queue', + -Flags => DB_CREATE , + -Len => 2, + -Filename => $Dfile ; + isa_ok $db, 'BerkeleyDB::Queue'; + $FA ? push @array, "ab", "cd", "ef", "gh" + : $db->push("ab", "cd", "ef", "gh") ; + is scalar(@array), 4; + + $FA ? shift @array : $db->shift() ; + is scalar(@array), 3; + + undef $db; + untie @array ; + +} __END__ |
