Commit graph

6735 commits

Author SHA1 Message Date
nagachika
997518c677 * test/ruby/test_process.rb (test_setsid): call Process.getsid for
child process in child process. because parent process call
  Process.getsid with io.pid, Errno::ESRCH could be raised.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-25 16:59:07 +00:00
naruse
1ab73afbf9 Fix test to follow r37838
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-25 07:39:59 +00:00
knu
e58d0bd393 Move tests embedded in lib/set.rb to test/test_set.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 18:51:45 +00:00
knu
3f9b0936aa String#{lines,chars,codepoints,bytes} now return an array.
* string.c (rb_str_each_line, rb_str_lines): String#lines now
  returns an array instead of an enumerator.  Passing a block is
  deprecated but still supported for backwards compatibility.
  Based on the patch by yhara. [Feature #6670]

* string.c (rb_str_each_char, rb_str_chars): Ditto for
  String#chars.

* string.c (rb_str_each_codepoint, rb_str_codepoints): Ditto for
  String#codepoints.

* string.c (rb_str_each_byte, rb_str_bytes): Ditto for
  String#bytes.

* NEWS: Add notes for the above changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 18:46:15 +00:00
knu
6c1bfbe478 Fix tests of rb_warning().
* test/ruby/envutil.rb (Test::Unit::Assertions#assert_warning)
  (Test::Unit::Assertions#assert_warn), test/ruby/envutil.rb,
  test/ruby/test_enumerator.rb, test/ruby/test_io_m17n.rb,
  test/ruby/test_regexp.rb, test/ruby/test_syntax.rb:
  assert_warn() and assert_warning() are reversed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 17:14:06 +00:00
shirosaki
1cdeab5cdd Fix WeakRef finalize
* array.c (rb_ary_delete_same_obj): new function for WeakRef.
  This deletes same objects as item argument in the array.

* internal.h (rb_ary_delete_same_obj): add a declaration.

* gc.c (wmap_final_func): remove WeakRef object reference from the
  array. rb_ary_delete() is not usable because it uses rb_equal() to
  compare object references.

* gc.c (wmap_finalize): remove recycled object references from weak
  map hash properly. How to get object reference from object id was
  wrong. st_delete() doesn't work properly if key and value arguments
  are same. The key of obj2wmap is referenced object and the value of
  obj2wmap is WeakRef array.

* gc.c (wmap_aset): obj2wmap should contain WeakRef array in the
  definition.

* test/test_weakref.rb
  (TestWeakRef#test_not_reference_different_object,
   TestWeakRef#test_weakref_finalize): add tests for above.
  [ruby-core:49044] [Bug #7304]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 12:26:54 +00:00
tadf
0114fde85a * test/ruby/test_rubyoptions.rb (test_usage, test_usage_long):
reduced, renamed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 10:31:10 +00:00
naruse
757413f6bb Rvert r37827 and r37828
Revert "Fix finalize of WeakRef"
This causes segv on rubyspec.
20121124T050101Z.log.html.gz

you can reproduce by
 make test-rubyspec MSPECOPT='-V library/weakref'

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 07:43:13 +00:00
ko1
9d803dfd5f * vm_trace.c (rb_tracepoint_attr_raised_exception): should not check
value before event checking.
* vm_trace.c (rb_tracepoint_attr_return_value): ditto.
* test/ruby/test_settracefunc.rb: add tests for TracePoint#return_value
  and TracePoint#raised_exception.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 04:12:30 +00:00
shirosaki
76cffcdbf2 Fix TestProcess#test_setsid
* test/ruby/test_process.rb (TestProcess#test_setsid): "./ruby-trunk"
  doesn't work on all environments. EnvUtil.rubybin would be suitable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 04:01:43 +00:00
shirosaki
82cac33ecb Fix finalize of WeakRef
* gc.c (wmap_final_func): remove WeakRef object reference from the
  array.

* gc.c (wmap_finalize): remove recycled object references from weak
  map hash properly. How to get object reference from object id was
  wrong. st_delete() doesn't work properly if key and value arguments
  are same. The key of obj2wmap is referenced object and the value of
  obj2wmap is WeakRef array.

* gc.c (wmap_aset): obj2wmap should contain WeakRef array in the
  definition.

* test/test_weakref.rb
  (TestWeakRef#test_not_reference_different_object): add a test for
  above.
  [ruby-core:49044] [Bug #7304]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 04:01:33 +00:00
kosaki
5611df706e * process.c (proc_getsid): adds new method for getting session id.
Contributed from fumiyas (Fumiyasu SATOH). Thank you!
  [Feature #6757] [ruby-dev:45977]
* configure.in: adds getsid check.
* test/ruby/test_process.rb (TestProcess#test_setsid): new test
  for the above.
* NEWS: news for the above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-24 02:51:24 +00:00
nobu
48df345894 ruby.c: wrap descriptions
* ruby.c (usage): wrap description lines if options are too long.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-23 08:31:57 +00:00
nobu
38a1bcb056 * ruby.c, test/ruby/test_rubyoptions.rb: revert r37815:r37816.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-23 08:31:52 +00:00
tadf
d53204f910 * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_usage2):
revert the previous.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-23 02:41:47 +00:00
nobu
0d280f3d63 test_rubyoptions.rb: refine assertion
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_usage2): refine
  assertion.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-23 02:13:48 +00:00
nobu
d03ed07e60 test_rubyoptions.rb: --help
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_usage2): now
  --help option is for modern terminals.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-23 02:12:09 +00:00
shirosaki
97ecab7b34 Fix cache validity check of require
* array.c (rb_ary_shared_with_p): fix cache validity check.
  If #pop or #shift has been called against $: or $", the array will
  be still shared with the snapshot. We check array length for cache
  validity.
  [ruby-core:49518] [Bug #7383]

* test/ruby/test_require.rb
  (TestRequire#test_require_with_array_pop,
   TestRequire#test_require_with_array_shift): add tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 14:55:32 +00:00
tadf
b4f25e30df * test/ruby/test_rubyoptions.rb: added a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 12:36:22 +00:00
knu
61e21e82ad Apply performance improvement to short byte array search.
* re.c (rb_memsearch_ss): Apply performance improvement to short
  byte array search for platforms without memmem(3).
  [Feature #6311] [ruby-dev:45530]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 05:23:12 +00:00
knu
9cbaeed6ed Add some corner cases to tests for String#index.
* test/ruby/test_string.rb (TestString#test_index): Add some
  corner cases to tests for String#index, which might fail if ruby
  directly used a buggy memmem(3) implementation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 05:02:30 +00:00
nari
cda3a0c75e * test/ruby/test_gc.rb (test_profiler_clear): fix wrong method
calls [Bug #7419] [ruby-core:49828].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-21 23:09:46 +00:00
nobu
e786aa711d io/wait: add IO#wait_writable method
* ext/io/wait/wait.c (io_wait_writable): this is easier to use than
  IO.select for a single IO object and is immune to the
  limitations/innefficiency of select() on platforms where poll/ppoll
  is available.  patched by Eric Wong.  [Feature #4646]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-21 13:40:00 +00:00
nari
fe9fc6df01 * gc.c (gc_profile_clear): realloc profile records if its size is
higher than the threshold, GC_PROFILE_RECORD_DEFAULT_SIZE * 2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-21 13:15:10 +00:00
shyouhei
5821c75148 revert r37710, requested by Tadayoshi Funaba [ruby-dev:46575]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-21 05:09:19 +00:00
naruse
9d71f70da9 * test/ruby/test_m17n_comb.rb (test_str_crypt): Use RbConfig to get
libc's directory. Patched by Vit Ondruch [ruby-core:49763] [Bug #7312]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 15:29:59 +00:00
naruse
bf445c240a fix guards for glibc crypt(3) see #7312
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 13:09:15 +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
suke
a00a9a28fb * test/win32ole/test_win32ole_type.rb (test_implemented_ole_types):
IShellDispatch6 bundled in Windows 8. Thanks to phasis68 (Heesob
  Park).  [ruby-core:49580][Bug #7403]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 12:34:21 +00:00
ko1
1da641a16b * vm_trace.c: rename and add TracePoint APIs.
(1) TracePoint.new(...){...} creates a new trace point
  but does not make it enable.
  (2) TracePoint.trace(...){...} creats a new trace point
  and enable it (same as old behavior).
  (3) TracePoint#enable make it enable (renamed from TracePoint#retrace).
  If block given, when enable only in block.
  (4) TracePoint#disable make it disable (renamed from TracePoint#untrace).
  If block given, when disable only in block.
  (5) TracePoint#enabled? returns this trace is enable or not.
* test/ruby/test_settracefunc.rb: addd tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 11:05:20 +00:00
ko1
553931962a * vm_trace.c: add two methods:
(1) TracePoint#return_value which returns return
  value on the :return and :c_return event.
  (2) TracePoint#raised_exception which returns raised exception
  value on the :raise event.
  Eeach methods raise RuntimeError if it is called at unsupported
  event.
  Please review and give us feedback until next preview
  release (Dec/2012) of Ruby 2.0.0.
* insns.def, vm.c, vm_eval.c, vm_insnhelper.c, eval.c, thread.c:
  ditto.
* vm_trace.c, vm_core.h: move definition of rb_trace_arg_t from
  vm_trace.c to vm_core.h.
  Caller fills rb_trace_arg_t and pass the pointer of this variable.
* test/ruby/test_settracefunc.rb: fix tests to test this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 09:48:24 +00:00
kosaki
4d3f768b41 * test/ruby/test_signal.rb (TestSignal#test_signame): fix windows
test failure. Process.kill on windows can't send a signal to
  another process.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 05:39:14 +00:00
naruse
29996bb313 Don't send INT signal itself.
On make test-all, it kills the process.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 00:50:58 +00:00
kosaki
58282ed667 * signal.c (sig_signame): implements Signal.signame method
[Feature #5613]
* test/ruby/test_signal.rb (test_signame): adds test for above
* NEWS: add an item about above



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-19 09:43:53 +00:00
nobu
7588c674d5 struct.c: yield assoc in each_pair
* struct.c (rb_struct_each_pair): yield associated pairs so that
  an unsplat argument can get both, for consistency with Hash,
  OpenStruct, and etc.  [ruby-dev:46533] [Bug #7382]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-19 07:31:05 +00:00
ko1
15d940b8b0 * thread.c: add `Thread#backtrace_locations' method.
This method is similart to `caller_locations' method for
  specific method.
  And fix to accept `level' and `n' parameters for `Thread#backtrace'
  and `Thread#backtrace_locations'.
  `caller' (and `caller_locations') do not return `caller' method
  frame.
  However, `Thread#backtrace' (and `Thread#backtrace_locations')
  return `Thread#backtrace' method frame itself
  if `Thread.current.backtrace' was called.
* vm_backtrace.c: ditto.
* internal.h: ditto.
* test/ruby/test_backtrace.rb: add tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-19 06:07:06 +00:00
tadf
2630ad09bd * bignum.c (rb_cstr_to_inum): should accept underscores of
sequence of two or more when unchecked mode.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-18 11:55:34 +00:00
tadf
20039668dd * complex.c (make_patterns): should not accept extra sign.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 14:57:22 +00:00
luislavena
6285597653 Skip path expansion for all wildcard characters
* win32/file.c (replace_to_long_name): skip expansion for all wildcard
  characters.
  [ruby-core:49451] [Bug #7374]

* test/ruby/test_file_exhaustive.rb: add more assertions to test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 12:46:17 +00:00
tenderlove
653b0bcbaf * ext/psych/lib/psych/visitors/yaml_tree.rb: use literal YAML style
when emitting multi-line strings. Thanks @atambo

* test/psych/test_yaml.rb: test for change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 03:15:54 +00:00
tenderlove
24c6a7c368 * ext/psych/lib/psych/scalar_scanner.rb: avoid raising exceptions when
parsing Floats and Integers. Thanks riffraff [ruby-core:44426]
* test/psych/test_numeric.rb: associated test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 03:11:22 +00:00
shirosaki
262cb379d6 st_update passes the key in st_table
* st.c (st_update): pass the key in st_table so that we can free
  memory of the key in st_table when deleting.
  [ruby-core:49220] [Bug #7330]

* test/-ext-/st/test_update.rb
  (Bug::StTable#test_pass_objects_in_st_table): add a test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 02:46:13 +00:00
luislavena
25058a58a2 skip long name conversion if last character is a wildcard one
* win32/file.c (replace_to_long_name): skip automatic path expansion
  when wildcard character is used.  [ruby-core:49451] [Bug #7374]

* test/ruby/test_file_exhaustive.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 22:43:22 +00:00
nagachika
f45f668fa1 * marshal.c (w_object): add flonum to arg->data to keep reference index
consistency. [ruby-core:49323] [Bug #7348]

* test/ruby/test_marshal.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 15:55:59 +00:00
nobu
1e6ced13be remove trailing spaces
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 06:41:05 +00:00
naruse
a632fe43d8 * test/rake/helper.rb (Rake::TestCase#setup): revert r37669.
@orig_PWD should be the original pwd.

* test/rake/test_*.rb: don't use @orig_PWD to load libraries.
  It should be specified with relative path from the file.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 03:49:09 +00:00
naruse
48aab9e032 * test/rake/helper.rb (Rake::TestCase#setup): @orig_PWD shouldn't be
Dir.pwd when the build directory is different from source directory.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 01:25:46 +00:00
drbrain
1b023030a8 * lib/rake*: Updated to rake 0.9.4
http://rake.rubyforge.org/doc/release_notes/rake-0_9_4_rdoc.html for
  a list of changes in 0.9.4.
* test/rake*:  ditto
* NEWS:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-15 22:32:34 +00:00
drbrain
9c66bad9f3 * lib/rake*: Updated to rake 0.9.3
* test/rake*:  ditto
* bin/rake:  ditto
* NEWS:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-15 21:59:37 +00:00
mame
412b023742 * range.c (range_bsearch): fix some bugs: a documentation bug, a wrong
condition, missed break in switch/case, and workaround for GCC
  optimization. See [ruby-core:49364] in detail.  A great patch from
  Heesob Park. [Bug #7352] [Feature #4766]

* array.c (rb_ary_bsearch): fix similar bug (missed break).

* test/ruby/test_range.rb: add two test cases for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-15 13:50:55 +00:00