1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

71 commits

Author SHA1 Message Date
nobu
1c89b6bd1f test_exception.rb: get rid of did_you_mean
* test/ruby/test_exception.rb (test_message_of_name_error): get
  rid of failure caused by did_you_mean message.
  [ruby-core:71282] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-31 03:18:25 +00:00
nobu
ce7f8287e2 eval_error.c: Fix a format of NameError#message
* eval_error.c (undef_mesg_for): fix typo.  Before this commit
  `ArgumentError: malformed format string - %$` was raised when
  `NameError#message` is called.  [ruby-core:71282] [Bug ]
  [Fix GH-1077]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-31 01:22:51 +00:00
nobu
a2369fc2fe encoding for inspect
* test/ruby/test_{exception,module,object}.rb: inspect result
  depend on the default external encoding.  [Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-28 07:56:13 +00:00
nobu
72ff61f4a8 NameError#receiver of uninitialized constant
* error.c (name_err_mesg_to_str): quote the name if unprintable.
* object.c (check_setter_id): use rb_check_id to convert names.
* variable.c (uninitialized_constant): use NameError::message to
  keep the receiver of uninitialized constant.  [Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-28 06:24:12 +00:00
nobu
4191a6b90d preserve encodings in error messages
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-28 02:40:46 +00:00
nobu
149dadf368 vm_eval.c: set method_missing_reason
* vm_eval.c (send_internal): set method_missing_reason before
  invoking overriding method_missing method so that the default
  method_missing can achieve it properly.
  [ruby-core:68515] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 06:25:21 +00:00
nobu
51de63dfb9 error.c: NameError#receiver
* error.c (name_err_receiver): add NameError#receiver method.
  [Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-18 04:32:50 +00:00
nobu
54f1d71ab2 test for [ruby-core:67473] [Bug ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-10 04:02:08 +00:00
usa
75ec406b43 * test_exception.rb: indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-29 06:00:19 +00:00
usa
84e90deb0e * test/ruby/test_exception.rb (TestException#test_output_string_encoding): need
to specify the encoding of script.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-28 23:52:34 +00:00
usa
3987392187 * test/ruby/test_exception.rb (TestException#test_output_string_encoding): test
for r48637.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-28 22:32:36 +00:00
nobu
5cf688a588 test_exception.rb: missing test
* test/ruby/test_exception.rb (test_name_error_info): add missing
  test of NoMethodError and NameError.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-18 15:11:03 +00:00
nobu
558b9191c0 vm_eval.c: UncaughtThrowError
* vm_eval.c (rb_throw_obj): throw UncaughtThrowError instead of
  ArgumentError.  [Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15 07:28:08 +00:00
akr
fb2008a73a * test/lib/envutil.rb: Moved from test/ruby/.
* test/lib/find_executable.rb: Ditto.

* test/lib/memory_status.rb: Ditto.

* test/lib/test/unit.rb: require envutil.

* test/: Don't require envutil in test files.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-13 16:05:37 +00:00
kazu
b550034c8b Fix typos in assert messages [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-09 13:12:14 +00:00
nobu
72ce1a4759 test_exception.rb: more tests
* test/ruby/test_exception.rb: more tests for catch and throw.
  catch but no throw, autogenerated tag, and uncaught throw.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-07 12:08:24 +00:00
nobu
fd4df3be5c eval.c: no overwrite SystemStackError backtrace
* eval.c (setup_exception): should not overwrite SystemStackError
  backtrace if set already.  [ruby-core:63377] [Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-28 04:58:53 +00:00
nobu
3ff85b795a eval.c: no method calls at stack overflow
* eval.c (setup_exception): get rid of method calls before raising
  stack overflow, not to cause stack overflow again.
* defs/id.def: add IDs for backtraces.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-28 04:58:25 +00:00
nobu
f96f013955 eval_error.c: newline always
* eval_error.c (error_print): put a newline after an anonymous
  exception class name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-25 17:45:10 +00:00
nobu
053759edfc Backtrace for SystemStackError
* eval.c (setup_exception): set backtrace in system stack error
  other than the pre-allocated sysstack_error.  [Feature ]
* proc.c (Init_Proc): freeze the pre-allocated sysstack_error.
* vm_insnhelper.c (vm_stackoverflow): raise new instance for each
  times without calling any methods to keep the backtrace with no
  further stack overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-23 02:35:18 +00:00
nobu
d689dca633 eval.c: pass unknown options
* eval.c (extract_raise_opts): pass unknown options to the
  exception, so that exception class can receive a hash argument.
  [ruby-core:63203] [Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-17 03:37:47 +00:00
naruse
e5acaa0313 add --disable-gem
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-30 15:06:07 +00:00
usa
0562c4f76d * test/ruby: get rid of warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-04 13:55:24 +00:00
nobu
a8cb9b02a0 eval.c: preserve encoding
* eval.c (setup_exception): preserve exception class name encoding
  in debug mode messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-26 05:10:46 +00:00
nobu
651b394a12 eval.c: preserve errinfo
* eval.c (setup_exception): preserve errinfo across calling #to_s
  method on the exception.  [ruby-core:61091] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-26 04:26:23 +00:00
nobu
be604acda7 object.c: error message encoding
* object.c (convert_type, rb_convert_type, rb_check_convert_type),
  (rb_to_integer): preserve class name encoding error messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-30 06:16:15 +00:00
nobu
044ef87328 test_exception.rb: ignore SystemStackError
* test/ruby/test_exception.rb (test_machine_stackoverflow_by_define_method):
  ignore propagated SystemStackError, as well as
  test_machine_stackoverflow, which has not bee rescued in the child
  process by unknown reason.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-30 02:45:40 +00:00
nobu
60e85501f2 thread_pthread.c: get current main thread stack size
* thread_pthread.c: get current main thread stack size, which may
  be expanded than allocated size at initialization, by rlimit().
  [ruby-core:60113] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-27 12:53:48 +00:00
nobu
8a46d4027c eval.c: raise with cause
* eval.c (rb_f_raise): add cause: optional keyword argument.
  [ruby-core:58610] [Feature ] [EXPERIMENTAL]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-31 14:49:16 +00:00
nobu
e5b5ee7487 test_exception.rb: ignore SystemStackError
* test/ruby/test_exception.rb (test_machine_stackoverflow): ignore
  propagated SystemStackError, which has not bee rescued in the
  child process by unknown reason.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 14:02:16 +00:00
nobu
cdde8c23de test_exception.rb: enclose hash defininition
* test/ruby/test_exception.rb: (test_machine_stackoverflow): enclose
  hash defininition because SystemStackError raises at line 3 on
  FreeBSD, for unknown reason.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-20 09:01:42 +00:00
nobu
340390093b eval_intern.h: refine stack overflow detection
* eval_intern.h (TH_PUSH_TAG, TH_EXEC_TAG): refine stack overflow
  detection.  chain local tag after setjmp() successed on it, because
  calling setjmp() also can overflow the stack.
  [ruby-dev:47804] [Bug ]
* vm_eval.c (rb_catch_obj): now th->tag points previous tag until
  TH_EXEC_TAG().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-18 13:47:56 +00:00
nobu
549b35c1dc eval.c: refactor exception cause
* eval.c (setup_exception): set up cause after exception to be raised
  is fixed.  [Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-15 14:08:49 +00:00
nobu
b050cc5ab9 error.c: Exception#cause
* error.c (exc_cause): captured previous exception.
* eval.c (make_exception): capture previous exception automagically.
  [Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-10 13:16:33 +00:00
nobu
4a21c8cc27 test_exception.rb: missing test
* test/ruby/test_exception.rb (test_to_s): missing test for r30455.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-28 04:11:20 +00:00
nobu
9ef55da910 test/unit/assertions.rb: return exception
* lib/test/unit/assertions.rb (assert_raise_with_message): return
  raised exception same as assert_raise.

* test/ruby, test/-ext-: use assert_raise_with_message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-09 08:43:12 +00:00
ko1
22468a4f92 * vm_insnhelper.c (vm_push_frame): fix stack overflow check codes.
Stack overflow check should be done *after* pushing a stack frame.
  However, some stack overflow checking codes checked *before*
  pushing a stack frame with iseq->stack_max.
  To solve this problem, add a new parameter `stack_max' to specify
  a possible consuming stack size.
* vm_core.h (CHECK_VM_STACK_OVERFLOW0): add to share the stack overflow
  checking code.
* insns.def: catch up this change.
* vm.c, vm_eval.c: ditto.
* test/ruby/test_exception.rb: add a stack overflow test.
  This code is reported by nobu.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-06 08:33:05 +00:00
shugo
1f828497d1 * safe.c (rb_set_safe_level, safe_setter): raise an ArgumentError
when $SAFE is set to 4.  $SAFE=4 is now obsolete.
  [ruby-core:55222] [Feature ]

* object.c (rb_obj_untrusted, rb_obj_untrust, rb_obj_trust):
  Kernel#untrusted?, untrust, and trust are now deprecated.
  Their behavior is same as tainted?, taint, and untaint,
  respectively.

* include/ruby/ruby.h (OBJ_UNTRUSTED, OBJ_UNTRUST): OBJ_UNTRUSTED()
  and OBJ_UNTRUST() are aliases of OBJ_TAINTED() and OBJ_TAINT(),
  respectively.

* array.c, class.c, debug.c, dir.c, encoding.c, error.c, eval.c,
  ext/curses/curses.c, ext/dbm/dbm.c, ext/dl/cfunc.c,
  ext/dl/cptr.c, ext/dl/dl.c, ext/etc/etc.c, ext/fiddle/fiddle.c,
  ext/fiddle/pointer.c, ext/gdbm/gdbm.c, ext/readline/readline.c,
  ext/sdbm/init.c, ext/socket/ancdata.c, ext/socket/basicsocket.c,
  ext/socket/socket.c, ext/socket/udpsocket.c,
  ext/stringio/stringio.c, ext/syslog/syslog.c, ext/tk/tcltklib.c,
  ext/win32ole/win32ole.c, file.c, gc.c, hash.c, io.c, iseq.c,
  load.c, marshal.c, object.c, proc.c, process.c, random.c, re.c,
  safe.c, string.c, thread.c, transcode.c, variable.c,
  vm_insnhelper.c, vm_method.c, vm_trace.c: remove code for
  $SAFE=4.

* test/dl/test_dl2.rb, test/erb/test_erb.rb,
  test/readline/test_readline.rb,
  test/readline/test_readline_history.rb, test/ruby/test_alias.rb,
  test/ruby/test_array.rb, test/ruby/test_dir.rb,
  test/ruby/test_encoding.rb, test/ruby/test_env.rb,
  test/ruby/test_eval.rb, test/ruby/test_exception.rb,
  test/ruby/test_file_exhaustive.rb, test/ruby/test_hash.rb,
  test/ruby/test_io.rb, test/ruby/test_method.rb,
  test/ruby/test_module.rb, test/ruby/test_object.rb,
  test/ruby/test_pack.rb, test/ruby/test_rand.rb,
  test/ruby/test_regexp.rb, test/ruby/test_settracefunc.rb,
  test/ruby/test_struct.rb, test/ruby/test_thread.rb,
  test/ruby/test_time.rb: remove tests for $SAFE=4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-12 14:20:51 +00:00
akr
8f671120f1 * test/csv/test_features.rb, test/logger/test_logger.rb
test/mkmf/test_have_macro.rb, test/net/http/test_http.rb,
  test/openssl/test_config.rb, test/psych/test_encoding.rb,
  test/psych/test_exception.rb, test/psych/test_psych.rb,
  test/psych/test_tainted.rb, test/readline/test_readline.rb,
  test/rexml/test_contrib.rb, test/ruby/test_autoload.rb,
  test/ruby/test_beginendblock.rb, test/ruby/test_exception.rb,
  test/ruby/test_file.rb, test/ruby/test_io.rb,
  test/ruby/test_marshal.rb, test/ruby/test_process.rb,
  test/ruby/test_require.rb, test/ruby/test_rubyoptions.rb,
  test/syslog/test_syslog_logger.rb, test/webrick/test_httpauth.rb,
  test/zlib/test_zlib.rb: Use Tempfile.create.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-20 23:03:52 +00:00
naruse
d6674f8f82 Add --disable-gems for tests which doesn't use rubygems
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-19 10:41:57 +00:00
nobu
c3da426d10 remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 12:34:37 +00:00
nobu
2fe13f62ef vm.c: pass through thrown objects
* vm.c (rb_vm_jump_tag_but_local_jump): pass through thrown objects.
  [ruby-dev:46234] [Bug ]
* vm_eval.c (rb_eval_cmd): if state is non-zero, val should be nil and
  rb_vm_jump_tag_but_local_jump() just jump tag.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-19 13:22:03 +00:00
shugo
a1ed68b931 * error.c (exc_to_s, name_err_to_s, name_err_mesg_to_str): do not
taint messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-02 17:25:10 +00:00
ko1
93b6f8d619 * compile.c, insns.def (checkmatch):
remove checkincludearray instruction and
  add new instruction checkmatch.
  This change is to solve
  [Bug ] "rescue args type check omitted".
* iseq.c: increment ISEQ_MAJOR_VERSION because removal of
  checkincludearray instruction.
* vm_core.h: add several definitions for
  the checkmatch instruction.
* vm_insnhelper.c (check_match): added.
* bootstraptest/test_exception.rb: add a test.
* test/ruby/test_exception.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-08 07:52:19 +00:00
nobu
745de093db test_exception.rb: split tests
* test/ruby/test_exception.rb (test_exception, test_else): split huge
  tests into simple tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-06 13:06:37 +00:00
nobu
ddabdd4427 test_exception.rb: use local variables
* test/ruby/test_exception.rb (test_exception, test_else): use local
  variables instead unnecessary global variables.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-06 13:06:16 +00:00
nobu
d19e5328d8 suppress warning.
* test/ruby/envutil.rb: suppress warnings.

* test/ruby/test_exception.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-16 08:38:22 +00:00
nobu
36ada1b318 fix indent
* test/ruby/test_exception.rb (test_exception): fix indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-16 08:38:20 +00:00
nobu
9faa910961 Tempfile#open
* test/ruby/test_exception.rb (test_systemexit_new,
  test_exception_in_exception_equal): use Tempfile#open.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-16 08:38:18 +00:00
nagachika
15e1ff7f23 * error.c (exc_equal): clear rb_thread_t::errinfo when ignore
an exception under rb_protect(). [ruby-core:41979] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-14 09:36:18 +00:00