Граф коммитов

8036 Коммитов

Автор SHA1 Сообщение Дата
hsbt 2e4f0af00f * ext/json/*, test/json/*: Reverted r50231. Because it's not works with
cross-compile environment.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 08:36:37 +00:00
nobu 7b14512bee test_io_wait.rb: no EOF test
* test/io/wait/test_io_wait.rb (test_wait_eof): just test
  timeout.  follow r50263.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 06:46:28 +00:00
nobu ee725321b6 parse.y: null by syntax error
* parse.y (arg): fix segfault by null caused by syntax error.
  [ruby-core:68851] [Bug #10957]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 06:35:02 +00:00
akr 2abf47bff9 Test fifo without sleep.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 05:22:28 +00:00
akr 2eb3c2c528 * test/ruby/test_io.rb: New test that open(fifo) doesn't block other
threads.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 04:55:46 +00:00
nobu 143a2817f2 test_file_exhaustive.rb: assert_predicate
* test/ruby/test_file_exhaustive.rb: use assert_predicate and
  assert_not_predicate for better failure messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 02:32:10 +00:00
normal c18df6d87c connect_nonblock supports "exception: false"
This is for consistency with accept_nonblock arguments and gives a
minor speedup from avoiding exceptions.
[ruby-core:68838] [Feature #11024]

* ext/openssl/ossl_ssl.c (ossl_ssl_connect_nonblock):
  support `exception: false'
* (get_no_exception): move function location
* ext/socket/socket.c (sock_connect_nonblock):
  support `exception: false'
* test/openssl/test_pair.rb (test_connect_accept_nonblock_no_exception):
  test `exception: false' on connect,
  rename from `test_accept_nonblock_no_exception'
* test/socket/test_nonblock.rb (test_connect_nonblock_no_exception):
  new test

Benchmark results:

default            0.050000   0.100000   0.150000 (  0.151307)
exception: false   0.030000   0.080000   0.110000 (  0.108840)

----------------------------8<-----------------------
require 'socket'
require 'benchmark'
require 'io/wait'
require 'tmpdir'

host = '127.0.0.1'
serv = TCPServer.new(host, 0) # UNIX sockets may not hit EINPROGRESS

nr = 5000 # few iterations to avoid running out of ports

addr = serv.getsockname
pid = fork do
  begin
    serv.accept.close
  rescue => e
    warn "#$$: #{e.message} (#{e.class})"
  end while true
end
at_exit { Process.kill(:TERM, pid) }
serv.close

Benchmark.bmbm do |x|
  x.report("default") do
    nr.times do
      s = Socket.new(:INET, :STREAM)
      s.setsockopt(:SOL_SOCKET, :SO_REUSEADDR, 1)
      begin
        s.connect_nonblock(addr)
      rescue IO::WaitWritable
        s.wait_writable
      end
      s.close
    end
  end
  x.report("exception: false") do
    nr.times do
      s = Socket.new(:INET, :STREAM)
      s.setsockopt(:SOL_SOCKET, :SO_REUSEADDR, 1)
      case s.connect_nonblock(addr, exception: false)
      when :wait_writable
        s.wait_writable
      end
      s.close
    end
  end
end

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 01:41:51 +00:00
akr 525d2102fc Consider more block devices.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 01:33:19 +00:00
nobu a062d71b15 test_file_exhaustive.rb: NTFS
* test/ruby/test_file_exhaustive.rb (NTFS): flag for test of NTFS.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 01:26:28 +00:00
nobu 640ad73bcc test_file_exhaustive.rb: POSIX-like tests
* test/ruby/test_file_exhaustive.rb: define POSIX-like filesystem
  depenedent tests only on POSIX-like systems.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 01:22:19 +00:00
nobu c305a5aac2 test_file_exhaustive.rb: POSIX
* test/ruby/test_file_exhaustive.rb (POSIX): flag for test of
  POSIX-like filesystems.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 01:13:50 +00:00
nobu fe294d75fe test_file_exhaustive.rb: skip when root
* test/ruby/test_file_exhaustive.rb (test_owned_p): skipt when
  running as super user.

* test/ruby/test_file_exhaustive.rb (test_stat_owned_p): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 01:03:30 +00:00
akr 2722cb9ce1 * test/ruby/test_file_exhaustive.rb: Test a block device on GNU/Linux.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 00:57:49 +00:00
akr 77ea0461c9 * test/ruby/test_file_exhaustive.rb: Test a file not owned.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 00:24:53 +00:00
usa a2d1956454 * test/ruby/test_file_exhaustive.rb: Windows doesn't support Unix file
modes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-12 00:06:20 +00:00
akr d51b836fdd * test/ruby/test_file_exhaustive.rb: Test suid, sgid and sticky file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 23:52:34 +00:00
usa 7c9e01d3c8 * test/ruby/test_file_exhaustive.rb
(TestFileExhaustive#test_stat_socket_p): r50226 accidentally missed
  the guard for non-unix environments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 12:03:31 +00:00
hsbt cfaddc2a32 * ext/json/*, test/json/*, defs/default_gems: Gemify JSON library.
[fix GH-867][Feature #11057]
* test/ruby/test_extlibs.rb: removed json gem from existence extentions.
* gems/bundled_gems: added json gem into bundled gem.
* lib/rdoc/rubygems_hook.rb: ignored no json environment.
* lib/rubygems/test_case.rb, test/rubygems/*: ditto.
* lib/rdoc/test_case.rb, test/rdoc/*: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 11:14:36 +00:00
akr 8e7b572d97 Delay signal bit more.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 09:00:39 +00:00
akr 3d2468240d simplified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 07:34:06 +00:00
akr 7ca24e0b1b refactored to make code consistent around sleep.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 07:22:53 +00:00
akr aed411d561 reorder invocations in test_stat_init.
This doesn't change actual behavior because hardlinkfile invokes regular_file.
This change make it more explicit.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 07:06:34 +00:00
akr 29de8ed499 * test/ruby/test_file_exhaustive.rb: Create sample files lazily.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 06:57:37 +00:00
akr 7156deb522 * test/ruby/test_file_exhaustive.rb: Test character device using
/dev/null.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-11 05:04:17 +00:00
akr b75b040e04 Use more shorter filenames to avoid sockaddr_un size limitation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 14:47:28 +00:00
akr 6f636adad0 Use shorter filenames to avoid sockaddr_un size limitation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 11:52:29 +00:00
akr 0ad3abe1f1 * test/ruby/test_file_exhaustive.rb: Test socket.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 10:52:29 +00:00
ko1 adabc801be * test/objspace/test_objspace.rb: remove debug prints.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 10:39:07 +00:00
ko1 7f75a1a810 * ext/objspace/objspace.c: add ObjectSpace.count_imemo_objects method
to count imemo objects for each type.
* test/objspace/test_objspace.rb: add a test.
* NEWS: describe about this addition.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 10:38:13 +00:00
akr deab71578b * test/ruby/test_file_exhaustive.rb: Test anonymous pipe.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 10:34:47 +00:00
akr dec7415126 * test/ruby/test_file_exhaustive.rb: Test named pipe.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 10:32:38 +00:00
akr ff381ca19b * process.c (rb_execarg_parent_start1): Handle EINTR.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 09:45:29 +00:00
ko1 93df5a0a90 * vm.c (vm_exec): check other events when RETURN is thrown.
[Bug #10724]
* test/ruby/test_settracefunc.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 08:29:30 +00:00
nobu 14d10e054f test_addrinfo.rb: relax memory usage criterion
* test/socket/test_addrinfo.rb (test_marshal_memory_leak): relax
  the criterion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-10 01:02:55 +00:00
usa f40379378a * test/ruby/test_process.rb: unfortunately, windows is not POSIX...
cygwin has mkfifo command, but it does not affect system-wide.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-09 23:03:35 +00:00
akr 79f940cda1 * test/ruby/test_process.rb: Use mkfifo command instead of mknod
command to create a named file.  mkfifo commandis defined by POSIX.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-09 17:19:57 +00:00
akr ce28a7539d * process.c: Release GVL when opening a file in spawn() to avoid whole
process blocking when opening a named pipe.
  (open_func): New function.
  (rb_execarg_parent_start1): Extracted from rb_execarg_parent_start and
  use rb_thread_call_without_gvl2 to release GVL when opening a file.
  (rb_execarg_parent_start): Invoke rb_execarg_parent_start1 via
  rb_protect and invoke rb_execarg_parent_end when error.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-09 16:33:02 +00:00
usa 990cc562ed * test/ruby/test_process.rb
(TestProcess#test_execopts_redirect_open_order_{normal,reverse}): ignore tests
  added by r50194 on Windows because ruby cannot pass non-standard fds.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-09 13:47:01 +00:00
akr f6b1dd28c9 * internal.h (rb_execarg_parent_end): Declared.
* process.c: "spawn" opens files in the parent process.
  (check_exec_redirect): Add an placeholder for fd in parameters
  for fd_open.
  (check_exec_fds_1): Delete fd_open condition.
  (check_exec_fds): Don't call check_exec_fds_1 with fd_open.
  (rb_execarg_parent_start): Open files specified as "spawn" options
  and add "dup2" options.
  (rb_execarg_parent_end): New function to close opened fds.
  (run_exec_open): Removed.
  (rb_execarg_run_options): Don't call run_exec_open.
  (rb_spawn_internal): Call rb_execarg_parent_end.

* io.c (pipe_open): Call rb_execarg_parent_end.

* ext/pty/pty.c (establishShell): Call rb_execarg_parent_end.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-09 12:44:35 +00:00
nobu 2cbb3d821c skip rake dependent tests
rake is not available until installation now, so skip rake
dependent tests unless it can load.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-09 06:01:27 +00:00
nobu 816504c29c raddrinfo.c: fix memory leak
* ext/socket/raddrinfo.c (addrinfo_mload): fix memory leak of
  addrinfo.  [ruby-dev:48923] [Bug #11051]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-08 23:24:10 +00:00
ko1 0d382f4878 * test/ruby/test_symbol.rb: fix syntax error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-08 05:04:17 +00:00
nobu 622193d32a hash.c: compare symbols by identities
* hash.c (rb_any_hash): Symbols are compared by the identities
  always.  [ruby-core:68767] [Bug #11035]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-08 04:01:06 +00:00
akr 774f682952 * enum.c: Enumerable#chunk and Enumerable#slice_before no longer takes
the initial_state argument.  [Feature #10958]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-06 13:53:24 +00:00
ko1 633574eee5 * vm_args.c: protect value stack from calling other methods
during complex parameter setting process (splat, kw, and so on).
  [Bug #11027]
* vm_core.h: remove rb_thead_t::mark_stack_len.
  With this modification, we don't need to use th->mark_stack_len.
* test/ruby/test_keyword.rb: add a test.
* cont.c (cont_capture): catch up this fix.
* vm.c (rb_thread_mark): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-06 07:14:28 +00:00
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