aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_process.rb
Commit message (Collapse)AuthorAgeFilesLines
* test_process.rb: split a testnobu2015-07-211-1/+11
| | | | | | | * test/ruby/test_process.rb (test_execopts_popen): split into 3 tests, no other redirections, stdio, and other fds. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_process.rb: test thread+sigs work after failed execnormal2015-07-181-0/+70
| | | | | | | | Preparation for possible upcoming changes to timer thread. We need to ensure signal handling and thread scheduling works after an exec failure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_exec_close_reserved_fd): test forngoto2015-07-151-0/+15
| | | | | | | [Bug #11353] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):ngoto2015-07-151-1/+1
| | | | | | | use RUBY (= EnvUtil.rubybin) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use Timeout.timeoutnobu2015-07-131-1/+1
| | | | | | | * time: Object#timeout has been deprecated a long time ago, use Timeout.timeout. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: test for [Bug #11340]nobu2015-07-091-0/+23
| | | | | | | * test/ruby/test_process.rb (test_wait_exception): test for r51202 and r51203. [Bug #11340] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: reap pidnobu2015-07-051-0/+1
| | | | | | | * test/ruby/test_process.rb (test_exec_fd_3_redirect): should reap the grandchild process, in common. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_process.rb: test for fd=3 usability in childnormal2015-07-051-0/+24
| | | | | | | | | | | | | Ensure we can redirect anything to fd=3 in a child process. This test exists because fd=3 is a commonly reserved FD for a timer thread pipe in the parent Ruby VM, but fd=3 is the first FD used by the sd_listen_fds function for systemd. This means there is a possibility for a bug to slip in where the redirect to fd=3 fails to work. This test should ensure the continued viability of systemd replacements in Ruby :> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: do not discard statusnobu2015-05-221-0/+12
| | | | | | | | | * process.c (rb_spawn_process): do not discard global escape status. [ruby-core:69304] [Bug #11166] * process.c (rb_execarg_spawn): extract the start procedure in a parent process with ensuring the end procedure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/lib/envutil.rb (File.mkfifo): Defined using mkfifo command.akr2015-04-131-6/+15
| | | | | | | | | | | | * test/ruby/test_io.rb: Ditto. * test/ruby/test_file_exhaustive.rb: Use File.mkfifo. * test/ruby/test_process.rb: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Delay signal bit more.akr2015-04-111-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_execarg_parent_start1): Handle EINTR.akr2015-04-101-0/+37
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb: unfortunately, windows is not POSIX...usa2015-04-091-2/+2
| | | | | | | 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
* * test/ruby/test_process.rb: Use mkfifo command instead of mknodakr2015-04-091-1/+1
| | | | | | | | 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
* * process.c: Release GVL when opening a file in spawn() to avoid wholeakr2015-04-091-0/+16
| | | | | | | | | | | | | 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
* * test/ruby/test_process.rbusa2015-04-091-2/+2
| | | | | | | | (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
* * internal.h (rb_execarg_parent_end): Declared.akr2015-04-091-0/+22
| | | | | | | | | | | | | | | | | | | | | | * 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
* test_process.rb: use assert_in_out_errnobu2015-03-031-17/+3
| | | | | | | * test/ruby/test_process.rb (test_status_quit): use assert_in_out_err to simplify and clean diagnostic reports. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: remove intermediate child processnobu2015-03-021-62/+12
| | | | | | | | * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): spawn the target process directly with assert_separately and remove intermediate child process. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):ko12014-12-161-1/+1
| | | | | | | | 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
* test_process.rb: splitnobu2014-12-111-63/+69
| | | | | | | * 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
* * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):akr2014-11-301-1/+7
| | | | | | | | Don't raise Interrupt. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): Useakr2014-11-301-48/+53
| | | | | | | assert_separately. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/lib/envutil.rb: Moved from test/ruby/.akr2014-11-131-1/+0
| | | | | | | | | | | | | | * test/lib/find_executable.rb: Ditto. * test/lib/memory_status.rb: Ditto. * test/lib/test/unit.rb: require envutil. * test/: Don't require envutil in test files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_process.rb: reduce garbage during forksnormal2014-10-271-3/+6
| | | | | | | | | | * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): reduce garbage during forks This seems to reduce failures on my memory-constrained VM when doing a full test-all. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_process.rb: use io/wait instead of timeoutnormal2014-10-231-4/+4
| | | | | | | | | | | | Occasionally I get timeout errors during this test on an overloaded system, so we may need to increase timeouts anyways. For now, avoid the overhead of thread creation for every read we do. * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): use IO#wait_readable instead of timeout git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_process.rb: ensure exit! on fork failurenormal2014-10-231-2/+6
| | | | | | | * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): ensure exit! on fork failure git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_process.rb: avoid killing wrong parentnormal2014-10-161-1/+2
| | | | | | | We must capture intended target PID before forking, since Process.ppid may change if parent dies (e.g. due to timeout) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_process.rb (TestProcess#test_setsid): AIX does not allow ↵odaira2014-10-071-2/+2
| | | | | | Process::getsid(pid) when pid is in a different session git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Process.detach: avoid singleton class creationnormal2014-09-121-0/+8
| | | | | | | | | | | | | | | * process.c (Init_process): subclass Thread as Process::Waiter (rb_detach_process): use Process::Waiter instead of singleton class * test/ruby/test_process.rb (test_process_detach): new test * inits.c (rb_call_inits): call Init_Thread before Init_process to ensure Process::Waiter may be a subclass of Thread Thanks to headius for reporting [Bug #10231] Thanks to nobu for review of my initial patch. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: use UTF-8nobu2014-06-161-0/+10
| | | | | | | * process.c (open): use UTF-8 version function to support non-ascii path properly. [ruby-core:63185] [Bug #9946] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Join threads.akr2014-05-311-1/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (pipe_open): Close pipes when rb_execarg_fixup() raisesakr2014-05-291-22/+33
| | | | | | | | | an exception. (rb_execarg_fixup_v): New function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: duplicate assertionsnobu2014-05-111-6/+3
| | | | | | | * test/ruby/test_process.rb (test_status_{kill,quit}): remove duplicate assertions git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: WIFEXITED and so on are system dependentnobu2014-05-111-1/+4
| | | | | | | | * test/ruby/test_process.rb (test_status_kill): WIFEXITED and so on are available only if signal is supported by the system. [ruby-dev:48203] [Bug #9820] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* signal.c: directly deliver non-handlable signalsnobu2014-05-111-0/+15
| | | | | | | * signal.c (rb_f_kill): directly deliver signals which cannot be handled, i.e., SIGKILL and SIGSTOP. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (check_exec_redirect): Open the file in write mode forakr2014-05-051-0/+11
| | | | | | | | | | redirect from [:out, :err]. Proposed and implemented by Yusuke Endoh. [ruby-dev:41430] [Feature #3348] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* update comment.akr2014-04-261-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_rlimit_nofile): Don't limitakr2014-04-251-2/+5
| | | | | | | | | RLIMIT_NOFILE too small. This fix sporadic "[ASYNC BUG] thread_timer: select" on GNU/Linux. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: preserve encodingsnobu2014-03-301-0/+4
| | | | | | | * process.c (rlimit_resource_type, rlimit_resource_value): preserve argument encoding in error messages. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: test if success?nobu2014-03-301-2/+2
| | | | | | | | * test/ruby/test_process.rb (test_rlimit_value): should not use magic number 0, which may not be EXIT_SUCCESS. use `success?` instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: clock_getres may not supportednobu2014-01-241-0/+2
| | | | | | | * test/ruby/test_process.rb (test_clock_getres): ignore if clock_getres is no supported, e.g., on old Linux. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: fix conditionnobu2014-01-231-1/+1
| | | | | | | * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): fix condition to define. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: deadlock testnobu2014-01-231-0/+48
| | | | | | | * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): test for r44687, deadlock in rb_fork_internal(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: fix for 32bit platformsnobu2013-12-161-1/+1
| | | | | | | * test/ruby/test_process.rb (test_clock_gettime_unit): results can exceed Fixnum limit, especially on 32bit platforms. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (make_clock_result): add :second as a unit fornaruse2013-12-161-0/+23
| | | | | | Process.clock_gettime. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: handshakenobu2013-12-141-7/+18
| | | | | | * test/ruby/test_process.rb: handshake by pipe instead of sleep. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby: better assertionsnobu2013-12-131-29/+29
| | | | | | * test/ruby: use better assertions instead of mere assert. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* envutil.rb: crash report on Mac OS Xnobu2013-11-151-0/+2
| | | | | | | | | | | | | | | * test/ruby/envutil.rb (EnvUtil.diagnostic_reports): find crash report on Mac OS X. * test/ruby/envutil.rb (Test::Unit::Assertions::FailDesc): include crash report on Mac OS X. * test/ruby/envutil.rb (Test::Unit::Assertions#assert_in_out_err): remove crash reports if exist. * test/ruby/test_process.rb (TestProcess#test_status_kill): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix a typo.akr2013-09-031-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e