зеркало из https://github.com/github/ruby.git
Allow -1 as the value of `--backtrace-limit` option
-1 is a legitimate backtrace limit — in fact, it’s the default — so it should be possible to provide it with the `--backtrace-limit` option.
This commit is contained in:
Родитель
125b4461df
Коммит
de68e240c7
2
ruby.c
2
ruby.c
|
@ -1449,7 +1449,7 @@ proc_long_options(ruby_cmdline_options_t *opt, const char *s, long argc, char **
|
|||
else if (is_option_with_arg("backtrace-limit", Qfalse, Qtrue)) {
|
||||
char *e;
|
||||
long n = strtol(s, &e, 10);
|
||||
if (errno == ERANGE || n < 0 || *e) rb_raise(rb_eRuntimeError, "wrong limit for backtrace length");
|
||||
if (errno == ERANGE || n < -1 || *e) rb_raise(rb_eRuntimeError, "wrong limit for backtrace length");
|
||||
opt->backtrace_length_limit = (int)n;
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -74,7 +74,7 @@ class TestRubyOptions < Test::Unit::TestCase
|
|||
def test_backtrace_limit
|
||||
assert_in_out_err(%w(--backtrace-limit), "", [], /missing argument for --backtrace-limit/)
|
||||
assert_in_out_err(%w(--backtrace-limit= 1), "", [], /missing argument for --backtrace-limit/)
|
||||
assert_in_out_err(%w(--backtrace-limit=-1), "", [], /wrong limit for backtrace length/)
|
||||
assert_in_out_err(%w(--backtrace-limit=-2), "", [], /wrong limit for backtrace length/)
|
||||
code = 'def f(n);n > 0 ? f(n-1) : raise;end;f(5)'
|
||||
assert_in_out_err(%w(--backtrace-limit=1), code, [],
|
||||
[/.*unhandled exception\n/, /^\tfrom .*\n/,
|
||||
|
|
Загрузка…
Ссылка в новой задаче