aboutsummaryrefslogtreecommitdiffstats
path: root/test/io
Commit message (Collapse)AuthorAgeFilesLines
* test_io_wait.rb: try to stabilize test_wait_readablek0kubun2018-12-311-1/+1
| | | | | | | that randomly fails https://rubyci.org/logs/mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/log/20181231T103312Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Suppress uninitialized instance variable warningsnobu2018-12-141-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io + socket: make pipes and sockets nonblocking by defaultnormal2018-11-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | All normal Ruby IO methods (IO#read, IO#gets, IO#write, ...) are all capable of appearing to be "blocking" when presented with a file description with the O_NONBLOCK flag set; so there is little risk of incompatibility within Ruby-using programs. The biggest compatibility risk is when spawning external programs. As a result, stdin, stdout, and stderr are now always made blocking before exec-family calls. This change will make an event-oriented MJIT usable if it is waiting on pipes on POSIX_like platforms. It is ALSO necessary to take advantage of (proposed lightweight concurrency (aka "auto-Fiber") or any similar proposal for network concurrency: https://bugs.ruby-lang.org/issues/13618 Named-pipe (FIFO) are NOT yet non-blocking by default since they are rarely-used and may introduce compatibility problems and extra syscall overhead for a common path. Please revert this commit if there are problems and if I am afk since I am afk a lot, lately. [ruby-core:89950] [Bug #14968] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/io/wait/test_io_wait_uncommon.rb: relax /dev/random checknormal2018-08-251-1/+7
| | | | | | | | | | Too many machines lack entropy to have a usable /dev/random. I had similar problems on my system until I started using haveged(8), but we can't require that for CI. cf. https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian/ruby-trunk/log/20180825T213003Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/io/console/test_io_console.rb: fix short read failuresnormal2018-08-091-14/+14
| | | | | | | | Running with TESTS=--no-retry, I sometimes get short reads leading to failures due to the use of IO#readpartial instead of IO#gets. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/io/wait/test_io_wait_uncommon.rb (test_tty_wait): increase timeoutnormal2018-08-091-1/+1
| | | | | | | Apparently my tty can't keep up when I run test-all with TESTS='-v --no-retry' git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/io/console/test_io_console.rb: fix for systems where PTY is not definednormal2018-06-061-5/+4
| | | | | | | [ruby-core:87420] [Bug #14828] Thanks-to: MSP-Greg (Greg L) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/io/console/test_io_console.rb: ignore TTOU on FreeBSDnormal2018-06-051-0/+16
| | | | | | | I'm not entirely sure why, but SIGTTOU pauses the test when running test-all in parallel. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_wait_uncommon: new test for uncommon file typesnormal2018-05-151-0/+72
| | | | | | | | This should make portability problems more apparent when we try using ppoll with rb_wait_for_single_fd on FreeBSD or other non-Linux platforms. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/io/console/test_io_console.rb (test_oflush): Avoid race conditionmame2018-02-151-0/+1
| | | | | | Add a ad-hoc wait. Follows test_ioflush2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: get rid of sporadic failuresnobu2017-12-231-1/+3
| | | | | | | | | * test/io/console/test_io_console.rb (test_getpass): try to get rid of timing issues. * test/io/console/test_io_console.rb (test_ioflush2): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: flushnobu2017-09-281-0/+4
| | | | | | | * test/io/console/test_io_console.rb: flush to ensure the second data is sent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* console.c: set winsize on Windowsnobu2017-09-111-0/+5
| | | | | | | * ext/io/console/console.c (console_set_winsize): retry shrinking window and screen buffer. [ruby-core:82741] [Bug #13888] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: test_set_winsize_consolenobu2017-09-111-27/+35
| | | | | | | | * test/io/console/test_io_console.rb (test_set_winsize_console): split from test_get_winsize_console and enable the case when attached to a console already git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Hide NotImplementedError for windowsmame2017-09-051-0/+1
| | | | | | https://github.com/ruby/ruby/commit/440dc6b7e0b3b74db221eed81871516e301d4b3e#commitcomment-24074203 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Improve line covearge of ext/io/nonblock/nonblock.c from 54.5% to 95.5%mame2017-09-041-0/+18
| | | | | | Not so good test, but it would be better than nothing, I guess... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: fix of old CentOS5nobu2017-01-081-2/+2
| | | | | | | * test/io/console/test_io_console.rb (test_winsize): on old CentOS5 window size seems unable to be set across a pty. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* console.c: unpaired sizenobu2017-01-071-0/+1
| | | | | | | * ext/io/console/console.c (console_set_winsize): reject unpaired pixel size. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* console.c: OOB accessnobu2017-01-071-0/+30
| | | | | | | * ext/io/console/console.c (console_set_winsize): fix out-of-bounds access. [ruby-core:79004] [Bug #13112] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io/console: unknown key code for names with nulnobu2016-04-151-0/+15
| | | | | | | | | | * ext/io/console/console.c (console_key_pressed_p): raise the same exception, "unknown virtual key code", for names with nul chars. though console_win32_vk() considers the length and can deal with nul chars, rb_sprintf() raised at PRIsVALUE previously, so quote it if it is unprintable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io/console: move conditionsnobu2016-04-151-4/+7
| | | | | | | * test/io/console/test_io_console.rb: move conditions for method definitions before the bodies. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/io/wait/test_io_wait.rb (test_wait_readwrite_timeout):odaira2016-03-091-1/+8
| | | | | | | | select(2) in AIX returns "readable" for the write-side fd of a pipe, so it is not possible to use a pipe to test the read-write timeout of IO#wait on AIX. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test: use assert_not_*nobu2016-02-191-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* wait readable/writablenobu2016-01-241-0/+12
| | | | | | | | * ext/io/wait/wait.c (io_wait_readwrite): [EXPERIMENTAL] allow to wait for multiple modes, readable and writable, at once. the arguments may change in the future. [Feature #12013] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_wait.rb: wait_readablenobu2016-01-241-0/+31
| | | | | | | * test/io/wait/test_io_wait.rb: add tests for IO#wait_readable, same as IO#wait. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add frozen_string_literal: false for all filesnaruse2015-12-163-0/+3
| | | | | | When you change this to true, you may need to add more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* TestIO_Console.rb: disable getpass test by --excludesnobu2015-12-091-1/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: skipnobu2015-12-091-0/+1
| | | | | | | * test/io/console/test_io_console.rb (test_getpass): skip for the time being. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: waitnobu2015-12-091-1/+2
| | | | | | | | * test/io/console/test_io_console.rb (test_getpass): wait for the child process to read the input, not to read it by the master itself. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: ignore echo backnobu2015-12-091-1/+1
| | | | | | | | * test/io/console/test_io_console.rb (test_getpass): ignore echo back of input from the master side. some systems seem echo back but other may not. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/io/console/test_io_console.rb (run_pty): Avoid waiting twicengoto2015-12-081-1/+0
| | | | | | | | for a process. Fix Errno::ECHILD in TestIO_Console#test_close and TestIO_Console#test_sync. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* retry IO#getpassnobu2015-12-081-4/+15
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r52902,r52903,r52910,r52911,r52937,r52939naruse2015-12-081-27/+4
| | | | | | Reject IO::Console#getpass because it can't test portablly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: separate master and slavenobu2015-12-081-8/+16
| | | | | | | | * test/io/console/test_io_console.rb (test_getpass): separate master side and slave side in each threads. r52937 deadlocked on OS X. [Bug #11780] [ruby-dev:49412] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/io/console/test_io_console.rb (test_getpass): s.getpassngoto2015-12-081-10/+10
| | | | | | | | should be tested. Narrow ensure block. This reverts r52911. [Bug #11780] [ruby-dev:49412] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* temporally remove prompt to pass the testnaruse2015-12-071-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: waitnobu2015-12-061-1/+2
| | | | | | | * test/io/console/test_io_console.rb (test_getpass): wait slave thread. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* console.c: console_getpassnobu2015-12-061-0/+14
| | | | | | | * ext/io/console/console.c (console_getpass): add IO#getpass method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/io/wait/test_io_wait.rb (test_wait_eof): test return valuenormal2015-10-221-1/+3
| | | | | | | I wrote some code which relies on this nowadays, but Ruby <=2.2 and earlier behaved differently... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52231 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
* use assert_raisenobu2015-06-021-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_wait.rb: no EOF testnobu2015-04-121-1/+3
| | | | | | | * 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
* io/wait: fix return value for buffered readnormal2015-03-011-1/+1
| | | | | | | | | | * ext/io/wait/wait.c (io_nread): wrap return value with INT2FIX Thanks to Yura Sokolov <funny.falcon@gmail.com> [ruby-core:68369] [Bug#10923] * test/io/wait/test_io_wait.rb (test_nread_buffered): fix broken test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC]akr2015-01-111-0/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: different namesnobu2014-12-281-2/+2
| | | | | | | * test/io/console/test_io_console.rb (test_noctty): use different names for each tempfiles. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* console.c: IO.console arguments passingnobu2014-12-251-0/+8
| | | | | | | | | | * ext/io/console/console.c (console_dev): send the given arguments to the opened console. as a special case, do nothing if :close is given. * test/lib/leakchecker.rb (LeakChecker#check_fd_leak): close if console. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: use getsnobu2014-12-251-2/+3
| | | | | | | * test/io/console/test_io_console.rb (run_pty): pty cannot read all, should use gets only. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io_console.rb: chomp resultsnobu2014-12-251-1/+1
| | | | | | | * test/io/console/test_io_console.rb (run_pty): IO#readlines ignores the given block. need map to chomp the results. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/io/console/test_io_console.rb (TestIO_Console#run_pty): no block given.usa2014-12-251-1/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* console.c: get rid of NameErrornobu2014-12-251-10/+24
| | | | | | | * ext/io/console/console.c (console_dev): id_console is not a constant name, use rb_const_remove() to get rid of NameError. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e