summaryrefslogtreecommitdiff
path: root/test/ruby
AgeCommit message (Collapse)Author
2015-02-06merge revision(s) 49180: [Backport #10794]naruse
* test/ruby/test_symbol.rb (TestSymbol#test_symbol_fstr_leak): get rid of a false positive on mswin CI. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-05merge revision(s) 49082: [Backport #10661]naruse
* parse.y (gettable_gen): disable warnings of possible reference to a local variable defined in a past scope. [ruby-core:67162] [Bug #10661] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-26merge revision(s) 49322: [Backport #10753]naruse
* vm_method.c (check_definition): Module#public_method_defined?, Module#private_method_defined?, Module#protected_method_defined? should not use refinements. [ruby-core:67656] [Bug #10753] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-22merge revision(s) 49266: [Backport #10689]naruse
* eval_intern.h, vm.c, vm_eval.c, vm_insnhelper.c: change throw mechanism (not save target ep, but save target cfp). It fixes `unexpected break' bug that occurs when TracePoint#binding is called. [ruby-dev:48797] [Bug #10689] * test/ruby/test_settracefunc.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-19merge revision(s) 49184: [Backport #10707]naruse
* vm_method.c (rb_method_entry): if no super class, no original method entry. [ruby-core:67389] [Bug #10707] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-18merge revision(s) 49225: [Backport #10711]naruse
* test/ruby/test_numeric.rb (TestNumeric#test_coerce): fixed wrong message. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-17merge revision(s) 49224,49234,49235: [Backport #10711]naruse
* numeric.c (bit_coerce): use original value for error message [ruby-core:67405] [Bug #10711] * test/ruby/test_numeric.rb (test_coerce): check error message git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-17merge revision(s) 49221: [Backport #10731]naruse
* vm_method.c (rb_alias): raise a NameError when creating alias to a refined method if the original method of the refined method is not defined. [ruby-core:67523] [Bug #10731] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-17merge revision(s) 49193: [Backport #10719]naruse
* parse.y (assocs, assoc): eliminate splatting empty literal hashes. [ruby-core:67446] [Bug #10719] * compile.c (compile_array_): supprt splatted hash in hash type. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-17merge revision(s) 49201,49203: [Backport #10727]naruse
* eval_error.c (error_print): pos and len parameters of rb_str_substr() are counted by characters, not bytes. use rb_str_subseq() instead. [Bug #10727] [ruby-core:67473] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-17merge revision(s) 49182,49183: [Backport #10706]naruse
vm_method.c: fix change refined new method visibility * vm_method.c (rb_export_method): bail out if the original method is undefined when the method is refined. [ruby-core:67387] [Bug #10706] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-16merge revision(s) 49162: [Backport #10698]naruse
* time.c (timelocalw): Set tm_isdst field -1 if vtm->isdst is VTM_ISDST_INITVAL. This bug is introduced at packing struct vtm (r45155). [ruby-core:67345] [Bug #10698] Reported by Boris Ruf. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-16merge revision(s) 49148: [Backport #9917]naruse
* test/ruby/test_io.rb: added timeout for AIX environment. [ruby-core:62983][Bug #9917] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-16merge revision(s) 49090: [Backport #10686]naruse
* symbol.c (rb_gc_free_dsymbol): delete from global fstr hash * test/ruby/test_symbol.rb (test_symbol_fstr_leak): test for bug [ruby-core:67268] [Bug #10686] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-16merge revision(s) 49088: [Backport #10685]naruse
* vm_args.c (keyword_hash_p): fix non-symbol keys hash. rb_extract_keywords() returns 0 not Qnil when no symbol keys is included. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-16merge revision(s) 49058: [Backport #10670]naruse
* re.c (unescape_nonascii): append excape sequence as-is not unescaped character, to get rid of unexpected meta-character. [ruby-core:67193] [Bug #10670] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-03merge revision(s) 49055: [Backport #10667]naruse
* thread.c (rb_thread_variable_get): fix dynamic symbol keys. rb_check_id() returns non-zero only for static symbols, whereas thread local variable keys can be dynamic symbols. [ruby-core:67185] [Bug #10667] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-31merge revision(s) 49041: [Backport #10659]naruse
* parse.y (f_kwrest, new_args_tail_gen): unnamed rest keyword and keywords bits arguments should be unique. since internal IDs depend on the local variable index in the current scope, new ID should be made before popping those vtables. [ruby-core:67157] [Bug #10659] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-25file.c: drop ignored charsnobu
* file.c (rb_file_expand_path_internal): drop characters ignored by filesystem on Mac OS X. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-25dir.c: replace_real_basenamenobu
* dir.c (replace_real_basename): get the real name and replace the base name with it by getattrlist(2) if available. suggested by Matthew Draper at [ruby-core:67116]. [Bug #10015] * dir.c (glob_helper): get the real name of the whole path, not only the last name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-25parse.y: warn past scope variablenobu
* parse.y (gettable_gen): warn possible reference to a local variable defined in a past scope. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-24test_gc.rb: termsignobu
* test/ruby/test_gc.rb (test_interrupt_in_finalizer): also check termsig to ensure killed by SIGINT. and try SIGSEGV to dump something. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-19* test/ruby/test_rubyoptions.rb: (TestRubyOptions#test_verbose): support RC.usa
see also r48888. reported by Vit Ondruch. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-19* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_version): should supportusa
rc :-P git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-18test/ruby/test_iseq.rb: spelling fix: s/diable/disable/normal
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-17* compile.c (iseq_compile_each): checkko1
iseq->compile_data->option->specialized_instruction for opt_* insn. * test/ruby/test_iseq.rb: check no specialized_instructions option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-17compile.c: skip opt_* insns for fstr args with block givennormal
* compile.c (iseq_compile_each): only emit opt_str_freeze, opt_aref_with, and opt_aset_with insn when no block is given [Bug #10557] [ruby-core:66595] * test/ruby/test_optimization.rb (test_block_given_aset_aref): new test for bug thanks to Bartosz Kopinski. (test_string_freeze): additional assertion for object_id git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-16iseq.c: struct accessorsnobu
* iseq.c (rb_method_for_self_aref, rb_method_for_self_aset): call accessor functions directly, not to be affected by [] and []= methods. [ruby-core:66846] [Bug #10601] * struct.c (define_aref_method, define_aset_method): ditto. * vm_insnhelper.c (rb_vm_opt_struct_aref, rb_vm_opt_struct_aset): direct accessors of Struct. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-16test_rubyoptions.rb: clean crash lognobu
* test/ruby/test_rubyoptions.rb (test_segv_loaded_features): clean crash log on OS X after intentional segv. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-16* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):ko1
extend timeout seconds to 60 for RGENGC_CHECK_MODE > 0 environment. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-15* test/ruby/test_time.rb: Add test for getlocal(nil). Seeheadius
jruby/jruby#2310. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-15* test/ruby/test_io_m17n.rb: Add test for coderange clearing inheadius
IO#read with buffer. See jruby/jruby#2316. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-15* ext/objspace/objspace.c: ObjectSpace.memsize_of(obj) returnsko1
with sizeof(RVALUE). [Bug #8984] * gc.c (obj_memsize_of): ditto. * NEWS: add a NEWS entry. * test/objspace/test_objspace.rb: catch up this fix. * test/ruby/test_file_exhaustive.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-15string.c: fix coderange for non-endianness stringnobu
* string.c (rb_enc_str_coderange): dummy wchar, non-endianness encoding string cannot be ascii only. [ruby-core:66835] [Bug #10598] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-15comment out for x86 extended precisionnaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-14parse.y: warn reference after method definitionnobu
* parse.y (primary): restore current_arg so that circular reference after a method definition is also warned. [ruby-core:61299] [Bug #9593] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-13test_gc.rb: workaround for Windowsnobu
* test/ruby/test_gc.rb (test_interrupt_in_finalizer): use inner process signal for Windows. [ruby-core:66825] [Bug #10595] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-13test_gc.rb: waitnobu
* test/ruby/test_gc.rb (test_interrupt_in_finalizer): wait longer and send more interrupts for slower cases. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-13vm_trace.c: defer interrupts while postponed jobsnobu
* vm_trace.c (rb_postponed_job_flush): mask signal trap interrupt too to defer handling after finalizers finished. [ruby-core:66825] [Bug #10595] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-13test_object.rb: no RSS checknobu
* test/ruby/test_object.rb (test_copied_ivar_memory_leak): ignore RSS to disable false failure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12string.c: check arguments for cryptnobu
* string.c (rb_str_crypt): check arguments more strictly. * crypt() is not for wide char strings * salt bytes should not be NUL git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-11test_process.rb: splitnobu
* test/ruby/test_process.rb (test_execopts_redirect): split large test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-09struct: avoid all O(n) behavior on accessnormal
This avoids O(n) on lookups with structs over 10 members. This also avoids O(n) behavior on all assignments on Struct members. Members 0..9 still use existing C methods to read in O(1) time Benchmark results: vm2_struct_big_aref_hi* 1.305 vm2_struct_big_aref_lo* 1.157 vm2_struct_big_aset* 3.306 vm2_struct_small_aref* 1.015 vm2_struct_small_aset* 3.273 Note: I chose use loading instructions from an array instead of writing directly to linked-lists in compile.c for ease-of-maintainability. We may move the method definitions to prelude.rb-like files in the future. I have also tested this patch with the following patch to disable the C ref_func methods and ensured the test suite and rubyspec works --- a/struct.c +++ b/struct.c @@ -209,7 +209,7 @@ setup_struct(VALUE nstr, VALUE members) ID id = SYM2ID(ptr_members[i]); VALUE off = LONG2NUM(i); - if (i < N_REF_FUNC) { + if (0 && i < N_REF_FUNC) { rb_define_method_id(nstr, id, ref_func[i], 0); } else { * iseq.c (rb_method_for_self_aref, rb_method_for_self_aset): new methods to generate bytecode for struct.c [Feature #10575] * struct.c (rb_struct_ref, rb_struct_set): remove (define_aref_method, define_aset_method): new functions (setup_struct): use new functions * test/ruby/test_struct.rb: add test for struct >10 members * benchmark/bm_vm2_struct_big_aref_hi.rb: new benchmark * benchmark/bm_vm2_struct_big_aref_lo.rb: ditto * benchmark/bm_vm2_struct_big_aset.rb: ditto * benchmark/bm_vm2_struct_small_aref.rb: ditto * benchmark/bm_vm2_struct_small_aset.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-09thread.c: get rid of invalid ID symbolnobu
* eval.c (rb_frame_last_func): return the most recent frame method name. * thread.c (recursive_list_access): use the last method name, instead of the current method name which can be unset in some cases, not to use a symbol by the invalid ID. [ruby-core:66742] [Bug #10579] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-05test_rubyoptions.rb: non-codepage names globnobu
* test/ruby/test_rubyoptions.rb (test_command_line_glob_noncodepage): more assertion for fallback replacement on non-codepage names. [ruby-dev:48752] [Bug #10555] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-05test_rubyoptions.rb: non-codepage names globnobu
* test/ruby/test_rubyoptions.rb (test_command_line_glob_noncodepage): test for command line globbing on non-codepage names. [ruby-dev:48752] [Bug #10555] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-05parse.y: fix lex_state after tLABEL_ENDnobu
* parse.y (parser_yylex): fix lex_state after tLABEL_END, should be EXPR_LABELARG to be followed by "paren with arg". [ruby-core:66705] [Feature #4935] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-03iseq.c: avoid segfault on incomplete iseqnormal
Compile failures will trigger iseq_free before iseq->callinfo_entries are allocated at all. * iseq.c (iseq_free): avoid segfault on incomplete iseq * test/ruby/test_syntax.rb (test_invalid_next): new test for syntax error, not segfault git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-02* test/ruby/test_eval.rb: add case to test "sticky" instance_evalheadius
self when passed a reified block (proc/lambda). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-30* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):akr
Don't raise Interrupt. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e