diff --git a/spec/ruby/library/tempfile/open_spec.rb b/spec/ruby/library/tempfile/open_spec.rb index ef2c95376f..dabbe92a8a 100644 --- a/spec/ruby/library/tempfile/open_spec.rb +++ b/spec/ruby/library/tempfile/open_spec.rb @@ -38,8 +38,10 @@ describe "Tempfile.open" do end it "is passed an array [base, suffix] as first argument" do - Tempfile.open(["specs", ".tt"]) { |tempfile| @tempfile = tempfile } - @tempfile.path.should =~ /specs.*\.tt$/ + Tempfile.open(["specs", ".tt"]) { |tempfile| + @tempfile = tempfile + tempfile.path.should =~ /specs.*\.tt$/ + } end it "passes the third argument (options) to open" do @@ -65,7 +67,7 @@ describe "Tempfile.open when passed a block" do end after :each do - # Tempfile.open with block does not unlink + # Tempfile.open with block does not unlink in Ruby <= 2.7 @tempfile.close! if @tempfile end @@ -94,4 +96,24 @@ describe "Tempfile.open when passed a block" do Tempfile.open("specs") { |tempfile| @tempfile = tempfile } @tempfile.closed?.should be_true end + + ruby_version_is ""..."2.8" do + it "does not unlink the file after the block ends" do + path = Tempfile.open("specs") { |tempfile| + @tempfile = tempfile + tempfile.path + } + File.should.exist?(path) + end + end + + ruby_version_is "2.8" do + it "unlinks the file after the block ends" do + path = Tempfile.open("specs") { |tempfile| + @tempfile = tempfile + tempfile.path + } + File.should_not.exist?(path) + end + end end