aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_process.rb
Commit message (Collapse)AuthorAgeFilesLines
* Suppress warning: too long pathnaruse2012-12-121-1/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_setsid): added a few wait forkosaki2012-11-261-4/+6
| | | | | | | preventing that Process.getsid(io.pid) makes Errno::ESRCH. (refix r37844) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_setsid): call Process.getsid fornagachika2012-11-251-2/+4
| | | | | | | 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
* Fix TestProcess#test_setsidshirosaki2012-11-241-1/+1
| | | | | | | * 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
* * process.c (proc_getsid): adds new method for getting session id.kosaki2012-11-241-0/+15
| | | | | | | | | | | 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
* test_process.rb: use never existing filenobu2012-11-011-1/+1
| | | | | | | | * test/ruby/test_process.rb (test_execopts_preserve_env_on_exec_failure): use never existing file in the current temporary directory. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb: Revert r37404. My ubuntu box hasmame2012-11-011-1/+1
| | | | | | | actually the directory named "/nonexistent"... Sorry. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb: Process.exec raised EACCES on Linuxmame2012-11-011-1/+1
| | | | | | | | 3.5.0-17-generic. This is a temporal fix to rescue that exception. Needs kosaki's review. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/envutil.rb (Test::Unit::Assertions#assert_file): rename from ↵kazu2012-10-161-2/+2
| | | | | | file_assertion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* envutil.rb: file_assertionnobu2012-10-151-2/+2
| | | | | | | | * test/ruby/envutil.rb (Test::Unit::Assertions#file_assertion): rewrite file assertions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Rename variablsnaruse2012-10-101-4/+3
| | | | | | | * uid always stores uid * user stores username or nil git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Test both username and uidnaruse2012-10-101-1/+10
| | | | | | | * system(, uid: ) takes username or uid * ENV["USER"] may be nil (sudo or jail) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (TestProcess#test_execopts_gid): skip onusa2012-10-101-0/+1
| | | | | | | | windows because the platform does not have Process.group method. patched by Jon Forums in [ruby-core:47878] [Bug #7133]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* envutil.rb: assert_file and assert_file_notnobu2012-10-091-2/+2
| | | | | | | | * test/ruby/envutil.rb (assert_file, assert_file_not): more descriptive assertions for File predicates. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: uid gid exec optionsnobu2012-10-091-0/+44
| | | | | | | | * process.c (rb_execarg_addopt, rb_execarg_run_options): add :uid and :gid options. [ruby-core:47414] [Feature #6975] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* On amd64, RUBY_PLATFORM is x86_64-netbsd6.99.7.naruse2012-07-301-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Suppress warnings.naruse2012-07-301-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* NetBSD's /proc/<pid>/task is broken.naruse2012-07-301-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: try conversion at redirectionnobu2012-07-271-1/+13
| | | | | | | | | * io.c (rb_io_check_io): make public. * process.c (check_exec_redirect): try conversion to IO on redirect parameters. [ruby-core:44181] [Bug #6269] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* popen: shell commands with envvars and execoptsnobu2012-06-271-0/+41
| | | | | | | | | | | | | * io.c (is_popen_fork): check if fork and raise NotImplementedError if unavailable. * io.c (rb_io_s_popen): allow environment variables hash and exec options as flat parameters, not in an array arguments. [Feature#6651] [EXPERIMENTAL] * process.c (rb_execarg_extract_options): extract exec options, but no exceptions on non-exec options and returns them as a Hash. * process.c (rb_execarg_setenv): set environment variables. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r36213 "popen: shell commands with envvar"nobu2012-06-261-34/+15
| | | | | | | * io.c (rb_io_s_popen): revert r36213 "popen: shell commands with envvar" because it disabled to let single command bypass shell. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* popen: shell commands with envvarnobu2012-06-251-15/+34
| | | | | | | | | * io.c (is_popen_fork): check if fork and raise NotImplementedError if unavailable. * io.c (rb_io_s_popen): allow shell commands with modified environment variables. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add a test.akr2012-06-131-0/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add a test.akr2012-06-121-0/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_exec_fillarg): treat '=' character as an metaakr2012-06-121-0/+7
| | | | | | | | character to detect assignments preceding command name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork_internal): call after_fork only unlessakr2012-06-101-0/+9
| | | | | | | | chfunc_is_async_signal_safe. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add a test.akr2012-06-061-0/+19
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (try_with_sh): take envp argument.akr2012-06-061-0/+5
| | | | | | | | (exec_with_sh): ditto. use it for execve. (proc_exec_v): provide envp for try_with_sh. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* don't exec in the test process.akr2012-06-041-3/+16
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_proc_exec_e): extended version of rb_proc_exec() toakr2012-06-031-0/+12
| | | | | | | | | call execle(). (rb_proc_exec): use rb_proc_exec_e(). (rb_exec_err): use rb_proc_exec_e(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * use execve() to preserve environment variables when exec method isakr2012-06-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | | failed. [ruby-core:44093] [ruby-trunk - Bug #6249] * include/ruby/intern.h (rb_exec_arg): add envp_str and envp_buf field to store envp of execve(). * process.c (proc_exec_v): takes envp_str as an argument and use it for execve(). (rb_proc_exec_ne): extended version of rb_proc_exec_n(). (rb_proc_exec_n): use rb_proc_exec_ne(). (rb_proc_exec): follow proc_exec_v() change. (fill_envp_buf_i): new function. (rb_exec_arg_fixup): set up envp_str and envp_buf. (save_env_i): removed. (save_env): removed. (rb_run_exec_options_err): don't modify environment variables. (rb_exec_err): use rb_proc_exec_ne(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/win32.h (rb_w32_aspawn_flags): add the declaration ofshirosaki2012-04-071-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | new function. * process.c (enum): add EXEC_OPTION_PGROUP and move the position above for the usage in proc_spawn_n(). * process.c (proc_spawn_n): add an argument to pass new option `new_pgroup`. The option specifies CREATE_NEW_PROCESS_GROUP flag to CreateProcessW(). This flag is necessary for the usage of Process.kill on the subprocess on Windows. * process.c (rb_exec_arg_addopt): ditto. * process.c (rb_spawn_process): ditto. * process.c (documentation for rb_f_spawn): add documentation for new option `new_pgroup` of spawn. * test/ruby/test_process.rb (TestProcess#test_execopts_new_pgroup): add tests for option `new_pgroup`. * test/ruby/test_thread.rb (TestThreadGroup#test_thread_timer_and_interrupt): add option `new_pgroup: true` to spawn on Windows. It's needed for Process.kill on a subprocess. * win32/win32.c (CreateChild): add an argument to pass dwCreationFlags of CreateProcessW(). * win32/win32.c (rb_w32_spawn): ditto. * win32/win32.c (rb_w32_aspawn_flags): add new function to pass dwCreationFlags. * win32/win32.c (rb_w32_aspawn): refactor to move the content to rb_w32_aspawn_flags(). [ruby-core:43245][Bug #6131] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (obj2uid, obj2gid): allow strings as input user/group id.nobu2012-03-281-0/+6
| | | | | | | [ruby-core:40923][Feature #5610] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_run_exec_options_err): chdir at last to interpretakr2012-03-031-0/+10
| | | | | | | relative pathnames from the current directory of the parent process. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (TestProcess#test_sete[gu]id): silentlyusa2011-12-081-0/+2
| | | | | | | skip if not implemented such functions (such as, on Windows). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (proc_seteuid_m): fix argument.nobu2011-12-051-0/+12
| | | | | | | | * test/ruby/test_process.rb (test_geteuid): fix typo. * test/ruby/test_process.rb (test_getegid, test_set[eg]uid): add. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb: clean up a garbage character.nagachika2011-11-031-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add test for close-on-exec.akr2011-11-031-0/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/intern.h (rb_fd_set_cloexec): declared.akr2011-10-221-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * io.c (rb_fd_set_cloexec): new function. (ruby_dup): call rb_fd_set_cloexec to set close-on-exec flag. (rb_sysopen_internal): ditto. (rb_pipe): ditto. (io_reopen): ditto. (io_cntl): ditto. * process.c (rb_f_exec): change the default :close_others option to true. (rb_f_system): ditto. (move_fds_to_avoid_crash): call rb_fd_set_cloexec to set close-on-exec flag. (ruby_setsid): ditto. (rb_daemon): ditto. * thread_pthread.c (rb_thread_create_timer_thread): call rb_fd_set_cloexec to set close-on-exec flag. * ruby.c (load_file_internal): ditto. * file.c (rb_file_s_truncate): ditto. (file_load_ok): ditto. * random.c (fill_random_seed): ditto. * ext/pty/pty.c (chfunc): ditto. (get_device_once): ditto. * ext/openssl/ossl_bio.c (ossl_obj2bio): ditto. * ext/socket/init.c (rsock_socket): ditto. (rsock_s_accept_nonblock): ditto. (rsock_s_accept): ditto. * ext/socket/socket.c (rsock_sock_s_socketpair): ditto. * ext/socket/ancdata.c (discard_cmsg): ditto. (make_io_for_unix_rights): ditto. * ext/socket/unixsocket.c (unix_recv_io): ditto. * ext/io/console/console.c (console_dev): ditto. [ruby-core:38140] [Feature #5041] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert test fixes.naruse2011-09-101-2/+0
| | | | | | This reverts r33233, r33234, and r33235. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Run GC.start before test_too_long_path.naruse2011-09-091-2/+4
| | | | | | | NoMemoryError is raised in MiniTest#exception_details where exception is made, and no effect. Run GC.start before running to keep the room. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Catch NoMemoryError.naruse2011-09-091-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (TestProcess#windows?): new method.usa2011-08-011-30/+24
| | | | | | | | | | * test/ruby/test_process.rb (TestProcess#*): use above method. * test/ruby/test_process.rb (TestProcess#test_execopts_redirect): windows doesn't support FD_CLOEXEC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_rlimit_nofile): fix r32734.nagachika2011-07-291-2/+2
| | | | | | move return statement again. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix r32731: position of definition.naruse2011-07-291-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Run test_popen_fork on FreeBSD because it can run.naruse2011-07-291-1/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use setrlimit(NOFILE,1) on OpenBSD.naruse2011-07-291-1/+3
| | | | | | Because on OpenBSD it freezes if limit=0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/fileutils/test_fileutils.rb: add OpenBSD case.naruse2011-07-271-2/+4
| | | | | | | | patched by Jeremy Evans [ruby-core:38530] see #5097 * test/ruby/test_process.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (proc_daemon): should not start timer threadnobu2011-06-241-0/+54
| | | | | | twice. fixed Bug#4920. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (before_exec, after_exec): change SIGPIPE handler to SIG_DFLkosaki2011-05-281-0/+18
| | | | | | | | | | before calling execve(). Because r31760 reintroduced an issue that system() may hang up (i.e. [ruby-dev:12261]). * process.c (save_sigpipe, restore_sigpipe): new. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e