зеркало из https://github.com/github/ruby.git
merge revision(s) dc146babf47a84bbd1f176d766637d4a40327019,f23d5028059078a346efc977287b669d494a5a3f,a0f7de814ae5c299d6ce99bed5fb308a05d50ba0: [Backport #20296]
[Bug #20296] Clear errinfo when `exception: false` [Bug #20296] Refine the test [Bug #20296] Fix the default assertion message
This commit is contained in:
Родитель
22c1e5f126
Коммит
8f1084db9b
|
@ -2321,8 +2321,11 @@ nucomp_convert(VALUE klass, VALUE a1, VALUE a2, int raise)
|
||||||
return a1;
|
return a1;
|
||||||
/* should raise exception for consistency */
|
/* should raise exception for consistency */
|
||||||
if (!k_numeric_p(a1)) {
|
if (!k_numeric_p(a1)) {
|
||||||
if (!raise)
|
if (!raise) {
|
||||||
return rb_protect(to_complex, a1, NULL);
|
a1 = rb_protect(to_complex, a1, NULL);
|
||||||
|
rb_set_errinfo(Qnil);
|
||||||
|
return a1;
|
||||||
|
}
|
||||||
return to_complex(a1);
|
return to_complex(a1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -980,31 +980,27 @@ class Complex_Test < Test::Unit::TestCase
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_Complex_without_exception
|
def assert_complex_with_exception(error, *args, message: "")
|
||||||
assert_nothing_raised(ArgumentError){
|
assert_raise(error, message) do
|
||||||
assert_equal(nil, Complex('5x', exception: false))
|
Complex(*args, exception: true)
|
||||||
}
|
end
|
||||||
assert_nothing_raised(ArgumentError){
|
assert_nothing_raised(error, message) do
|
||||||
assert_equal(nil, Complex(nil, exception: false))
|
assert_nil(Complex(*args, exception: false))
|
||||||
}
|
assert_nil($!)
|
||||||
assert_nothing_raised(ArgumentError){
|
end
|
||||||
assert_equal(nil, Complex(Object.new, exception: false))
|
end
|
||||||
}
|
|
||||||
assert_nothing_raised(ArgumentError){
|
def test_Complex_with_exception
|
||||||
assert_equal(nil, Complex(1, nil, exception: false))
|
assert_complex_with_exception(ArgumentError, '5x')
|
||||||
}
|
assert_complex_with_exception(TypeError, nil)
|
||||||
assert_nothing_raised(ArgumentError){
|
assert_complex_with_exception(TypeError, Object.new)
|
||||||
assert_equal(nil, Complex(1, Object.new, exception: false))
|
assert_complex_with_exception(TypeError, 1, nil)
|
||||||
}
|
assert_complex_with_exception(TypeError, 1, Object.new)
|
||||||
|
|
||||||
o = Object.new
|
o = Object.new
|
||||||
def o.to_c; raise; end
|
def o.to_c; raise; end
|
||||||
assert_nothing_raised(ArgumentError){
|
assert_complex_with_exception(RuntimeError, o)
|
||||||
assert_equal(nil, Complex(o, exception: false))
|
assert_complex_with_exception(TypeError, 1, o)
|
||||||
}
|
|
||||||
assert_nothing_raised(ArgumentError){
|
|
||||||
assert_equal(nil, Complex(1, o, exception: false))
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_respond
|
def test_respond
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
|
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
|
||||||
#define RUBY_VERSION_TEENY 1
|
#define RUBY_VERSION_TEENY 1
|
||||||
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
|
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
|
||||||
#define RUBY_PATCHLEVEL 62
|
#define RUBY_PATCHLEVEL 63
|
||||||
|
|
||||||
#include "ruby/version.h"
|
#include "ruby/version.h"
|
||||||
#include "ruby/internal/abi.h"
|
#include "ruby/internal/abi.h"
|
||||||
|
|
Загрузка…
Ссылка в новой задаче