aboutsummaryrefslogtreecommitdiffstats
path: root/spec
Commit message (Collapse)AuthorAgeFilesLines
* Try 4 times for WIN32OLE specseregon2018-08-201-4/+5
| | | | | | | * They seem to fail a lot on: http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/recent.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r64471eregon2018-08-201-2/+0
| | | | | | | | | * This reverts commit 9ab04897bd06767f773b35c6958a0551981093aa: "don't run specs add at r64409 on Windows" * It doesn't seem to help: http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/recent.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64482 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
* don't run specs add at r64409 on Windowsnaruse2018-08-191-0/+2
| | | | | | Maybe it breaks http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/log/20180817T095734Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* select() on all platforms for Socket#recvmsg_nonblock speceregon2018-08-191-1/+1
| | | | | | | * The specs above already do that, and Solaris needs it too: https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10x/ruby-trunk/log/20180819T111806Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Guard spec which only works on Linuxeregon2018-08-181-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Special case for Solaris 11x on RubyCIeregon2018-08-181-2/+5
| | | | | | * Where localhost is an alias but not the primary name of 127.0.0.1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Be more flexible in the protocol value returned by getaddrinfo()eregon2018-08-181-26/+22
| | | | | | | * Only Solaris 2.10 i386 and Windows seem to return 0 it and other Solaris seem to fill the value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Adapt pack_sockaddr_in specs for Solariseregon2018-08-181-5/+18
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use ftp for the service in getaddrinfo/getnameinfo/getservbyname specseregon2018-08-184-64/+55
| | | | | | * Solaris cannot resolve 'http' but can resolve 'ftp'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Simplify to a more standardized Socket SCM constant in specseregon2018-08-181-6/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add guards for Solaris for socket specseregon2018-08-182-6/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Adapt spec to consider Solariseregon2018-08-181-6/+11
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use 127.0.0.1 instead of localhost in Addrinfo specseregon2018-08-182-15/+12
| | | | | | | * Solaries doesn't support Addrinfo.getaddrinfo('localhost', 80), but supports Addrinfo.getaddrinfo('127.0.0.1', 80). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Accept TypeError for Socket#getnameinfoeregon2018-08-181-2/+4
| | | | | | | * Happens when VALIDATE_SOCKLEN() actually checks the length such as on FreeBSD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Always set autoclose=false for IO.for_fd fdseregon2018-08-182-1/+3
| | | | | | | * I believe this should be default behavior, see [Feature #2250]. * Now make test-spec MSPECOPT='-R100 spec/ruby/library/socket' works fine. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Re-add socket specseregon2018-08-1810-0/+1451
| | | | | | | | * This reverts commit df9521fd043df1fb862e46f9b1af83223f16eb2d: "Remove failing spec files" * Platform guards follow in the next commits. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r64441eregon2018-08-181-8/+18
| | | | | | | | | | * This reverts commit 647fc1227a4146ecbfeb0d59358abc8d99cd8ae6: "thread_sync.c (rb_mutex_synchronize): only unlock if we own the mutex" * Let's try to preserve the semantics of always being locked inside Mutex#synchronize, even if an exception interrupts ConditionVariable#wait. * As discussed on [Bug #14999]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_sync.c (rb_mutex_synchronize): only unlock if we own the mutexnormal2018-08-181-18/+8
| | | | | | | | | | | | | | | | | If an exception is raised inside Mutex#sleep (via ConditionVariable#wait), we cannot guarantee we can own the mutex in the ensure callback. However, who owns the mutex at that point does not matter. What matters is the Mutex is usable after an exception occurs. * thread_sync.c (rb_mutex_synchronize): only unlock if we own the mutex * spec/ruby/library/conditionvariable/wait_spec.rb: only test lock usability after thread kill. Who owns the lock at any particular moment is an implementation detail which we cannot easily guarantee. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Guard spec failing on Solariseregon2018-08-171-26/+28
| | | | | | * https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11x/ruby-trunk/log/20180817T182406Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add guard for Solaris in Socket#connect_nonblock speceregon2018-08-171-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Guard connect_nonblock spec on FreeBSDeregon2018-08-171-18/+20
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Guard with a :pktinfo feature specs relying on PKTINFOeregon2018-08-173-3/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Re-add specseregon2018-08-173-0/+297
| | | | | | | * This reverts commit 325fd389018897bd156837639675517ef3b7dea5. * Platform guards in the next commit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add a note how to run specs under older Ruby versionseregon2018-08-171-0/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix typo in version guarderegon2018-08-171-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add version guards for Enumerator::ArithmeticSequenceeregon2018-08-173-27/+77
| | | | | | * And keep specs for older versions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/README.md: add a note about version guardseregon2018-08-171-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Integrate new specs for ConditionVariable#wait to prevent regressionseregon2018-08-171-0/+96
| | | | | | * See [Bug #14999]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* skip examples failing on solarisnaruse2018-08-164-10/+18
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* apply r64239 to macOS toonobu2018-08-161-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/optional/capi/ext/io_spec.c: guard unreachable codenobu2018-08-151-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/optional/capi/ext/io_spec.c: guard unreachable codenobu2018-08-151-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* -Wsuggest-attribute=noreturn on io_spec_rb_io_wait_readablenobu2018-08-151-0/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/optional/capi/io_spec.rb: fix fragile spec from unpredictable errnonormal2018-08-142-0/+16
| | | | | | | | | | | | | | | rb_io_wait_readable and rb_io_wait_writable depend on the TSD errno value. Due to the recent changes in r64352-r64353 to restructure GVL, errno could be set to EAGAIN from the signal self-pipe and cause the rb_io_wait_readable spec to block unexpectedly. This should fix rubyspec timeouts on Solaris: http://rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20180814T042506Z.fail.html.gz * spec/ruby/optional/capi/ext/io_spec.c: add errno= setter method * spec/ruby/optional/capi/io_spec.rb: set errno to appropriate values for tests git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* non-symbol keys in kwargsnobu2018-08-142-30/+92
| | | | | | | | * class.c (separate_symbol): [EXPERIMENTAL] non-symbol key in keyword arguments hash causes an exception now. c.f. https://twitter.com/yukihiro_matz/status/1022287578995646464 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* skip non-IP interfacesnobu2018-08-121-2/+2
| | | | | | | * spec/ruby/library/socket/socket/getifaddrs_spec.rb: VirtualBox host only adapter seems something different than ordinary interfaces. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix r64296naruse2018-08-111-9/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Solaris 10 doesn't have getifaddrsnaruse2018-08-111-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Solaris raises EAI_SERVICE if hints.ai_socktype=0naruse2018-08-111-9/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove failing specsnaruse2018-08-103-297/+0
| | | | | | https://rubyci.org/logs/rubyci.s3.amazonaws.com/freebsd11zfs/ruby-trunk/log/20180810T183001Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove failing spec filesnaruse2018-08-1010-1451/+0
| | | | | | | | | | | Re-commit after specs are fixed. http://rubyci.s3.amazonaws.com/freebsd11zfs/ruby-trunk/log/20180810T063001Z.log.html.gz http://rubyci.s3.amazonaws.com/unstable10x/ruby-trunk/log/20180809T191808Z.log.html.gz http://rubyci.s3.amazonaws.com/unstable11x/ruby-trunk/log/20180809T192406Z.log.html.gz http://rubyci.s3.amazonaws.com/unstable10s/ruby-trunk/log/20180809T151911Z.log.html.gz http://rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20180809T192507Z.log.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: fix rubyspec of Process.groupsmrkn2018-08-101-2/+2
| | | | | | | | | | | | | | | getgroups(2) may return a GID list that includes duplicated GIDs. The behavior is totaly depends on what OS is used. This commit fixes the example of Process.groups so that the example is independent of this OS-dependent features. Additonaly, this commit adds the description of such system-dependent characteristics of Process.groups. [ruby-dev:50603] [Bug #14969] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* another test needs IO.selectnobu2018-08-101-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Don't run the spec on Solarisnaruse2018-08-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* apply r64239 to macOS toonobu2018-08-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* apply r64239 to macOS toonobu2018-08-094-6/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Don't run specs on Solarisnaruse2018-08-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/socket/*: more FreeBSD fixesnormal2018-08-097-5/+33
| | | | | | | | | | | | | | | | | | | | | FreeBSD portability notes: Loopback connections are not instantaneous (unlike Linux), so non-blocking read-after-write MUST check for readability via IO.select or IO#wait_readable before attempting non-blocking recv/read operations. IPv6 seems favored, so we'll get "::" instead of "0.0.0.0" Some constants are different or obsolete, so that should be self-explanatory. There are still other failures I or somebody else needs to get to when we have time and feel like dealing with spec DSL: http://rubyci.s3.amazonaws.com/freebsd11zfs/ruby-trunk/recent.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix MSG_OOB specnaruse2018-08-081-9/+3
| | | | | | | | | * OOBINLINE should be set for accepted socket * When OOBINLINE is set, MSG_OOB shouldn't be passed to recv Merge spec/ruby's commit 5b418374f8006318434ee9a2366382d004f585df git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e