Fix usages of Tempfile.open(&block) that expected the file to still be there after the block

This commit is contained in:
Benoit Daloze 2020-08-29 12:23:31 +02:00
Родитель e8c3872555
Коммит 3beecafc2c
2 изменённых файлов: 19 добавлений и 16 удалений

Просмотреть файл

@ -2079,12 +2079,14 @@ class Reline::LineEditor
end
private def vi_histedit(key)
path = Tempfile.open { |fp|
Tempfile.open { |fp|
fp.write @line
fp.path
path = fp.path
fp.close
system("#{ENV['EDITOR']} #{path}")
@line = File.read(path)
}
system("#{ENV['EDITOR']} #{path}")
@line = File.read(path)
finish
end

Просмотреть файл

@ -33,20 +33,21 @@ class OpenSSL::TestX509Store < OpenSSL::TestCase
]
cert1 = issue_cert(@ca1, @rsa1024, 1, ca_exts, nil, nil)
cert2 = issue_cert(@ca2, @rsa2048, 1, ca_exts, nil, nil)
tmpfile = Tempfile.open { |f| f << cert1.to_pem << cert2.to_pem; f }
Tempfile.open { |tmpfile|
tmpfile << cert1.to_pem << cert2.to_pem
tmpfile.close
store = OpenSSL::X509::Store.new
assert_equal false, store.verify(cert1)
assert_equal false, store.verify(cert2)
store.add_file(tmpfile.path)
assert_equal true, store.verify(cert1)
assert_equal true, store.verify(cert2)
store = OpenSSL::X509::Store.new
assert_equal false, store.verify(cert1)
assert_equal false, store.verify(cert2)
store.add_file(tmpfile.path)
assert_equal true, store.verify(cert1)
assert_equal true, store.verify(cert2)
# OpenSSL < 1.1.1 leaks an error on a duplicate certificate
assert_nothing_raised { store.add_file(tmpfile.path) }
assert_equal [], OpenSSL.errors
ensure
tmpfile and tmpfile.close!
# OpenSSL < 1.1.1 leaks an error on a duplicate certificate
assert_nothing_raised { store.add_file(tmpfile.path) }
assert_equal [], OpenSSL.errors
}
end
def test_verify