Commit graph

7991 commits

Author SHA1 Message Date
hsbt
c4ee0df8ba * lib/rake/*: Gemify rake [fix GH-862][Feature #11025]
* test/rake/*: ditto.
* tool/rbinstall.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-04 12:31:31 +00:00
nobu
c5c0813aa2 test_dir.rb: recursive globbing
* test/ruby/test_dir.rb (test_symlink): add an assertion for
  recursive globbing.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-01 07:53:16 +00:00
nobu
cd322ae533 test_objspace.rb: skip test_count_nodes
* test/objspace/test_objspace.rb (test_count_nodes): NODEs are no
  longer used generally.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-01 06:02:45 +00:00
nobu
676fe089bd fileutils.rb: fix error message
* lib/fileutils.rb (FileUtils#mv): show the exact target path in
  the error message instead of the destination parent directory
  name.  patched by João Britto <jabcalves AT gmail.com> at
  [ruby-core:68706].  [Bug #11021]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-01 00:59:14 +00:00
nobu
c6411c6455 test_dir.rb: assert_entries
* test/ruby/test_dir.rb (assert_entries): extract common
  assertinos for Dir.entries and Dir#foreach.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-31 08:09:34 +00:00
nobu
a4c92d0559 test_dir.rb: test_entries
* test/ruby/test_dir.rb (test_entries): test for Dir#entries.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-31 06:32:18 +00:00
nobu
0313635cfd test_dir.rb: fix arguments order
* test/ruby/test_dir.rb (test_foreach): fix arguments order, the
  expected result should be first.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-31 06:32:07 +00:00
nobu
efbfd90272 io.c: use read/write methods if possible
* io.c (copy_stream_body): use the arguments without conversion if
  having read, readpartial, and write methods, than conversion by
  to_path method.  [ruby-core:68676] [Bug #11015]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-30 02:28:02 +00:00
nobu
509089e9b1 proc.c: replicate method env
* proc.c (proc_binding): replicate env from method object, and
  allocate the local variable area for the iseq local table.
  [ruby-core:68673] [Bug #11012]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-29 02:51:34 +00:00
nobu
c45a4d1417 test_proc.rb: test_curry_binding
* test/ruby/test_proc.rb (test_curry_binding): rename
  test_binding2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-29 02:47:36 +00:00
hsbt
4d6aeebbab * test/test_observer.rb: add tests for Observable module.
[fix GH-859] Patch by @brightbits

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-26 01:05:18 +00:00
nobu
78a73a538d dir.c: don't raise after close
* dir.c (dir_close): don't raise on dobule close for consistent to
  IO#close.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-23 14:18:30 +00:00
nobu
9da887cf57 json_index.rb: check zlib
* lib/rdoc/generator/json_index.rb (generate_gzipped): do nothing
  unless zlib is available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-23 05:15:15 +00:00
nobu
ffcb7abe0b marshal.c: register symbol strings first
* marshal.c (r_symreal): register symbol names as strings first so
  that r_symlink always returns valid names.
  [ruby-core:68587] [Bug #10991]
* marshal.c (r_ivar, r_object0): now need to intern symbol names.
* marshal.c (r_object0): compare with symbol names.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-22 17:03:31 +00:00
nobu
c8a28a5a1b proc.c: respond_to_missing? at Method
* proc.c (respond_to_missing_p): check if the receiver responds to
  the given method by respond_to_missing?.
* proc.c (mnew_missing): create Method object for method_missing.
  [ruby-core:68564] [Bug #10985]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-20 09:41:06 +00:00
nobu
30fdcc3fa8 test_inadvertent_creation.rb: fix messages
* test/-ext-/symbol/test_inadvertent_creation.rb (TestInadvertent):
  fix failure messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-20 08:39:17 +00:00
nobu
8575de71d4 test_inadvertent_creation.rb: undefined singleton
* test/-ext-/symbol/test_inadvertent_creation.rb (test_undefined_method):
  test Kernel#singleton_method too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50034 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-20 07:14:38 +00:00
ko1
5f879f76d7 * test/objspace/test_objspace.rb: flag name was changed
(long_lived -> uncollectible).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-18 21:30:23 +00:00
svn
f5a5503702 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-18 03:02:33 +00:00
nobu
3bcf9fb53e hash.c: same hash values with Float#hash
* hash.c (rb_any_hash): use same hash values with Float#hash so
  that -0.0 and +0.0 will be identical.
  [ruby-core:68541] [Bug #10979]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-18 03:01:58 +00:00
hsbt
7d75a78604 * lib/webrick/server.rb: Fix regression bug in WEBrick's
:DoNotReverseLookup config option implementation.
  [fix GH-731] Patch by @vais
* test/webrick/test_do_not_reverse_lookup.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-16 08:43:28 +00:00
gogotanaka
dc37d6daba * math.c (math_log1, math_log2, math_log10): refactoring
and tests for this.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-16 08:39:29 +00:00
gogotanaka
1bbdb76e16 * test/ruby/test_lambda.rb: Fix typo yeild -> yield
[fix GH-851][ci skip] Patch by @hanachin

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-15 17:53:01 +00:00
gogotanaka
97c2a91704 * test/ruby/test_proc.rb: Fix typo signle -> single
[fix GH-852][ci skip] Patch by @hanachin

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-15 17:52:46 +00:00
gogotanaka
0e749ddedc * math.c (math_gamma): optimization for passed small integer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14 11:07:49 +00:00
nobu
2456df7584 parse.y: empty paren
* parse.y (primary): empty parentheses at cmdarg can be null.
  [ruby-core:68477] [Bug #10957]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13 17:14:53 +00:00
nobu
f75fe0bcc7 stringio.c: don't raise after close
* ext/stringio/stringio.c (strio_close): don't raise on dobule
  close for consistent to IO#close.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13 06:04:39 +00:00
nobu
89bfc9b70b io.c: don't raise after close
* io.c (rb_io_close_read, rb_io_close_write): don't raise after
  close same as IO#close.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13 06:03:25 +00:00
nobu
734fa23840 test_objspace.rb: better assertions
* test/objspace/test_objspace.rb: use assertions for better
  failure messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13 05:12:43 +00:00
akr
5fdf367348 * test/readline/test_readline.rb: Restore environment variables:
COLUMNS LINES


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-13 03:29:43 +00:00
nobu
05c29680e5 fix env leaks
* lib/rubygems/test_case.rb (setup, teardown): fix
  environment variable change leaks.

* test/cgi/update_env.rb: ditto.

* test/rake/test_rake_application_options.rb (setup, teardown):
  ditto.

* test/rake/test_rake_file_utils.rb (setup, teardown): ditto.

* test/rubygems/test_gem_request.rb (setup): add https_proxy.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12 14:57:33 +00:00
akr
31eb193883 * test/lib/leakchecker.rb: Check environment variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12 14:01:00 +00:00
normal
aaf2d070a8 accept_nonblock supports "exception: false"
This is analogous to functionality found in IO#read_nonblock and
IO#wait_nonblock.  Raising exceptions for common failures on
non-blocking servers is expensive and makes $DEBUG too noisy.

Benchmark results:
                                    user     system      total        real
default                         2.790000   0.870000   3.660000 (  3.671597)
exception: false                1.120000   0.800000   1.920000 (  1.922032)
exception: false (cached arg)   0.820000   0.770000   1.590000 (  1.589267)
--------------------- benchmark script ------------------------
require 'socket'
require 'benchmark'
require 'tmpdir'
nr = 1000000
Dir.mktmpdir('nb_bench') do |path|
  sock_path = "#{path}/test.sock"
  s = UNIXServer.new(sock_path)
  Benchmark.bmbm do |x|
    x.report("default") do
      nr.times do
        begin
          s.accept_nonblock
        rescue IO::WaitReadable
        end
      end
    end
    x.report("exception: false") do
      nr.times do
        begin
          s.accept_nonblock(exception: false)
        rescue IO::WaitReadable
          abort "should not raise"
        end
      end
    end
    x.report("exception: false (cached arg)") do
      arg = { exception: false }
      nr.times do
        begin
          s.accept_nonblock(arg)
        rescue IO::WaitReadable
          abort "should not raise"
        end
      end
    end
  end
end

* ext/socket/init.c (rsock_s_accept_nonblock):
  support exception: false
  [ruby-core:66385] [Feature #10532]
* ext/socket/init.c (rsock_init_socket_init): define new symbols
* ext/socket/rubysocket.h: adjust prototype
* ext/socket/socket.c (sock_accept_nonblock): support exception: false
* ext/openssl/ossl_ssl.c (ossl_ssl_accept_nonblock): ditto
* ext/socket/socket.c (Init_socket): adjust accept_nonblock definition
* ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto
* ext/socket/tcpserver.c (rsock_init_tcpserver): ditto
* ext/socket/unixserver.c (rsock_init_unixserver): ditto
* ext/socket/tcpserver.c (tcp_accept_nonblock): adjust
  rsock_s_accept_nonblock call
* ext/socket/unixserver.c (unix_accept_nonblock): ditto
* ext/openssl/ossl_ssl.c (ossl_start_ssl): support no_exception
* ext/openssl/ossl_ssl.c (ossl_ssl_connect): adjust ossl_start_ssl call
* ext/openssl/ossl_ssl.c (ossl_ssl_connect_nonblock): ditto
* ext/openssl/ossl_ssl.c (ossl_ssl_accept): ditto
* test/socket/test_nonblock.rb (test_accept_nonblock): test for
  "exception :false"
* test/socket/test_tcp.rb (test_accept_nonblock): new test
* test/socket/test_unix.rb (test_accept_nonblock): ditto
* test/openssl/test_pair.rb (test_accept_nonblock_no_exception): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-12 03:03:04 +00:00
odaira
d4a1804eb1 * test/rubygems/test_gem_security_trust_dir.rb: The return value of
File::Stat#mode is OS dependent. In AIX, 0200000 is set.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-10 16:01:57 +00:00
akr
ab0a64e1c8 * lib/webrick/server.rb: Invoke setup_shutdown_pipe in start method
instead of listen method.
  [ruby-core:68476] [Bug #10956] Reported by Shintaro Kojima.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-10 11:05:21 +00:00
nobu
acc17bfc0f test_math.rb: to_f tests
* test/ruby/test_math.rb (test_{fixnum,bignum,rational}_to_f):
  refine to_f tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-10 11:01:55 +00:00
nobu
2e02f2dfd2 stringio.c: don't raise after close
* ext/stringio/stringio.c (strio_close): don't raise on dobule
  close for consistent to IO#close.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-09 07:34:39 +00:00
nobu
5c87e39165 suppress warnings
* test/ruby/beginmainend.rb: suppress warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-09 06:51:20 +00:00
nobu
34beb98464 test_beginendblock.rb: assert_in_out_err
* test/ruby/test_beginendblock.rb (TestBeginEndBlock): simplify
  with assert_in_out_err.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-09 05:47:05 +00:00
akr
b6d5ce7975 * ext/zlib/zlib.c (rb_gzfile_close): Don't raise on double
close for consistent to IO#close.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-08 13:52:51 +00:00
nobu
5b06e83345 dir.c: glob short names
* dir.c (glob_helper): match patterns against legacy short names
  too, not only ordinary names.  [ruby-core:67954] [Bug #10819]
* win32/dir.h (struct direct): add short name members.
* win32/win32.c (opendir_internal, readdir_internal): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-08 07:57:38 +00:00
nobu
53662a711f test_extlibs.rb: skip excluded libraries
* test/ruby/test_extlibs.rb (TestExtLibs.check_existence): ignore
  tests for explicitly excluded libraries.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-08 03:08:37 +00:00
ko1
d84f9b1694 * fix namespace issue on singleton class expressions. [Bug #10943]
* vm_core.h, method.h: remove rb_iseq_t::cref_stack. CREF is stored
  to rb_method_definition_t::body.iseq_body.cref.
* vm_insnhelper.c: modify SVAR usage.
  When calling ISEQ type method, push CREF information onto method
  frame, SVAR located place. Before this fix, SVAR is simply nil.
  After this patch, CREF (or NULL == Qfalse for not iseq methods)
  is stored at the method invocation.
  When SVAR is requierd, then put NODE_IF onto SVAR location,
  and NDOE_IF::nd_reserved points CREF itself.
* vm.c (vm_cref_new, vm_cref_dump, vm_cref_new_toplevel): added.
* vm_insnhelper.c (vm_push_frame): accept CREF.
* method.h, vm_method.c (rb_add_method_iseq): added. This function
  accepts iseq and CREF.
* class.c (clone_method): use rb_add_method_iseq().
* gc.c (mark_method_entry): mark method_entry::body.iseq_body.cref.
* iseq.c: remove CREF related codes.
* insns.def (getinlinecache/setinlinecache): CREF should be cache key
  because a different CREF has a different namespace.
* node.c (rb_gc_mark_node): mark NODE_IF::nd_reserved for SVAR.
* proc.c: catch up changes.
* struct.c: ditto.
* insns.def: ditto.
* vm_args.c (raise_argument_error): ditto.
* vm_eval.c: ditto.
* test/ruby/test_class.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-06 12:24:58 +00:00
ko1
3859d767e1 * test/webrick/test_filehandler.rb: on vboxsf (on VirtualBox
on Windows 7), file name and permissions are strange (can access
  by short file name and so on).
  Simply skip on such tests on such FS. To detect strange FS, this
  patch use a part of code `File.executable?(__FILE__)`.
  Please correct them if there are better ways.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-06 09:22:21 +00:00
ko1
4bb910816e * test/ruby/test_beginendblock.rb: do not change directory.
Run system command in the directory mounted by vboxfs on Windows 7
  and get warning like that "warning: Insecure world writable dir...".



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-06 08:34:40 +00:00
nobu
3e557a979e vm_eval.c: next super class from the original
* vm_eval.c (vm_call_super): search next super class from the
  original class, to get rid of infinite recursion with
  prepending.  a patch by Seiei Higa <hanachin AT gmail.com> at
  [ruby-core:68434].  [ruby-core:68093] [Bug #10847]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-06 01:31:03 +00:00
marcandre
b81950f480 * lib/matrix.rb: Add Vector#round. Patch by Jordan Stephens.
[Fixes GH-802]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-05 23:45:42 +00:00
usa
ce85cd55c6 * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_command_line_glob_with_dir):
test for r49859.  see [ruby-core:68430] [Bug #10941]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-05 23:03:35 +00:00
shugo
f403624a6f * vm_eval.c (eval_string_with_cref): A binding should keep
refinements activation information and the refinements should be
  activated in subsequent eval calls with the binding.
  [ruby-core:67945] [Bug #10818]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49851 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-05 02:56:03 +00:00
shugo
36a18bb54a * test/ruby/test_refinement.rb: There is no need anymore to supress
warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-05 02:20:25 +00:00