зеркало из https://github.com/github/ruby.git
* test/ruby/test_io.rb (test_copy_stream_socket): wait a child process
before SIGUSR1 handler is removed. * test/pathname/test_pathname.rb (define_assertion): use line number for test method names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
071b8d76f0
Коммит
19853fc49b
|
@ -1,3 +1,11 @@
|
|||
Wed Jun 15 12:35:11 2011 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* test/ruby/test_io.rb (test_copy_stream_socket): wait a child process
|
||||
before SIGUSR1 handler is removed.
|
||||
|
||||
* test/pathname/test_pathname.rb (define_assertion): use line number
|
||||
for test method names.
|
||||
|
||||
Wed Jun 15 10:37:43 2011 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* file.c (rb_stat_rdev): use DEVT2NUM.
|
||||
|
|
|
@ -10,15 +10,21 @@ require 'enumerator'
|
|||
require_relative '../ruby/envutil'
|
||||
|
||||
class TestPathname < Test::Unit::TestCase
|
||||
def self.define_assertion(name, &block)
|
||||
@defassert_num ||= {}
|
||||
@defassert_num[name] ||= 0
|
||||
@defassert_num[name] += 1
|
||||
define_method("test_#{name}_#{@defassert_num[name]}", &block)
|
||||
def self.define_assertion(name, linenum, &block)
|
||||
name = "test_#{name}_#{linenum}"
|
||||
define_method(name, &block)
|
||||
end
|
||||
|
||||
def self.get_linenum
|
||||
if /:(\d+):/ =~ caller[1]
|
||||
$1.to_i
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def self.defassert(name, result, *args)
|
||||
define_assertion(name) {
|
||||
define_assertion(name, get_linenum) {
|
||||
mesg = "#{name}(#{args.map {|a| a.inspect }.join(', ')})"
|
||||
assert_nothing_raised(mesg) {
|
||||
assert_equal(result, self.send(name, *args), mesg)
|
||||
|
@ -26,6 +32,13 @@ class TestPathname < Test::Unit::TestCase
|
|||
}
|
||||
end
|
||||
|
||||
def self.defassert_raise(name, exc, *args)
|
||||
define_assertion(name, get_linenum) {
|
||||
message = "#{name}(#{args.map {|a| a.inspect }.join(', ')})"
|
||||
assert_raise(exc, message) { self.send(name, *args) }
|
||||
}
|
||||
end
|
||||
|
||||
DOSISH = File::ALT_SEPARATOR != nil
|
||||
DOSISH_DRIVE_LETTER = File.dirname("A:") == "A:."
|
||||
DOSISH_UNC = File.dirname("//") == "//"
|
||||
|
@ -294,13 +307,6 @@ class TestPathname < Test::Unit::TestCase
|
|||
defassert(:relative_path_from, "a", "a", "b/..")
|
||||
defassert(:relative_path_from, "b/c", "b/c", "b/..")
|
||||
|
||||
def self.defassert_raise(name, exc, *args)
|
||||
define_assertion(name) {
|
||||
message = "#{name}(#{args.map {|a| a.inspect }.join(', ')})"
|
||||
assert_raise(exc, message) { self.send(name, *args) }
|
||||
}
|
||||
end
|
||||
|
||||
defassert_raise(:relative_path_from, ArgumentError, "/", ".")
|
||||
defassert_raise(:relative_path_from, ArgumentError, ".", "/")
|
||||
defassert_raise(:relative_path_from, ArgumentError, "a", "..")
|
||||
|
|
|
@ -82,8 +82,8 @@ class TestIO < Test::Unit::TestCase
|
|||
@usr1_rcvd = 0
|
||||
trap(:USR1) { @usr1_rcvd += 1 }
|
||||
yield
|
||||
ensure
|
||||
trap(:USR1, "DEFAULT")
|
||||
ensure
|
||||
trap(:USR1, "DEFAULT")
|
||||
end
|
||||
|
||||
def test_pipe
|
||||
|
@ -610,19 +610,22 @@ class TestIO < Test::Unit::TestCase
|
|||
end
|
||||
trapping_usr1 do
|
||||
nr = 10
|
||||
pid = fork do
|
||||
begin
|
||||
pid = fork do
|
||||
s1.close
|
||||
IO.select([s2])
|
||||
Process.kill(:USR1, Process.ppid)
|
||||
s2.read
|
||||
end
|
||||
s2.close
|
||||
nr.times do
|
||||
assert_equal megacontent.bytesize, IO.copy_stream("megasrc", s1)
|
||||
end
|
||||
assert_equal(1, @usr1_rcvd)
|
||||
s1.close
|
||||
IO.select([s2])
|
||||
Process.kill(:USR1, Process.ppid)
|
||||
s2.read
|
||||
ensure
|
||||
_, status = Process.waitpid2(pid) if pid
|
||||
end
|
||||
s2.close
|
||||
nr.times do
|
||||
assert_equal megacontent.bytesize, IO.copy_stream("megasrc", s1)
|
||||
end
|
||||
assert_equal(1, @usr1_rcvd)
|
||||
s1.close
|
||||
_, status = Process.waitpid2(pid)
|
||||
assert status.success?, status.inspect
|
||||
end
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче