aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby
Commit message (Collapse)AuthorAgeFilesLines
* test/ruby/test_file_exhaustive.rb: fix test for HOME-less envsluislavena2012-08-291-1/+6
| | | | | | | * test/ruby/test_file_exhaustive.rb: fix test introduced in r36811 for posix environments where HOME is not defined. [ruby-core:47322] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* adding test coverage for invalid attribute namestenderlove2012-08-271-0/+13
| | | | | | Fixes #171 on github git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix r36805.naruse2012-08-241-1/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Improve require/File.expand_path performance on Windowsluislavena2012-08-241-0/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.in (mingw): add shlwapi to the list of dependency libs for Windows. * win32/Makefile.sub (EXTSOLIBS): ditto. * internal.h: declare internal functions rb_w32_init_file, rb_file_expand_path_internal and rb_file_expand_path_fast. * file.c (Init_File): invoke Windows initialization rb_w32_init_file * win32/file.c (rb_file_load_path_internal): new function. Windows-specific implementation that replaces file_expand_path. [Bug #6836][ruby-core:46996] * win32/file.c (rb_w32_init_file): new function. Initialize codepage cache for faster conversion encodings lookup. * file.c (file_expand_path): rename to rb_file_expand_path_internal. Conditionally exclude from Windows. * file.c (rb_file_expand_path_fast): new function. delegates to rb_file_expand_path_internal without performing a hit to the filesystem. * file.c (file_expand_path_1): use rb_file_expand_path_internal without path expansion (used by require). * file.c (rb_find_file_ext_safe): ditto. * file.c (rb_find_file_safe): ditto. * load.c (rb_get_expanded_load_path): use rb_file_expand_path_fast. * load.c (rb_feature_provided): ditto. * file.c (rb_file_expand_path): use rb_file_expand_path_internal with path expansion. * file.c (rb_file_absolute_path): ditto. * test/ruby/test_file_exhaustive.rb: new tests to exercise rb_file_expand_path_internal implementation and compliance with existing behaviors. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Added a test for CoW strings.tenderlove2012-08-231-0/+26
| | | | | | | by John Shahid <jvshahid@gmail.com> https://github.com/ruby/ruby/pull/148 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Test for r36803's singleton_class_of.naruse2012-08-231-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_fixnum.rb (TestFixnum#test_singleton_method): new test.usa2012-08-234-0/+20
| | | | | | | | | | | * test/ruby/test_bignum.rb (TestBignum#test_singleton_method): ditto. * test/ruby/test_float.rb (TestFloat#test_singleton_method): ditto. * test/ruby/test_symbol.rb (TestSymbol#test_singleton_method): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* load.c: keep encoding of feature namenobu2012-08-231-0/+17
| | | | | | | | | | | * file.c (rb_find_file_ext_safe, rb_find_file_safe): default to US-ASCII for encdb and transdb. * load.c (search_required): keep encoding of feature name. set loading path to filesystem encoding. [Bug #6377][ruby-core:44750] * ruby.c (add_modules, require_libraries): assume default external encoding as well as ARGV. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (invokesuper): reverted r36640 partially to make supershugo2012-08-231-6/+19
| | | | | | | | in a thread work correctly. [ruby-core:47284] [Bug #6907] * test/ruby/test_super.rb: related test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def: search up the cf stack for an object that is an instancetenderlove2012-08-221-0/+12
| | | | | | | | of the recipient class. Fixes [ruby-core:47186] * test/ruby/test_super.rb: related test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_trace.c: support TracePoint. [ruby-trunk - Feature #6895]ko12012-08-221-0/+218
| | | | | | | | | | | | * test/ruby/test_settracefunc.rb: add tests for above. * proc.c (rb_binding_new_with_cfp): add an internal function. * vm.c (rb_vm_control_frame_id_and_class): add an internal function. * vm_trace.c: add rb_add_event_hook2() and rb_thread_add_event_hook2(). Give us the good name for them! git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_setup_method): should not enable tail callshugo2012-08-221-0/+21
| | | | | | | optimization for frames with VM_FRAME_FLAG_FINISH. [ruby-dev:46065] [Bug #6901] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Suppress warningsnaruse2012-08-211-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test_continuation.rb (tracing_with_thread_set_trace_func):ko12012-08-211-1/+1
| | | | | | | | fix to use Thread#set_trace_func(nil), not set_trace_func(nil). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c: iclass as klass in cfpnobu2012-08-201-0/+54
| | | | | | | | | * vm_insnhelper.c (vm_call_method): follow iclasses as klass in cfp but not included modules. [ruby-core:47241] [Bug #6891] * vm_insnhelper.c (vm_call_bmethod): pass defined_class to follow proper ancestors. [ruby-core:47241] [Bug #6891] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_module.rb: workaround for ruby-mode.elnobu2012-08-201-1/+1
| | | | | | | | * test/ruby/test_module.rb (TestModule#test_undef): get rid of confusing ruby-mode.el by mixing special characters in //. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: preserve encodingsnobu2012-08-171-0/+24
| | | | | | | * object.c (rb_any_to_s, rb_obj_inspect): preserve encodings of class name and instance variable names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_trace.c, vm_core.h: simplify tracing mechanism.ko12012-08-161-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (1) add rb_hook_list_t data structure which includes hooks, events (flag) and `need_clean' flag. If the last flag is true, then clean the hooks list. In other words, deleted hooks are contained by `hooks'. Cleanup process should run before traversing the list. (2) Change check mechanism See EXEC_EVENT_HOOK() in vm_core.h. (3) Add `raw' hooks APIs Normal hooks are guarded from exception by rb_protect(). However, this protection is overhead for too simple functions which never cause exceptions. `raw' hooks are executed without protection and faster. Now, we only provide registration APIs. All `raw' hooks are kicked under protection (same as normal hooks). * include/ruby/ruby.h: remove internal data definition and macros. * internal.h (ruby_suppress_tracing), vm_trace.c: rename ruby_suppress_tracing() to rb_suppress_tracing() and remove unused function parameter. * parse.y: fix to use renamed rb_suppress_tracing(). * thread.c (thread_create_core): no need to set RUBY_VM_VM. * vm.c (mark_event_hooks): move definition to vm_trace.c. * vm.c (ruby_vm_event_flags): add a global variable. This global variable represents all of Threads and VM's event masks (T1#events | T2#events | ... | VM#events). You can check the possibility kick trace func or not with ruby_vm_event_flags. ruby_vm_event_flags is maintained by vm_trace.c. * cont.c (fiber_switch, rb_cont_call): restore tracing status. [Feature #4347] * test/ruby/test_continuation.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: forbid uninitialized classnobu2012-08-161-0/+2
| | | | | | | | * object.c (rb_class_initialize): forbid inheriting uninitialized class. another class tree not based on BasicObject cannot exist. [ruby-core:47148][Bug #6863] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Kernel#inspect: improve consistency and do not call #to_s.eregon2012-08-151-0/+25
| | | | | | | | | | | | | | | | | | | | * object.c (rb_obj_inspect): Kernel#inspect: do not call #to_s. A class can now benefit from the nice default #inspect even if it defines #to_s. Also, there is no more unexpected change in #inspect result. * NEWS: Add note about the change. * bignum.c, io.c, numeric.c, object.c, proc.c, vm.c (Init_*): Adapt internal structures (by aliasing #inspect to #to_s) so they don't rely on the removed behavior (#inspect calling overridden #to_s). * test/ruby/test_object.rb (test_inspect): add tests for Kernel#inspect. * lib/pp.rb (class PP): do not call #to_s anymore, as #inspect no more does (mame). * test/test_pp.rb (class PPInspectTest): remove related assertion (mame). [ruby-core:43238][Feature #6130] * test/drb/drbtest.rb (DRbCore#teardown, DRbAry#teardown): adapt DRb tests with the new change (shirosaki). [ruby-core:47182][Bug #6866] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r36699 and r36700. [Feature #6130]naruse2012-08-151-25/+0
| | | | | | | | | | | | | Revert "Kernel#inspect: improve consistency and do not call #to_s." Revert "update PP with recent Kernel#inspect change. Patch by Yusuke Endoh." r36699 cause test-all failure on test/drb/test_drb.rb and test/drb/test_drbssl.rb. Run test-all before commit. Moreover its ChangeLog formst is wrong: see CommitterHowto https://bugs.ruby-lang.org/projects/ruby/wiki/CommitterHowto#ChangeLog git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Kernel#inspect: improve consistency and do not call #to_s.eregon2012-08-141-0/+25
| | | | | | | | | | | | | | | A class can now benefit from the nice default #inspect even if it defines #to_s. Also, there is no more unexpected change in #inspect result. Internal structures have been adapted so they don't rely on the removed behavior (#inspect calling overridden #to_s). * object.c (rb_obj_inspect): Kernel#inspect: do not call #to_s. * test/ruby/test_object.rb (test_inspect): add tests for Kernel#inspect. * bignum.c, io.c, numeric.c, object.c, proc.c, vm.c (Init_*): alias #inspect to #to_s where it was expected. [ruby-core:43238][Feature #6130] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_file_exhaustive.rbusa2012-08-141-0/+14
| | | | | | | (TestFileExhaustive#test_stat_dotted_prefix): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_file_exhaustive.rbusa2012-08-141-0/+8
| | | | | | | (TestFileExhaustive#test_stat_drive_root): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Optimize winnt_statshirosaki2012-08-091-0/+7
| | | | | | | | | | | | | | | | | * test/ruby/test_file_exhaustive.rb (TestFileExhaustive#test_stat_special_file): add a test. GetFileAttributesExW fails to get attributes of special files such as pagefile.sys. * win32/win32.c (check_valid_dir): for performance, check the path by FindFirstFileW only if the path containts "..." * win32/win32.c (winnt_stat): use GetFileAttributesExW instead of FindFirstFileW since GetFileAttributesExW is faster. Based on the patch by Dusan D. Majkic. [ruby-core:47083] [Feature #6845] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: cref-scope hacknobu2012-08-081-0/+12
| | | | | | | | * vm_eval.c (eval_under): singletons other than special constants don't need cref-scope hack. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use local variablesnobu2012-08-084-62/+62
| | | | | | | | | | | * test/ruby/test_eval.rb: use local variables instead global variables if possible. * test/ruby/test_ifunless.rb: ditto. * test/ruby/test_iterator.rb: ditto. * test/ruby/test_stringchar.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c, insns.def (checkmatch):ko12012-08-081-0/+20
| | | | | | | | | | | | | | | | | | remove checkincludearray instruction and add new instruction checkmatch. This change is to solve [Bug #4438] "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
* * test/ruby/test_require.rb (TestRequire#test_require_twice): added.usa2012-08-071-0/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_method.c (rb_redefine_opt_method): use RCLASS_ORIGIN to avoidshugo2012-08-071-0/+24
| | | | | | SEGV when a module-prepended class is refined. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_file_exhaustive.rbusa2012-08-071-1/+7
| | | | | | | | (TestFileExhaustive#test_expand_path*): refactoring. split the method into some chunks of the same kind of tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test String#each_line when separator is longer than string.tenderlove2012-08-071-0/+7
| | | | | | Thanks Charles Nutter. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* method in instance_evalnobu2012-08-061-0/+15
| | | | | | | | | | | | * class.c (rb_special_singleton_class_of): utility function. * vm_eval.c (eval_under): special deal for class variable scope with instance_eval. * vm_eval.c (rb_obj_instance_eval, rb_obj_instance_exec): allow method definition in instance_eval of special constants. [ruby-core:28324] [Bug #2788] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_exception.rb: split testsnobu2012-08-061-4/+26
| | | | | | | | * 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
* test_exception.rb: use local variablesnobu2012-08-061-17/+17
| | | | | | | | * 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
* * internal.h, class.c, eval.c, insns.def: find the appropriateshugo2012-08-061-3/+77
| | | | | | | receiver for super called in instance_eval. If such a receiver is not found, raise NoMethodError. [ruby-dev:39772] [Bug #2402] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* insns.def: use klass in cfpnobu2012-08-061-0/+18
| | | | | | | | * insns.def (defined): now should use klass in the current control frame to search superclass, not me->klass. reported by naruse. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_alias.rb (test_super_in_aliased_module_method):shugo2012-08-041-0/+25
| | | | | | add a test case for [ruby-dev:46028], which fails in 1.8. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_super.rb: renamenobu2012-08-031-1/+1
| | | | | | | | * test/ruby/test_super.rb (TestSuper#test_double_include2): rename to get rid of redefinition. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (invokesuper): reverted r36612 so that super in anshugo2012-08-031-1/+37
| | | | | | aliased method will not call the same method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (invokesuper): don't skip the same class. instead, useshugo2012-08-031-0/+28
| | | | | | | rb_method_entry_get_with_omod() to avoid infinite loop when super is used with refinements. [ruby-core:30450] [Bug #3351] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_mod_using): new method Module#using. [experimental]shugo2012-08-023-8/+306
| | | | | | | | * eval.c (rb_mod_refine): new method Module#refine. [experimental] * eval.c (f_using): new method Kernel#using. [experimental] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: return true or false. Patch by Dirkjan Bussink. [Bug #6821]nari2012-08-021-0/+9
| | | | | | * test/ruby/test_gc.rb: add test-case for this bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_rubyoptions.rb: fix test failure on Windowsshirosaki2012-07-311-3/+10
| | | | | | | | | | | * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_encoding): Fix test_encoding failure on Windows. With chcp 65001, 1252 and 437, test_encoding failed. Test result depends on locale because LANG environment variable doesn't affect locale on Windows. [ruby-core:46872] [Bug #6813] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c: fix duplication of prepended modulenobu2012-07-311-0/+9
| | | | | | | | | * class.c (include_class_new): fix duplication of prepended module. since m_tbl of prepended module is always zero, copy from its copy iclass of original. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_module.rb (TestModule#test_classpath): fixnobu2012-07-311-2/+2
| | | | | | | typos. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* On amd64, RUBY_PLATFORM is x86_64-netbsd6.99.7.naruse2012-07-301-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c: fix r36574nobu2012-07-301-1/+5
| | | | | | | | | | | | | * variable.c (find_class_path): no retry when preferred is given. * variable.c (classname): if classid is set try it to find full qualified class path, and then try arbitrary class path. try tmp_classpath at last even if enclosing namespace is anonymous. fix r36574. [ruby-core:42865][Bug #6078] * variable.c (rb_set_class_path_string, rb_set_class_path): set tmp_classpath instead of classpath if the name is not permanent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Suppress warnings.naruse2012-07-301-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* NetBSD's /proc/<pid>/task is broken.naruse2012-07-301-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e