summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2020-05-28 19:49:10 -0700
committerJeremy Evans <code@jeremyevans.net>2020-05-29 07:06:46 -0700
commit2ecfb88ee50510955acd3ae9fc94a5f109e7f109 (patch)
tree61e6604cfd3425f043fbf22f491bdc6d44a4cb07 /test
parent0bd025ad6991f2159ef8bd596a79c89b79f5cc3e (diff)
Correctly remove temporary directory if path yielded is mutated
Another approach would be to freeze the string, but that could cause backwards compatibility issues. Fixes [Bug #16918]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3159
Diffstat (limited to 'test')
-rw-r--r--test/test_tmpdir.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/test_tmpdir.rb b/test/test_tmpdir.rb
index c599dcf516..50583b5ce1 100644
--- a/test/test_tmpdir.rb
+++ b/test/test_tmpdir.rb
@@ -52,6 +52,17 @@ class TestTmpdir < Test::Unit::TestCase
}
end
+ def test_mktmpdir_mutate
+ bug16918 = '[ruby-core:98563]'
+ assert_nothing_raised(bug16918) do
+ assert_mktmpdir_traversal do |traversal_path|
+ Dir.mktmpdir(traversal_path + 'foo') do |actual|
+ actual << "foo"
+ end
+ end
+ end
+ end
+
def test_mktmpdir_traversal
assert_mktmpdir_traversal do |traversal_path|
Dir.mktmpdir(traversal_path + 'foo') do |actual|