diff options
Diffstat (limited to 'spec/ruby/core/binding')
| -rw-r--r-- | spec/ruby/core/binding/dup_spec.rb | 17 | ||||
| -rw-r--r-- | spec/ruby/core/binding/eval_spec.rb | 16 | ||||
| -rw-r--r-- | spec/ruby/core/binding/fixtures/irb.rb | 3 | ||||
| -rw-r--r-- | spec/ruby/core/binding/fixtures/irbrc | 1 | ||||
| -rw-r--r-- | spec/ruby/core/binding/irb_spec.rb | 16 | ||||
| -rw-r--r-- | spec/ruby/core/binding/local_variable_get_spec.rb | 10 | ||||
| -rw-r--r-- | spec/ruby/core/binding/local_variable_set_spec.rb | 8 | ||||
| -rw-r--r-- | spec/ruby/core/binding/local_variables_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/core/binding/shared/clone.rb | 2 |
9 files changed, 31 insertions, 44 deletions
diff --git a/spec/ruby/core/binding/dup_spec.rb b/spec/ruby/core/binding/dup_spec.rb index 55fac6e333..f5f0c72d5d 100644 --- a/spec/ruby/core/binding/dup_spec.rb +++ b/spec/ruby/core/binding/dup_spec.rb @@ -10,4 +10,21 @@ describe "Binding#dup" do bind.frozen?.should == true bind.dup.frozen?.should == false end + + it "retains original binding variables but the list is distinct" do + bind1 = binding + eval "a = 1", bind1 + + bind2 = bind1.dup + eval("a = 2", bind2) + eval("a", bind1).should == 2 + eval("a", bind2).should == 2 + + eval("b = 2", bind2) + -> { eval("b", bind1) }.should.raise(NameError) + eval("b", bind2).should == 2 + + bind1.local_variables.sort.should == [:a, :bind1, :bind2] + bind2.local_variables.sort.should == [:a, :b, :bind1, :bind2] + end end diff --git a/spec/ruby/core/binding/eval_spec.rb b/spec/ruby/core/binding/eval_spec.rb index bb2036f739..f1d8591320 100644 --- a/spec/ruby/core/binding/eval_spec.rb +++ b/spec/ruby/core/binding/eval_spec.rb @@ -7,7 +7,7 @@ describe "Binding#eval" do bind = obj.get_binding bind.eval("@secret += square(3)").should == 10 - bind.eval("a").should be_true + bind.eval("a").should == true bind.eval("class Inside; end") bind.eval("Inside.name").should == "BindingSpecs::Demo::Inside" @@ -60,14 +60,6 @@ describe "Binding#eval" do bind.eval("#foo\n__LINE__", "(test)", 88).should == 89 end - ruby_version_is ""..."3.3" do - it "uses (eval) as __FILE__ if single argument given" do - obj = BindingSpecs::Demo.new(1) - bind = obj.get_binding - bind.eval("__FILE__").should == '(eval)' - end - end - it "uses 1 as __LINE__" do obj = BindingSpecs::Demo.new(1) bind = obj.get_binding @@ -107,9 +99,7 @@ describe "Binding#eval" do bind.eval("'bar'.foo").should == "foo" end - ruby_version_is "3.3" do - it "uses the caller location as default filename" do - binding.eval("[__FILE__, __LINE__]").should == ["(eval at #{__FILE__}:#{__LINE__})", 1] - end + it "uses the caller location as default filename" do + binding.eval("[__FILE__, __LINE__]").should == ["(eval at #{__FILE__}:#{__LINE__})", 1] end end diff --git a/spec/ruby/core/binding/fixtures/irb.rb b/spec/ruby/core/binding/fixtures/irb.rb deleted file mode 100644 index 5f305f2d5d..0000000000 --- a/spec/ruby/core/binding/fixtures/irb.rb +++ /dev/null @@ -1,3 +0,0 @@ -a = 10 - -binding.irb diff --git a/spec/ruby/core/binding/fixtures/irbrc b/spec/ruby/core/binding/fixtures/irbrc deleted file mode 100644 index 2bc12af2f7..0000000000 --- a/spec/ruby/core/binding/fixtures/irbrc +++ /dev/null @@ -1 +0,0 @@ -# empty configuration diff --git a/spec/ruby/core/binding/irb_spec.rb b/spec/ruby/core/binding/irb_spec.rb deleted file mode 100644 index b3bc274f78..0000000000 --- a/spec/ruby/core/binding/irb_spec.rb +++ /dev/null @@ -1,16 +0,0 @@ -require_relative '../../spec_helper' - -describe "Binding#irb" do - it "creates an IRB session with the binding in scope" do - irb_fixture = fixture __FILE__, "irb.rb" - irbrc_fixture = fixture __FILE__, "irbrc" - - out = IO.popen([{"IRBRC"=>irbrc_fixture}, *ruby_exe, irb_fixture], "r+") do |pipe| - pipe.puts "a ** 2" - pipe.puts "exit" - pipe.readlines.map(&:chomp) - end - - out[-3..-1].should == ["a ** 2", "100", "exit"] - end -end diff --git a/spec/ruby/core/binding/local_variable_get_spec.rb b/spec/ruby/core/binding/local_variable_get_spec.rb index 005670becc..d97100deda 100644 --- a/spec/ruby/core/binding/local_variable_get_spec.rb +++ b/spec/ruby/core/binding/local_variable_get_spec.rb @@ -13,7 +13,7 @@ describe "Binding#local_variable_get" do -> { bind.local_variable_get(:no_such_variable) - }.should raise_error(NameError) + }.should.raise(NameError) end it "reads variables added later to the binding" do @@ -21,7 +21,7 @@ describe "Binding#local_variable_get" do -> { bind.local_variable_get(:a) - }.should raise_error(NameError) + }.should.raise(NameError) bind.local_variable_set(:a, 42) @@ -45,12 +45,12 @@ describe "Binding#local_variable_get" do it "raises a NameError on global access" do bind = binding - -> { bind.local_variable_get(:$0) }.should raise_error(NameError) + -> { bind.local_variable_get(:$0) }.should.raise(NameError) end it "raises a NameError on special variable access" do bind = binding - -> { bind.local_variable_get(:$~) }.should raise_error(NameError) - -> { bind.local_variable_get(:$_) }.should raise_error(NameError) + -> { bind.local_variable_get(:$~) }.should.raise(NameError) + -> { bind.local_variable_get(:$_) }.should.raise(NameError) end end diff --git a/spec/ruby/core/binding/local_variable_set_spec.rb b/spec/ruby/core/binding/local_variable_set_spec.rb index 1456c6dda1..3e4f407fc3 100644 --- a/spec/ruby/core/binding/local_variable_set_spec.rb +++ b/spec/ruby/core/binding/local_variable_set_spec.rb @@ -38,7 +38,7 @@ describe "Binding#local_variable_set" do bind = binding bind.local_variable_set(:number, 10) - -> { number }.should raise_error(NameError) + -> { number }.should.raise(NameError) end it 'overwrites an existing local variable defined before a Binding' do @@ -59,13 +59,13 @@ describe "Binding#local_variable_set" do it "raises a NameError on global access" do bind = binding - -> { bind.local_variable_set(:$0, "") }.should raise_error(NameError) + -> { bind.local_variable_set(:$0, "") }.should.raise(NameError) end it "raises a NameError on special variable access" do bind = binding - -> { bind.local_variable_set(:$~, "") }.should raise_error(NameError) - -> { bind.local_variable_set(:$_, "") }.should raise_error(NameError) + -> { bind.local_variable_set(:$~, "") }.should.raise(NameError) + -> { bind.local_variable_set(:$_, "") }.should.raise(NameError) end end diff --git a/spec/ruby/core/binding/local_variables_spec.rb b/spec/ruby/core/binding/local_variables_spec.rb index 92c817b9a8..0f59681342 100644 --- a/spec/ruby/core/binding/local_variables_spec.rb +++ b/spec/ruby/core/binding/local_variables_spec.rb @@ -2,7 +2,7 @@ require_relative '../../spec_helper' describe "Binding#local_variables" do it "returns an Array" do - binding.local_variables.should be_kind_of(Array) + binding.local_variables.should.is_a?(Array) end it "includes local variables in the current scope" do diff --git a/spec/ruby/core/binding/shared/clone.rb b/spec/ruby/core/binding/shared/clone.rb index 1224b8ec7d..2d854fce96 100644 --- a/spec/ruby/core/binding/shared/clone.rb +++ b/spec/ruby/core/binding/shared/clone.rb @@ -40,7 +40,7 @@ describe :binding_clone, shared: true do end it "copies the finalizer" do - code = <<-RUBY + code = <<-'RUBY' obj = binding ObjectSpace.define_finalizer(obj, Proc.new { STDOUT.write "finalized\n" }) |
