Commit graph

5576 commits

Author SHA1 Message Date
nobu
241902e709 strftime.c: fix locale modifier
partially borrowed from ext/date.

* strftime.c (rb_strftime_with_timespec): check conversion with locale
  modifier.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-29 08:28:09 +00:00
nobu
60683816be strftime.c: fix colon modifier.
partially borrowed from ext/date.

* strftime.c (rb_strftime_with_timespec): colons are valid only for
  'z' and must come just before it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-29 08:28:04 +00:00
naruse
44ae75a127 Suppress warning: method redefined.
The warning cause test_singleton_method_added to fail.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-29 00:52:41 +00:00
nari
e2f4f34467 * gc.c (obj_free): doesn't free a method table if it doesn't
exits. [ruby-dev:44436]
* test/ruby/test_gc.rb (class TestGc): added the test case for
  this issue.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-28 03:12:33 +00:00
nobu
a000c52b83 * untabified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-27 02:23:14 +00:00
tadf
9f698ff1d5 modified test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-27 01:05:31 +00:00
nobu
5212b7fb52 file.c: fix for UNC
* file.c (realpath_rec): UNC prefix does not end with path separator,
  so new separator is needed after it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-26 07:26:36 +00:00
nobu
62bab7fc22 test/ruby/test_file.rb: fix for UNC
* test/ruby/test_file.rb (test_realpath, test_realdirpath): fix for
  UNC enabled platforms.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-26 07:24:59 +00:00
ko1
9c3d8bb0f2 * test/ruby/test_backtrace.rb (test_caller_lev):
decreaze recursion size.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-26 06:31:31 +00:00
ko1
4f54d4710e * vm.c (RubyVM::FrameInfo): add a class to access each frame
information.  You don't need to parse strings from caller().
  FrameInfo has the following methods:
  FrameInfo#name: method name, class name, etc with decorations.
  FrameInfo#basename: name without decorations.
  FrameInfo#line_no: line number.
  FrameInfo#filename: file name.
  FrameInfo#filepath: full filepath.
  FrameInfo#iseq: iseq if it is iseq frame (defined by ruby script)
  FrameInfo#to_s: return caller() method style string.
  RubyVM::FrameInfoFrameInfo.caller(n, lev) returns array of
  FrameInfo objects.  The name "RubyVM::FrameInfoFrameInfo.caller"
  is long and ambiguous (same as caller() method), we need to change
  the name before Ruby 2.0 release.
  Good names or comments are welcome.
* test/ruby/test_backtrace.rb: add a test for above change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-26 04:49:23 +00:00
emboss
50ba64ab87 * ext/openssl/ossl_ssl.c: Allow disabling client-side renegotiation.
* test/openssl/test_ssl.rb: Simple tests for this.

  Client-side renegotiation is still considered problematic, even
  when used in the context of secure renegotiation (RI, RFC 5746).
  The changes allow users to either completely disable client
  renegotiation on the server, or to specify a maximum number of
  handshakes allowed in total. The number of total handshakes is
  counted in a callback set as SSL_set_info_callback. If the
  maximum number of handshakes is exceeded an error will be raised
  We do not support renegotiation in the OpenSSL extension, therefore
  this feature can only be tested externally.
  The feature is opt-in, the default setting will be to allow
  unlimited client renegotiation, as was the case before.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-26 00:56:33 +00:00
emboss
6f5582a2ae * test/openssl/test_ssl.rb: Clarify the intention of errors to be
expected. Two errors are possible when connection is refused due
  to a protocol version that was explicitly disallowed,
  OpenSSL::SSL::SSLError or Errno::ECONNRESET, depending on the
  OpenSSL version in use.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-25 14:44:15 +00:00
emboss
913827b6af * ext/openssl/ossl_ssl.c: Revert r35583
* test/openssl/test_ssl.rb: Handle ECONNRESET in code instead to avoid
the test failing in Ruby CI [1]
	
[1] 20120507T190102Z.log.html.gz#test-all


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-25 13:24:47 +00:00
ko1
4258db7954 * vm_eval.c (rb_f_caller): caller() method accepts second optional
argument `n' which specify how many frames should return.
  For example, `caller(0, 1)' returns only one frame information
  which calls caller() method.  If there are less than n frame
  information, then all frame information are returned.  If n is 0,
  then always return [].
  This fix is part of [ruby-dev:42345] [Ruby 1.9-Feature#3917].
  However, performance and features are not enough.
  RDoc is also not available.
* test/ruby/test_backtrace.rb: add a test for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-25 11:01:01 +00:00
nobu
9a66f6f07e * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-25 04:53:54 +00:00
ko1
1f3142a447 * vm.c: refactoring backtrace related funcitons.
(1) unify similar functions (rb_backtrace_each() and
  backtrace_object()).  backtrace_each() is a unified function.
  variation:
  a) backtrace_object(): create backtrace object.
  b) vm_backtrace_str_ary(): create bt as an array of string.
  c) vm_backtrace_print(): print backtrace to specified file.
  d) rb_backtrace_print_as_bugreport(): print backtrace on
  bugreport style.
  (2) remove rb_backtrace_each().  Use backtrace_each() instead.
  (3) chang the type of lev parameter to size_t.
  a) lev == 0 means current frame (exception, etc use it).
  b) lev == 1 means upper frame (caller(0) use it).
* vm_core.h, vm_dump.c, vm_eval.c: ditto.
* vm.c (backtrace_object(), vm_backtrace_str_ary()): fix to return a
  correct size of caller(lev) array.
  Let n be a "caller(0).size" then ln as caller(lev).size should be
  (n - lev).  However, the previous implementation returns a wrong
  size array (ln > n - lev).  [ruby-dev:45673]
* test/ruby/test_backtrace.rb: add tests for backtrace.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-25 04:50:10 +00:00
nobu
26f96fe1ce * test/-ext-/test_printf.rb: tests for [Feature #5896].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-25 02:20:36 +00:00
nobu
d176c4ee99 Bug #5348
* test/rubygems/test_gem_indexer.rb (setup, teardown): save @tempdir
  to remove it properly.  [Bug #5348]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-24 15:37:25 +00:00
ko1
3dcebce523 * vm.c: add RubyVM::Backtrace object (btobj).
Backtrace information contains an array consists of location
  information for each frames by string.
  RubyVM::Backtrace object is lightweight backtrace information,
  which contains complete information to generate traditional style
  backtrace (an array of strings) with faster generation.
  If someone accesses to backtrace information via
  Exception#backtrace, then convert a RubyVM::Backtrace object to
  traditonal style backtrace.
  This change causes incompatibility on marshal dumpped binary
  of Exception.  If you have any trouble on it, please tell us
  before Ruby 2.0 release.
  Note that RubyVM::Backtrace object should not expose Ruby level.
* error.c, eval.c, vm_eval.c: ditto.
* internal.h: ditto.
* eval_error.c: fix to skip "set_backtrace" method invocation in
  creating an exception object if it call a normal set_backtrace
  method (defined by core).
* test/ruby/test_settracefunc.rb: fix for above change.
* vm_method.c (rb_method_defined_by): added.  This function
  checks that the given object responds with the given method
  by the given cfunc.
* benchmark/bm_vm2_raise1.rb, benchmark/bm_vm2_raise2.rb:
  add to measure exception creation speed. raise1 create
  exception objects from shallow stack frame.  raise2 create
  exception objects from deep stack frame.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-24 06:09:23 +00:00
nobu
3cc5ddcac1 Bug #6487
* io.c (io_strip_bom): check EOF.  [Bug #6487][ruby-core:45203]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-24 03:07:49 +00:00
naruse
3ba0abdb15 * lib/net/http/header.rb (Net::HTTPHeader#range): fix broken parser of
HTTP Range request. Old one can't parse invalid specs and multiple
  specs correctly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-23 13:09:26 +00:00
drbrain
1d4e7d9232 * class.c (rb_mod_init_copy): Clear the cached inspect string of a
dup'd anonymous module or class.  [ruby-trunk - Bug #6454]
* test/ruby/test_module.rb (class TestModule):  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-22 20:15:28 +00:00
naruse
3cbf88d8d4 rescue EPIPE raised from conn.print because of client's timeout
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-22 12:35:18 +00:00
naruse
2f6c48e53b OpenSSL 1.0.1 pre-beta disabled TLS v1.2 by default.
http://cvs.openssl.org/chngview?cn=21471

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-21 14:03:18 +00:00
naruse
f6fb038dee * lib/net/ftp.rb (Net::FTP#retrbinary): close only if conn is not nil
because transfercmd may fail and return nil.

* lib/net/ftp.rb (Net::FTP#retrlines): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-21 12:56:17 +00:00
naruse
acb10b8c32 Rescue exception from writing to a socket.
conn.print may raise EPIPE because ftp.retrbinary closes the connection
because of read_timeout. but the exact result varies from the situation
like platform, timing, and so on.
it may raise ECONNRESET, ECONNABORTED, EOFError, or nothing raised.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-21 08:48:32 +00:00
naruse
52f0c6780e * lib/net/ftp.rb (Net::FTP#transfercmd): rescue shutdown.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-21 02:27:07 +00:00
naruse
d795f2d1a8 Shutdown gracefully.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-20 21:56:40 +00:00
naruse
2053b5f453 * enc/shift_jis.c (code_to_mbclen): return
ONIGERR_INVALID_CODE_POINT_VALUE if the code is invalid.

* enc/shift_jis.c (tr_next): increment character until the code
  is a valid character. [ruby-dev:45652] [Bug #6450]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-20 13:32:16 +00:00
naruse
9381cd1184 * lib/uri/generic.rb (URI::Generic.build): duplicate args before adding
new items. (don't change arguments)

* lib/uri/generic.rb (URI::Generic.build): use URI::Generic::COMPONENT
  if this method is called from URI::Generic.

* lib/uri/generic.rb (URI::Generic.build2): escape only if the item is
  a String.

* lib/uri/generic.rb (URI::Generic.build2): use DEFAULT_PARSER because
  it doesn't have parser method. [Bug #6420]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-18 07:32:08 +00:00
drbrain
8f231e1eef * ext/syslog/lib/syslog/logger.rb: Added Syslog::Logger which was
ported from the SyslogLogger gem.  [ruby-trunk - Feature #5096]
* NEWS:  ditto.
* test/syslog/test_syslog_logger.rb:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-17 21:14:24 +00:00
nobu
80bd769f18 test/ruby/test_time.rb: split a big test
* test/ruby/test_time.rb (TestTime#test_strftime): split a big test by
  subjects.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-15 23:36:00 +00:00
tadf
00fd38644d * ext/date/date_strftime.c: should also be aware of flags on
complex specifier.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-15 22:03:37 +00:00
tenderlove
b4bdb2f2eb * ext/psych/lib/psych/visitors/to_ruby.rb: fix a bug with string
subclass dumping and loading.

* test/psych/test_array.rb: pertinent tests

* test/psych/test_string.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-15 20:13:21 +00:00
tenderlove
5341e3ccc4 * ext/psych/lib/psych/visitors/to_ruby.rb: convert omap tagged maps to
Psych::Omap objects rather than hashes. [Bug #6425]

* test/psych/test_omap.rb: pertinent test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-15 16:34:21 +00:00
nobu
b32388d5f8 test for Bug #6385
* test/ruby/test_file.rb (TestFile#test_utime): test for [Bug #6385].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-15 14:54:15 +00:00
nobu
0d9608eb3c test/ruby/test_file.rb: use tmpdir
* test/ruby/test_file.rb (TestFile#test_utime): Dir.mktmpdir does not
  chdir.

* test/ruby/test_file.rb (TestFile#test_file_open_permissions): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-15 14:54:12 +00:00
nobu
498a001fa7 test/ruby/test_marshal.rb: close pipes
* test/ruby/test_marshal.rb (TestMarshal#test_pipe): should close pipes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-15 14:54:09 +00:00
naruse
3e972bbaba Check IFDISABLED on Mac OS X.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-14 07:46:02 +00:00
nobu
45f6cdcdd3 Bug #6403: reset states after empty args
* parse.y (f_arglist): should reset lexical states after empty
  argument list with no parenthesis as well as parenthesized list,
  so that reserved name method definition work.  [ruby-dev:45626]
  [Bug #6403]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-14 07:28:36 +00:00
nagachika
4007da1792 * enumerator.c (lazy_take_func, lazy_take): multiple calls of
force/to_a method to Enumerator::Lazy#take should return same
  results. [ruby-dev:45634] [Bug #6428]

* test/ruby/test_lazy_enumerator.rb (test_take_recycle): add test for
  above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-13 15:24:40 +00:00
nagachika
526a853d6d * test/ruby/test_io.rb (test_flush_in_finalizer1): don't use IO.for_fd
to close IO objects. it create IO object with already closed fd, and
  cause occasional Errno::EBADF in following tests. [ruby-core:45020]
  [Bug #6228]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-13 14:50:49 +00:00
nagachika
806018e8f4 * test/ruby/test_io.rb (TestIO): revert r35631. it broke the intent of
test_flush_in_finalizer1.  [ruby-core:43951] [Bug ##6228]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-13 14:47:29 +00:00
luislavena
32ef61144b * test/ruby/test_io.rb (class TestIO): Disable GC during IO tests to
avoid file descriptors being GC'ed. Suggestion by Tomoyuki Chikanaga
  [ruby-core:43951][Bug #6228]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-12 21:46:51 +00:00
naruse
cc08e95b20 Revert r35622.
It breaks bootstraptest/test_exception.rb:388.

"* thread.c (rb_threadptr_execute_interrupts_common): th->errinfo is"

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-11 15:24:27 +00:00
naruse
38d3b013b7 * thread.c (rb_threadptr_execute_interrupts_common): th->errinfo is
not Fixnum, but exception object.
  This causes test_signal_requiring of test/ruby/test_signal.rb fail
  if the sub process is killed on waiting IO in lex_io_gets in require
  itself, not sleep.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-11 14:03:40 +00:00
naruse
2f56c64b4f Add a test: BigDecimal("0").div(BigDecimal("Infinity")).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-11 14:03:38 +00:00
nobu
4bbb0f9801 Bug #6419: fix cmdarg begin
* parse.y (primary): begin/end block should be isolated from outside.
  [ruby-dev:45631][Bug #6419]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-11 05:23:14 +00:00
tenderlove
64c73b501b adding a few tests surrounding file open arguments
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-10 18:03:06 +00:00
naruse
bfbf9d0956 fix the path of ifconfig.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-10 12:37:56 +00:00