зеркало из https://github.com/github/ruby.git
[ruby/irb] Make tests more compatible with TruffleRuby
(https://github.com/ruby/irb/pull/514)
* Improve encoding error test case
The test input IRB currently uses happen to hit a compatibility bug in
TruffleRuby, which has been documented in
https://github.com/oracle/truffleruby/issues/2848
Although it'll eventually be fixed, we can make the test case support TruffleRuby
now by tweaking it just a little bit.
Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
* Remove redundant TruffleRuby omits/pends
Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
* Use a different way to test warning emission
The test case was added in d08ef68d2d
to verify that IRB emits Ruby warning as expected.
But the subject it uses relies on CRuby's regexp engine, which isn't always
used in other language implementations, like TruffleRuby. That's why we
ended up skipping TruffleRuby in this test case.
Since the test isn't about regexp itself, we can change the testing subject
and just remove the special condition for TruffleRuby.
Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
---------
https://github.com/ruby/irb/commit/6fdf4f3e97
Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
This commit is contained in:
Родитель
72aba64fff
Коммит
970e7cdec3
|
@ -50,22 +50,19 @@ module TestIRB
|
|||
end
|
||||
|
||||
def test_evaluate_with_encoding_error_without_lineno
|
||||
pend if RUBY_ENGINE == 'truffleruby'
|
||||
assert_raise_with_message(EncodingError, /invalid symbol/) {
|
||||
@context.evaluate(%q[{"\xAE": 1}], 1)
|
||||
@context.evaluate(%q[:"\xAE"], 1)
|
||||
# The backtrace of this invalid encoding hash doesn't contain lineno.
|
||||
}
|
||||
end
|
||||
|
||||
def test_evaluate_with_onigmo_warning
|
||||
pend if RUBY_ENGINE == 'truffleruby'
|
||||
assert_warning("(irb):1: warning: character class has duplicated range: /[aa]/\n") do
|
||||
@context.evaluate('/[aa]/', 1)
|
||||
def test_evaluate_still_emits_warning
|
||||
assert_warning("(irb):1: warning: END in method; use at_exit\n") do
|
||||
@context.evaluate(%q[def foo; END {}; end], 1)
|
||||
end
|
||||
end
|
||||
|
||||
def test_eval_input
|
||||
pend if RUBY_ENGINE == 'truffleruby'
|
||||
verbose, $VERBOSE = $VERBOSE, nil
|
||||
input = TestInputMethod.new([
|
||||
"raise 'Foo'\n",
|
||||
|
@ -88,7 +85,6 @@ module TestIRB
|
|||
end
|
||||
|
||||
def test_eval_input_raise2x
|
||||
pend if RUBY_ENGINE == 'truffleruby'
|
||||
input = TestInputMethod.new([
|
||||
"raise 'Foo'\n",
|
||||
"raise 'Bar'\n",
|
||||
|
@ -513,7 +509,6 @@ module TestIRB
|
|||
end
|
||||
|
||||
def test_eval_input_with_invalid_byte_sequence_exception
|
||||
pend if RUBY_ENGINE == 'truffleruby'
|
||||
verbose, $VERBOSE = $VERBOSE, nil
|
||||
input = TestInputMethod.new([
|
||||
%Q{def hoge() fuga; end; def fuga() raise "A\\xF3B"; end; hoge\n},
|
||||
|
|
Загрузка…
Ссылка в новой задаче