summaryrefslogtreecommitdiff
path: root/lang/perl/BerkeleyDB/t/queue.t
diff options
context:
space:
mode:
Diffstat (limited to 'lang/perl/BerkeleyDB/t/queue.t')
-rw-r--r--lang/perl/BerkeleyDB/t/queue.t24
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__