summaryrefslogtreecommitdiffstats
path: root/patches/source/perl/hash.t
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2018-05-25 23:29:36 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 15:13:35 -0700
commit9097b9a1f29939d4996b0a685847517d02f7b5ad (patch)
treec74b091b97e2f7655593b7e011e8b37bcf1e8611 /patches/source/perl/hash.t
parent75a4a592e5ccda30715f93563d741b83e0dcf39e (diff)
downloadcurrent-9097b9a1f29939d4996b0a685847517d02f7b5ad.tar.gz
current-9097b9a1f29939d4996b0a685847517d02f7b5ad.tar.xz
Fri May 25 23:29:36 UTC 201813.37
patches/packages/glibc-zoneinfo-2018e-noarch-2_slack13.37.txz: Rebuilt. Handle removal of US/Pacific-New timezone. If we see that the machine is using this, it will be automatically switched to US/Pacific.
Diffstat (limited to 'patches/source/perl/hash.t')
-rw-r--r--patches/source/perl/hash.t46
1 files changed, 46 insertions, 0 deletions
diff --git a/patches/source/perl/hash.t b/patches/source/perl/hash.t
new file mode 100644
index 000000000..0f0697613
--- /dev/null
+++ b/patches/source/perl/hash.t
@@ -0,0 +1,46 @@
+X-Git-Url: http://perl5.git.perl.org/perl.git/blobdiff_plain/36a8248953423da007594af6ed330498ef5e3202..9d83adcdf9ab3c1ac7d54d76f3944e57278f0e70:/t/op/hash.t
+
+diff --git a/t/op/hash.t b/t/op/hash.t
+index 9bde518..45eb782 100644
+--- a/t/op/hash.t
++++ b/t/op/hash.t
+@@ -39,22 +39,36 @@ use constant THRESHOLD => 14;
+ use constant START => "a";
+
+ # some initial hash data
+-my %h2 = map {$_ => 1} 'a'..'cc';
++my %h2;
++my $counter= "a";
++$h2{$counter++}++ while $counter ne 'cd';
+
+ ok (!Internals::HvREHASH(%h2),
+ "starting with pre-populated non-pathological hash (rehash flag if off)");
+
+ my @keys = get_keys(\%h2);
++my $buckets= buckets(\%h2);
+ $h2{$_}++ for @keys;
++$h2{$counter++}++ while buckets(\%h2) == $buckets; # force a split
+ ok (Internals::HvREHASH(%h2),
+- scalar(@keys) . " colliding into the same bucket keys are triggering rehash");
++ scalar(@keys) . " colliding into the same bucket keys are triggering rehash after split");
++
++# returns the number of buckets in a hash
++sub buckets {
++ my $hr = shift;
++ my $keys_buckets= scalar(%$hr);
++ if ($keys_buckets=~m!/([0-9]+)\z!) {
++ return 0+$1;
++ } else {
++ return 8;
++ }
++}
+
+ sub get_keys {
+ my $hr = shift;
+
+ # the minimum of bits required to mount the attack on a hash
+ my $min_bits = log(THRESHOLD)/log(2);
+-
+ # if the hash has already been populated with a significant amount
+ # of entries the number of mask bits can be higher
+ my $keys = scalar keys %$hr;