summaryrefslogtreecommitdiff
path: root/spec/ruby/core/objectspace/weakmap
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/objectspace/weakmap')
-rw-r--r--spec/ruby/core/objectspace/weakmap/delete_spec.rb42
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_pair_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_spec.rb2
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_value_spec.rb2
-rw-r--r--spec/ruby/core/objectspace/weakmap/include_spec.rb30
-rw-r--r--spec/ruby/core/objectspace/weakmap/key_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/length_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/member_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/each.rb2
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/include.rb30
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/size.rb14
-rw-r--r--spec/ruby/core/objectspace/weakmap/size_spec.rb14
12 files changed, 79 insertions, 86 deletions
diff --git a/spec/ruby/core/objectspace/weakmap/delete_spec.rb b/spec/ruby/core/objectspace/weakmap/delete_spec.rb
index 302de264fb..03beebbb83 100644
--- a/spec/ruby/core/objectspace/weakmap/delete_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/delete_spec.rb
@@ -1,30 +1,28 @@
require_relative '../../../spec_helper'
-ruby_version_is '3.3' do
- describe "ObjectSpace::WeakMap#delete" do
- it "removes the entry and returns the deleted value" do
- m = ObjectSpace::WeakMap.new
- key = Object.new
- value = Object.new
- m[key] = value
+describe "ObjectSpace::WeakMap#delete" do
+ it "removes the entry and returns the deleted value" do
+ m = ObjectSpace::WeakMap.new
+ key = Object.new
+ value = Object.new
+ m[key] = value
- m.delete(key).should == value
- m.key?(key).should == false
- end
+ m.delete(key).should == value
+ m.key?(key).should == false
+ end
- it "calls supplied block if the key is not found" do
- key = Object.new
- m = ObjectSpace::WeakMap.new
- return_value = m.delete(key) do |yielded_key|
- yielded_key.should == key
- 5
- end
- return_value.should == 5
+ it "calls supplied block if the key is not found" do
+ key = Object.new
+ m = ObjectSpace::WeakMap.new
+ return_value = m.delete(key) do |yielded_key|
+ yielded_key.should == key
+ 5
end
+ return_value.should == 5
+ end
- it "returns nil if the key is not found when no block is given" do
- m = ObjectSpace::WeakMap.new
- m.delete(Object.new).should == nil
- end
+ it "returns nil if the key is not found when no block is given" do
+ m = ObjectSpace::WeakMap.new
+ m.delete(Object.new).should == nil
end
end
diff --git a/spec/ruby/core/objectspace/weakmap/each_pair_spec.rb b/spec/ruby/core/objectspace/weakmap/each_pair_spec.rb
index ea29edbd2f..272669ad0a 100644
--- a/spec/ruby/core/objectspace/weakmap/each_pair_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/each_pair_spec.rb
@@ -1,11 +1,8 @@
require_relative '../../../spec_helper'
-require_relative 'shared/members'
-require_relative 'shared/each'
describe "ObjectSpace::WeakMap#each_pair" do
- it_behaves_like :weakmap_members, -> map { a = []; map.each_pair{ |k,v| a << "#{k}#{v}" }; a }, %w[Ax By]
-end
-
-describe "ObjectSpace::WeakMap#each_key" do
- it_behaves_like :weakmap_each, :each_pair
+ it "is an alias of ObjectSpace::WeakMap#each" do
+ ObjectSpace::WeakMap.instance_method(:each_pair).should ==
+ ObjectSpace::WeakMap.instance_method(:each)
+ end
end
diff --git a/spec/ruby/core/objectspace/weakmap/each_spec.rb b/spec/ruby/core/objectspace/weakmap/each_spec.rb
index 46fcb66a6f..8493a36158 100644
--- a/spec/ruby/core/objectspace/weakmap/each_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/each_spec.rb
@@ -6,6 +6,6 @@ describe "ObjectSpace::WeakMap#each" do
it_behaves_like :weakmap_members, -> map { a = []; map.each{ |k,v| a << "#{k}#{v}" }; a }, %w[Ax By]
end
-describe "ObjectSpace::WeakMap#each_key" do
+describe "ObjectSpace::WeakMap#each" do
it_behaves_like :weakmap_each, :each
end
diff --git a/spec/ruby/core/objectspace/weakmap/each_value_spec.rb b/spec/ruby/core/objectspace/weakmap/each_value_spec.rb
index 65a1a7f6fe..89f2f6ae98 100644
--- a/spec/ruby/core/objectspace/weakmap/each_value_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/each_value_spec.rb
@@ -6,6 +6,6 @@ describe "ObjectSpace::WeakMap#each_value" do
it_behaves_like :weakmap_members, -> map { a = []; map.each_value{ |k| a << k }; a }, %w[x y]
end
-describe "ObjectSpace::WeakMap#each_key" do
+describe "ObjectSpace::WeakMap#each_value" do
it_behaves_like :weakmap_each, :each_value
end
diff --git a/spec/ruby/core/objectspace/weakmap/include_spec.rb b/spec/ruby/core/objectspace/weakmap/include_spec.rb
index 54ca6b3030..1affaef907 100644
--- a/spec/ruby/core/objectspace/weakmap/include_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/include_spec.rb
@@ -1,6 +1,32 @@
require_relative '../../../spec_helper'
-require_relative 'shared/include'
describe "ObjectSpace::WeakMap#include?" do
- it_behaves_like :weakmap_include?, :include?
+ it "recognizes keys in use" do
+ map = ObjectSpace::WeakMap.new
+ key1, key2 = %w[a b].map(&:upcase)
+ ref1, ref2 = %w[x y]
+
+ map[key1] = ref1
+ map.include?(key1).should == true
+ map[key1] = ref1
+ map.include?(key1).should == true
+ map[key2] = ref2
+ map.include?(key2).should == true
+ end
+
+ it "matches using identity semantics" do
+ map = ObjectSpace::WeakMap.new
+ key1, key2 = %w[a a].map(&:upcase)
+ ref = "x"
+ map[key1] = ref
+ map.include?(key2).should == false
+ end
+
+ it "reports true if the pair exists and the value is nil" do
+ map = ObjectSpace::WeakMap.new
+ key = Object.new
+ map[key] = nil
+ map.size.should == 1
+ map.include?(key).should == true
+ end
end
diff --git a/spec/ruby/core/objectspace/weakmap/key_spec.rb b/spec/ruby/core/objectspace/weakmap/key_spec.rb
index 999685ff95..5d38f1fa5f 100644
--- a/spec/ruby/core/objectspace/weakmap/key_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/key_spec.rb
@@ -1,6 +1,8 @@
require_relative '../../../spec_helper'
-require_relative 'shared/include'
describe "ObjectSpace::WeakMap#key?" do
- it_behaves_like :weakmap_include?, :key?
+ it "is an alias of ObjectSpace::WeakMap#include?" do
+ ObjectSpace::WeakMap.instance_method(:key?).should ==
+ ObjectSpace::WeakMap.instance_method(:include?)
+ end
end
diff --git a/spec/ruby/core/objectspace/weakmap/length_spec.rb b/spec/ruby/core/objectspace/weakmap/length_spec.rb
index 3a935648b1..8ad47aa9d6 100644
--- a/spec/ruby/core/objectspace/weakmap/length_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/length_spec.rb
@@ -1,6 +1,8 @@
require_relative '../../../spec_helper'
-require_relative 'shared/size'
describe "ObjectSpace::WeakMap#length" do
- it_behaves_like :weakmap_size, :length
+ it "is an alias of ObjectSpace::WeakMap#size" do
+ ObjectSpace::WeakMap.instance_method(:length).should ==
+ ObjectSpace::WeakMap.instance_method(:size)
+ end
end
diff --git a/spec/ruby/core/objectspace/weakmap/member_spec.rb b/spec/ruby/core/objectspace/weakmap/member_spec.rb
index cefb190ce7..eaf9a76285 100644
--- a/spec/ruby/core/objectspace/weakmap/member_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/member_spec.rb
@@ -1,6 +1,8 @@
require_relative '../../../spec_helper'
-require_relative 'shared/include'
describe "ObjectSpace::WeakMap#member?" do
- it_behaves_like :weakmap_include?, :member?
+ it "is an alias of ObjectSpace::WeakMap#include?" do
+ ObjectSpace::WeakMap.instance_method(:member?).should ==
+ ObjectSpace::WeakMap.instance_method(:include?)
+ end
end
diff --git a/spec/ruby/core/objectspace/weakmap/shared/each.rb b/spec/ruby/core/objectspace/weakmap/shared/each.rb
index 3d43a19347..771c416dde 100644
--- a/spec/ruby/core/objectspace/weakmap/shared/each.rb
+++ b/spec/ruby/core/objectspace/weakmap/shared/each.rb
@@ -5,6 +5,6 @@ describe :weakmap_each, shared: true do
ref = "x"
map.send(@method).should == map
map[key] = ref
- -> { map.send(@method) }.should raise_error(LocalJumpError)
+ -> { map.send(@method) }.should.raise(LocalJumpError)
end
end
diff --git a/spec/ruby/core/objectspace/weakmap/shared/include.rb b/spec/ruby/core/objectspace/weakmap/shared/include.rb
deleted file mode 100644
index 1770eeac8b..0000000000
--- a/spec/ruby/core/objectspace/weakmap/shared/include.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-describe :weakmap_include?, shared: true do
- it "recognizes keys in use" do
- map = ObjectSpace::WeakMap.new
- key1, key2 = %w[a b].map(&:upcase)
- ref1, ref2 = %w[x y]
-
- map[key1] = ref1
- map.send(@method, key1).should == true
- map[key1] = ref1
- map.send(@method, key1).should == true
- map[key2] = ref2
- map.send(@method, key2).should == true
- end
-
- it "matches using identity semantics" do
- map = ObjectSpace::WeakMap.new
- key1, key2 = %w[a a].map(&:upcase)
- ref = "x"
- map[key1] = ref
- map.send(@method, key2).should == false
- end
-
- it "reports true if the pair exists and the value is nil" do
- map = ObjectSpace::WeakMap.new
- key = Object.new
- map[key] = nil
- map.size.should == 1
- map.send(@method, key).should == true
- end
-end
diff --git a/spec/ruby/core/objectspace/weakmap/shared/size.rb b/spec/ruby/core/objectspace/weakmap/shared/size.rb
deleted file mode 100644
index 1064f99d1b..0000000000
--- a/spec/ruby/core/objectspace/weakmap/shared/size.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-describe :weakmap_size, shared: true do
- it "is correct" do
- map = ObjectSpace::WeakMap.new
- key1, key2 = %w[a b].map(&:upcase)
- ref1, ref2 = %w[x y]
- map.send(@method).should == 0
- map[key1] = ref1
- map.send(@method).should == 1
- map[key1] = ref1
- map.send(@method).should == 1
- map[key2] = ref2
- map.send(@method).should == 2
- end
-end
diff --git a/spec/ruby/core/objectspace/weakmap/size_spec.rb b/spec/ruby/core/objectspace/weakmap/size_spec.rb
index 1446abaa24..d301750c62 100644
--- a/spec/ruby/core/objectspace/weakmap/size_spec.rb
+++ b/spec/ruby/core/objectspace/weakmap/size_spec.rb
@@ -1,6 +1,16 @@
require_relative '../../../spec_helper'
-require_relative 'shared/size'
describe "ObjectSpace::WeakMap#size" do
- it_behaves_like :weakmap_size, :size
+ it "is correct" do
+ map = ObjectSpace::WeakMap.new
+ key1, key2 = %w[a b].map(&:upcase)
+ ref1, ref2 = %w[x y]
+ map.size.should == 0
+ map[key1] = ref1
+ map.size.should == 1
+ map[key1] = ref1
+ map.size.should == 1
+ map[key2] = ref2
+ map.size.should == 2
+ end
end