mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/ruby/test_settracefunc.rb: add a test for set_trace_func.
* test/ruby/envutil.rb: move "rubyexec" method from test_rubyoptions.rb. * test/ruby/test_rubyoptions.rb: use rubyexec in envutil.rb. * test/ruby/test_thread.rb: add tests to achieve over 90% test coverage of thread.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c0d8e6cbf9
commit
f7ef694a71
6 changed files with 417 additions and 50 deletions
|
@ -1,44 +1,12 @@
|
|||
require 'test/unit'
|
||||
|
||||
require 'timeout'
|
||||
require 'tmpdir'
|
||||
require 'tempfile'
|
||||
require 'open3'
|
||||
require_relative 'envutil'
|
||||
|
||||
class TestRubyOptions < Test::Unit::TestCase
|
||||
|
||||
unless /(mswin|bccwin|mingw|emx)/ =~ RUBY_PLATFORM
|
||||
|
||||
LANG_ENVS = %w"LANG LC_ALL LC_CTYPE"
|
||||
def ruby(*args)
|
||||
ruby = EnvUtil.rubybin
|
||||
c = "C"
|
||||
env = {}
|
||||
LANG_ENVS.each {|lc| env[lc], ENV[lc] = ENV[lc], c}
|
||||
stdin, stdout, stderr = Open3.popen3(*([ruby] + args))
|
||||
env.each_pair {|lc, v|
|
||||
if v
|
||||
ENV[lc] = v
|
||||
else
|
||||
ENV.delete(lc)
|
||||
end
|
||||
}
|
||||
env = nil
|
||||
Timeout.timeout(10) do
|
||||
yield(stdin, stdout, stderr)
|
||||
end
|
||||
ensure
|
||||
env.each_pair {|lc, v|
|
||||
if v
|
||||
ENV[lc] = v
|
||||
else
|
||||
ENV.delete(lc)
|
||||
end
|
||||
} if env
|
||||
stdin .close unless !stdin || stdin .closed?
|
||||
stdout.close unless !stdout || stdout.closed?
|
||||
stderr.close unless !stderr || stderr.closed?
|
||||
def ruby(*r, &b)
|
||||
EnvUtil.rubyexec(*r, &b)
|
||||
end
|
||||
|
||||
def test_source_file
|
||||
|
@ -484,13 +452,4 @@ unless /(mswin|bccwin|mingw|emx)/ =~ RUBY_PLATFORM
|
|||
assert_equal('', r.read.chomp)
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
def test_win32
|
||||
flunk("cannot test in win32")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue