diff options
author | Jeremy Evans <code@jeremyevans.net> | 2019-09-24 20:59:12 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2019-11-18 01:00:25 +0200 |
commit | ffd0820ab317542f8780aac475da590a4bdbc7a8 (patch) | |
tree | 6a5d774933c15fd2b9ea948bd3ae2fa587faaf82 /spec/ruby/core/kernel/taint_spec.rb | |
parent | c5c05460ac20abcbc0ed686eb4acf06da7a39a79 (diff) |
Deprecate taint/trust and related methods, and make the methods no-ops
This removes the related tests, and puts the related specs behind
version guards. This affects all code in lib, including some
libraries that may want to support older versions of Ruby.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/2476
Diffstat (limited to 'spec/ruby/core/kernel/taint_spec.rb')
-rw-r--r-- | spec/ruby/core/kernel/taint_spec.rb | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/spec/ruby/core/kernel/taint_spec.rb b/spec/ruby/core/kernel/taint_spec.rb index 000295f6d2..6de009a46c 100644 --- a/spec/ruby/core/kernel/taint_spec.rb +++ b/spec/ruby/core/kernel/taint_spec.rb @@ -2,44 +2,46 @@ require_relative '../../spec_helper' require_relative 'fixtures/classes' describe "Kernel#taint" do - it "returns self" do - o = Object.new - o.taint.should equal(o) - end - - it "sets the tainted bit" do - o = Object.new - o.taint - o.tainted?.should == true - end + ruby_version_is ''...'2.7' do + it "returns self" do + o = Object.new + o.taint.should equal(o) + end - it "raises #{frozen_error_class} on an untainted, frozen object" do - o = Object.new.freeze - -> { o.taint }.should raise_error(frozen_error_class) - end + it "sets the tainted bit" do + o = Object.new + o.taint + o.tainted?.should == true + end - it "does not raise an error on a tainted, frozen object" do - o = Object.new.taint.freeze - o.taint.should equal(o) - end + it "raises #{frozen_error_class} on an untainted, frozen object" do + o = Object.new.freeze + -> { o.taint }.should raise_error(frozen_error_class) + end - it "has no effect on immediate values" do - [nil, true, false].each do |v| - v.taint - v.tainted?.should == false + it "does not raise an error on a tainted, frozen object" do + o = Object.new.taint.freeze + o.taint.should equal(o) end - end - it "no raises a RuntimeError on symbols" do - v = :sym - -> { v.taint }.should_not raise_error(RuntimeError) - v.tainted?.should == false - end + it "has no effect on immediate values" do + [nil, true, false].each do |v| + v.taint + v.tainted?.should == false + end + end - it "no raises error on fixnum values" do - [1].each do |v| + it "no raises a RuntimeError on symbols" do + v = :sym -> { v.taint }.should_not raise_error(RuntimeError) v.tainted?.should == false end + + it "no raises error on fixnum values" do + [1].each do |v| + -> { v.taint }.should_not raise_error(RuntimeError) + v.tainted?.should == false + end + end end end |