test_yield.rb: assert_all_sentences
* test/ruby/test_yield.rb (assert_all_sentences): test all sentences and report all results at the end. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6d65806f8b
commit
f5da412c9e
@ -340,11 +340,12 @@ class TestRubyYieldGen < Test::Unit::TestCase
|
|||||||
t = t.subst('vars') { " [#{vars.join(",")}]" }
|
t = t.subst('vars') { " [#{vars.join(",")}]" }
|
||||||
emu_values = emu(t, vars, islambda)
|
emu_values = emu(t, vars, islambda)
|
||||||
s = t.to_s
|
s = t.to_s
|
||||||
|
o = Object.new
|
||||||
#print "#{s}\t\t"
|
#print "#{s}\t\t"
|
||||||
#STDOUT.flush
|
#STDOUT.flush
|
||||||
eval_values = disable_stderr {
|
eval_values = disable_stderr {
|
||||||
begin
|
begin
|
||||||
eval(s, nil, 'generated_code_in_check_nofork')
|
o.instance_eval(s, 'generated_code_in_check_nofork')
|
||||||
rescue ArgumentError
|
rescue ArgumentError
|
||||||
ArgumentError
|
ArgumentError
|
||||||
end
|
end
|
||||||
@ -354,23 +355,33 @@ class TestRubyYieldGen < Test::Unit::TestCase
|
|||||||
assert_equal(emu_values, eval_values, s)
|
assert_equal(emu_values, eval_values, s)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def assert_all_sentences(syntax, *args)
|
||||||
|
fails = []
|
||||||
|
syntax = Sentence.expand_syntax(syntax)
|
||||||
|
Sentence.each(syntax, *args) {|t|
|
||||||
|
begin
|
||||||
|
yield t
|
||||||
|
rescue MiniTest::Assertion => e
|
||||||
|
fails << e.message
|
||||||
|
end
|
||||||
|
}
|
||||||
|
assert(fails.empty?, proc {fails.join("\n--------\n")})
|
||||||
|
end
|
||||||
|
|
||||||
def test_yield
|
def test_yield
|
||||||
syntax = Sentence.expand_syntax(Syntax)
|
assert_all_sentences(Syntax, :test_proc, 4) {|t|
|
||||||
Sentence.each(syntax, :test_proc, 4) {|t|
|
|
||||||
check_nofork(t)
|
check_nofork(t)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_yield_lambda
|
def test_yield_lambda
|
||||||
syntax = Sentence.expand_syntax(Syntax)
|
assert_all_sentences(Syntax, :test_lambda, 4) {|t|
|
||||||
Sentence.each(syntax, :test_lambda, 4) {|t|
|
|
||||||
check_nofork(t, true)
|
check_nofork(t, true)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_yield_enum
|
def test_yield_enum
|
||||||
syntax = Sentence.expand_syntax(Syntax)
|
assert_all_sentences(Syntax, :test_enum, 4) {|t|
|
||||||
Sentence.each(syntax, :test_enum, 4) {|t|
|
|
||||||
code = t.to_s
|
code = t.to_s
|
||||||
r1, r2 = disable_stderr {
|
r1, r2 = disable_stderr {
|
||||||
eval(code, nil, 'generated_code_in_test_yield_enum')
|
eval(code, nil, 'generated_code_in_test_yield_enum')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user