aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/core/io
Commit message (Collapse)AuthorAgeFilesLines
* Update to ruby/spec@7de852dBenoit Daloze2019-04-2814-631/+594
|
* Update to ruby/spec@15c9619Benoit Daloze2019-04-274-21/+13
|
* Update to ruby/spec@e81b3cderegon2019-03-281-0/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/../shared/write.rb: suppress random failurek0kubun2019-02-231-3/+5
| | | | | | due to MJIT worker's known race condition. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@7a16e01eregon2019-02-211-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@6cf8ebeeregon2019-02-073-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@35a9fbaeregon2019-01-201-4/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* setbyte / ungetbyte allow out-of-range integersshyouhei2019-01-151-1/+9
| | | | | | | | | | | | * string.c: String#setbyte to accept arbitrary integers [Bug #15460] * io.c: ditto for IO#ungetbyte * ext/strringio/stringio.c: ditto for StringIO#ungetbyte git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@944ea57eregon2018-12-292-1/+43
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/../initialize_spec.rb: skip fd-specific speck0kubun2018-12-161-9/+9
| | | | | | https://gist.github.com/ko1/72c03695e81a54d40649f29d0c421f26 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/core/io/*_spec.rb: explain MJIT failuresnormal2018-12-032-6/+6
| | | | | | | | | | | | | These random failures happen because FD number allocation is not predictable when multiple threads are running (since MJIT thread is opening/closing files all the time). Real-world code practically never relies on predictable FD number allocation (because much real-world code is multi-threaded); so it's highly unlikely there'll be any breakage to the user. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@cdd6ff7eregon2018-11-272-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io + socket: make pipes and sockets nonblocking by defaultnormal2018-11-222-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Skip known MJIT random test failuresk0kubun2018-11-202-14/+22
| | | | | | | Let me silence this until I have time to work on them, and make the CI usable for testing other features. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: ungetbyte silently ignores upper bitsshyouhei2018-11-191-3/+19
| | | | | | | | | The behaviour of IO#ungetbyte has been depending on the width of Fixnums. Fixnums should be invisible nowadays. It must be a bug. Fix [Bug #14359] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@8b743a3eregon2018-10-273-0/+108
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/core/io/select_spec.rb: workaround stuck IO.selectnormal2018-08-201-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Under pipe page memory pressure on Linux, a pipe may only be created with a single buffer[1]. And as of Linux v4.18, the fs/pipe.c::pipe_poll callback does not account for merging done in fs/pipe::pipe_write; only the number of usable buffers in the pipe. Thus it is possible for a pipe to be writable (if only by a small amount) despite IO.select saying it is not. With the default 16384 /proc/sys/fs/pipe-user-pages-soft value and the pipe having 16 pages of buffers, this issue is trivially reproducible by creating 1024 pipes in a background process before running the spec: $ ulimit -n 2053 # or something higher $ ./miniruby -e '1024.times.map { IO.pipe }; sleep' & $ make test-spec MSPECOPT=spec/ruby/core/io/select_spec.rb So, we create a new pipe we never write to for testing writability of IO.select. This may cause the test to fail with ENFILE on an overloaded system, but at least that's an obvious failure (unlike having a test get stuck). This should reduce failures on our overloaded CI machines: http://ci.rvm.jp/results/trunk-nopara@silicon-docker/1239426 [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/pipe.c?h=v4.18#n642 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@9be7c7eeregon2018-08-032-2/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@a454137eregon2018-06-273-2/+21
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@4bb0f25eregon2018-06-131-1/+1
| | | | | | * Specs added by TruffleRuby. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@6f38a82eregon2018-04-288-113/+36
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@c1b568beregon2018-03-0484-168/+168
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@cbe855ceregon2018-02-271-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@83063a3eregon2018-01-295-4/+44
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@0fe33aceregon2017-12-271-0/+17
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use syswrite to avoid potential buffering in IO#select speceregon2017-12-181-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@bacedc5eregon2017-12-014-1/+78
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Clarify what is written and read in IO#popen speceregon2017-10-291-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix spec which can fail if the pipe is closed before flushing in the subprocesseregon2017-10-291-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@a6b8805eregon2017-10-286-2/+46
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: write a newline togethernobu2017-10-251-6/+3
| | | | | | | | * io.c (rb_io_puts): write a newline together at once for each argument. based on the patch by rohitpaulk (Rohit Kuruvilla) at [ruby-core:83508]. [Feature #14042] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@691755deregon2017-09-281-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Move spec/rubyspec to spec/ruby for consistencyeregon2017-09-20105-0/+7327
* Other ruby implementations use the spec/ruby directory. [Misc #13792] [ruby-core:82287] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e