summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2018-11-26process.c: finish MJIT prior to #execk0kubun
to prevent ruby from leaving MJIT-related files. test_jit.rb: add a test to prevent that git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-26add tests for grapheme clusters using Unicode Emoji test dataduerst
Add file test/ruby/enc/test_emoji_breaks.rb to test String#each_grapheme_cluster test data provided by Unicode (at https://www.unicode.org/Public/emoji/#{EMOJI_VERSION}/). Lines containing emoji for genies, zombies, and wrestling are ignored because there seems to be a bug (#15343) in the implementation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-26object.c: Deprecate Object#=~ and add NilClass#=~`mame
Object#=~ always returns nil. This behavior is not only unuseful but also troublesome because it may hide a type error. This change deprecates Object#=~. For compatibility, NilClass#=~ is newly introduced. [Feature #15231] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-26test/rdoc/test_rdoc_rdoc.rb: add dummy finishmame
RDoc::Options#@exclude is initialized as an empty array. Then, #finish converts it to a regexp or nil and reassign it to @exclude. Some methods of RDoc assumes that #finish has been already called. So, this change forces to assign nil to @exclude. This type confusion was found during work for removal of `Object#=~`. [Feature #15231] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-25Normalize month-mday before finding epochnaruse
Especially over the year 2038, 30 Feb and so on may cause odd behavior on validating found epoch with given year-month-day [Bug #15340] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-25parser: improve error messagesnobu
[Fix GH-2011] From: Akim Demaille <akim.demaille@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24assertions for r65956nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24remove guard against bug #15337, because it is fixedduerst
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24add tests using Unicode test data for grapheme clustersduerst
Add file test/ruby/enc/test_grapheme_breaks.rb to test String#each_grapheme_cluster and \X extended grapheme cluster matcher in regular expressions against test data provided by Unicode (ucd/auxiliary/GraphemeBreakTest.txt). Some lines in the data file are ignored, as follows: - Lines with a surrogate, because Ruby doesn't handle these - The case of "\r\n", because there is a bug (#15337) in the implementation git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24Don't use single byte optimization on grapheme clustersnaruse
Unicode Text Segmentation considers CRLF as a character. [Bug #15337] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24Implement Enumerator#+ and Enumerable#chain [Feature #15144]knu
They return an Enumerator::Chain object which is a subclass of Enumerator, which represents a chain of enumerables that works as a single enumerator. ```ruby e = (1..3).chain([4, 5]) e.to_a #=> [1, 2, 3, 4, 5] e = (1..3).each + [4, 5] e.to_a #=> [1, 2, 3, 4, 5] ``` git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24io.c: wait on FD readability w/o GVL reacquisitionnormal
Since non-blocking I/O is the default after [Bug #14968], we will hit it more often and cause more acquisition/release of GVL to wait on single FD. This also lets us avoid touching the temporal string locking as much and lets us clean up some test changes made for [Bug #14968] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24Fix r65926 test_dir.rb for windows (tilde)k0kubun
[Fix GH-2022] From: MSP-Greg <greg.mpls@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-23test/ruby/test_thread.rb: use safe navigation operator.kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-23split each assert_nothing_raisednobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22Use File.expand_path("~username") instead of ENV["HOME"]naruse
File.expand_path("~username") uses getpwnam() independently from Dir.home. [Bug #15324] From: Chris Seaton <chris@chrisseaton.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22Revert r63030nobu
* array.c (rb_ary_collect): no longer splat sole array for lambda. [ruby-core:89734] [Bug #15285] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22io + socket: make pipes and sockets nonblocking by defaultnormal
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
2018-11-22Enable refinements at Object#respond_to?nobu
[Feature #15327] [Fix GH-2020] From: osyo-manga <manga.osyo@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22Enable refinements to public_send.nobu
[Feature #15326] [Fix GH-2019] From: manga_osyo <manga.osyo@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22Proc#<< and Proc#>>nobu
[Feature #6284] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22proc.c: Support any callable when composing Procsnobu
* proc.c (proc_compose): support any object with a call method rather than supporting only procs. [Feature #6284] * proc.c (compose): use the function call on the given object rather than rb_proc_call_with_block in order to support any object. * test/ruby/test_proc.rb: Add test cases for composing Procs with callable objects. * test/ruby/test_method.rb: Add test cases for composing Methods with callable objects. From: Paul Mucur <paul@altmetric.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22proc.c: Implement Method#* for Method compositionnobu
* proc.c (rb_method_compose): Implement Method#* for Method composition, which delegates to Proc#*. * test/ruby/test_method.rb: Add test cases for Method composition. From: Paul Mucur <mudge@mudge.name> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22proc.c: Implement Proc#* for Proc compositionnobu
* proc.c (proc_compose): Implement Proc#* for Proc composition, enabling composition of Procs and Methods. [Feature #6284] * test/ruby/test_proc.rb: Add test cases for Proc composition. From: Paul Mucur <mudge@mudge.name> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22Revert "test_gem_remote_fetcher.rb: give up testing MJIT here"k0kubun
This reverts commit d12bcfc186f2aea5e83f2f59716958ea12b5c937. pause on --jit-wait looks not working... I'll fix that first. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21test_gem_remote_fetcher.rb: give up testing MJIT herek0kubun
because we can't configure timeout for remote fetcher. We've sometimes hit timeout. https://app.wercker.com/ruby/ruby/runs/mjit-test2/5bf5213c183106002857d355?step=5bf530de63e94600071b0785 https://app.wercker.com/ruby/ruby/runs/mjit-test2/5be3d719567ae90007681ed6?step=5be43b3887436a0006d00d21 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21Merge master branch from rubygems/rubygems upstream.hsbt
* Enable Style/MethodDefParentheses in Rubocop https://github.com/rubygems/rubygems/pull/2478 * Enable Style/MultilineIfThen in Rubocop https://github.com/rubygems/rubygems/pull/2479 * Fix required_ruby_version with prereleases and improve error message https://github.com/rubygems/rubygems/pull/2344 * Fix bundler rubygems binstub not properly looking for bundler https://github.com/rubygems/rubygems/pull/2426 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20Skip known MJIT random test failuresk0kubun
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
2018-11-20configure.ac: disable native-fiber for MinGWk0kubun
because it had already been SEGV-ed in pull request'S CI https://ci.appveyor.com/project/ruby/ruby/builds/20427065/job/32oahrcd58b8ubb1 and has never worked on trunk either. Please make sure it does not SEGVs on your MinGW environment or pull request before enabling native fiber on MinGW. appveyor.yml: reverted commits to make CI green with native fiber test/excludes/_appveyor/msys2/TestArray.rb: ditto test/excludes/_appveyor/msys2/TestEnumerable.rb: ditto test/excludes/_appveyor/vs/TestArray.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20appveyor.yml: do not undefine everything [ci skip]k0kubun
https://ci.appveyor.com/project/ruby/ruby/builds/20432223/job/yhwbku8dg2s40e9e C:/projects/ruby/test/lib/test/unit.rb:1004: warning: undefining `object_id' may cause serious problems C:/projects/ruby/test/lib/test/unit.rb:1004: warning: undefining `__send__' may cause serious problems git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20appveyor.yml: exclude TestEnumerable.rb on msys2k0kubun
because it SEGVs on setup like: https://ci.appveyor.com/project/ruby/ruby/builds/20431217/job/97no5h1gqv50k1vf git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20test/excludes/_appveyor: exclude AppVeyor killerk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20revert r65822shugo
Because mon_initialized may be used to re-initialize copied objects intentionally. mon_initialize_spec.rb fails: 1) MonitorMixin#mon_initialize can be called in initialize_copy to get a new Mutex and used with synchronize ERROR ThreadError: already initialized /home/shugo/src/ruby/lib/monitor.rb:255:in `mon_initialize' /home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:19:in `initialize_copy' /home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:28:in `initialize_dup' /home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:28:in `dup' /home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:28:in `block (2 levels) in <top (required)>' /home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:4:in `<top (required)>' git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20lib/monitor.rb: prevent to initialize MonitorMixin twiceshugo
Suggested by Benoit Daloze. [ruby-core:88504] [Feature #15000] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20process.c: do not try to pause MJITk0kubun
while child handler is disabled. trying to fix [Bug #15320] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19test_process.rb: Process.daemon seems irrelevant [ci skip]k0kubun
in the backtrace: http://ci.rvm.jp/results/trunk-mjit@silicon-docker/1468677 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19revert r65807k0kubun
it didn't work. http://ci.rvm.jp/results/trunk-mjit@silicon-docker/1468677 and skips broken tests for now. But this issue should be fixed soon. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19string.c: setbyte silently ignores upper bitsshyouhei
The behaviour of String#setbyte has been depending on the width of int, which is not portable. Must check explicitly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-18test_jit.rb: loosen output checkk0kubun
for interleaving between processes https://gist.github.com/ko1/ace0374825377b41628d4590b7377601 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-18test_jit.rb: dump information to debug test failurek0kubun
debugging http://ci.rvm.jp/results/trunk-vm-asserts@silicon-docker/1466123 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-18mjit_worker.c: support MJIT in forked Ruby processk0kubun
by launching MJIT worker thread in child Ruby process. See the comment before `mjit_child_after_fork` for details. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-18test_jit.rb: fix typo [ci skip]k0kubun
we don't have such VM register git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-17test/mkmf/base.rb: use CC_WRAPPER same as the toplevelnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16test/excludes/_wercker: remove obsoleted pipeline namek0kubun
from excludes directory names. test-mjit-wait / test-mjit are combined and distributed as mjit-test1 and mjit-test2 now. So the subdirectory names are changed to option names, --jit and --jit-wait. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16appveyor.yml: give up running test_push_over_ary_maxk0kubun
because separately running it without -j didn't work. Revert "appveyor.yml: run memory-exchausting test separately" This reverts commit r65703. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16Test for undef'ed method in class hierachyk0kubun
This probably should have been `#bar` on the instance of class `Undef2` all along [Fix GH-2015] From: Alex Snaps <alex.snaps@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16pack.c: refine warningnobu
* pack.c (unknown_directive): refine warning message at unknown directive in unpack too, and quote unprintable characters. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14test_ftp.rb: loosen another timeout requirementk0kubun
for Travis osx. https://travis-ci.org/ruby/ruby/jobs/454864155 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14test_ftp.rb: loosen timeout for Travis osxk0kubun
https://travis-ci.org/ruby/ruby/jobs/454798071 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14test_gem_stream_ui.rb: loosen timeout for --jit-waitk0kubun
https://app.wercker.com/ruby/ruby/runs/mjit-test2/5beba9be183106002852f8a6?step=5bebc1a087436a0006f94a22 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e