summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2021-10-09[ruby/reline] Fix tests to show dialog to the right edgeaycabta
https://github.com/ruby/reline/commit/6a0d0ada94
2021-10-09[ruby/reline] Add a test for full-width scrollbaraycabta
https://github.com/ruby/reline/commit/cff83e68f8
2021-10-09[rubygems/rubygems] Improve performance of Specification#missing_extensions?Masataka Pocke Kuwabara
https://github.com/rubygems/rubygems/commit/90c1919f94
2021-10-08Remove autoload for constant if the autoload failsJeremy Evans
Previously, if an autoload failed (the file was loaded, but the constant was not defined by the autoloaded file). Ruby will try to autoload again if you delete the autoloaded file from $LOADED_FEATURES. With this change, the autoload and the constant itself are removed as soon as it fails. To handle cases where multiple threads are autoloading, when deleting an autoload, handle the case where another thread already deleted it. Fixes [Bug #15790] Notes: Merged: https://github.com/ruby/ruby/pull/4715 Merged-By: jeremyevans <code@jeremyevans.net>
2021-10-08Add tests for the edge caces of `String#end_with?`Nobuyoshi Nakada
Also, check if a suffix is empty, to guarantee the assumption of `onigenc_get_left_adjust_char_head` that `*s` is always accessible, even in the case of `SHARABLE_MIDDLE_SUBSTRING`.
2021-10-08[ruby/irb] Add tests for truncated show doc dialogaycabta
But pending them now because they need dummy document data to show doc. https://github.com/ruby/irb/commit/ac471ee14e
2021-10-08[ruby/reline] Add a test for narrow screen without scrollbaraycabta
https://github.com/ruby/reline/commit/44cd35e65d
2021-10-08[ruby/reline] Cut off the excess on narrow screenaycabta
https://github.com/ruby/reline/commit/972cc993ca
2021-10-07Dump outer variables tables when dumping an iseq to binaryAaron Patterson
This commit dumps the outer variables table when dumping an iseq to binary. This fixes a case where Ractors aren't able to tell what outer variables belong to a lambda after the lambda is loaded via ISeq.load_from_binary [Bug #18232] [ruby-core:105504] Notes: Merged: https://github.com/ruby/ruby/pull/4942
2021-10-08Remove duplicate value checks on `mrhs` which always has the valueNobuyoshi Nakada
2021-10-07[ruby/ipaddr] Support zone identifiers in IPv6 addressesJeremy Evans
These are supported by Ruby's socket library if the operating system supports zone indentifiers, so they should be supported by ipaddr. See RFCs 4007 and 6874 for additional information. Implements Ruby Feature #10911 https://github.com/ruby/ipaddr/commit/09a6408fb2
2021-10-07[ruby/ipaddr] Add netmask method that returns net mask as string.Bogdan Irimie
https://github.com/ruby/ipaddr/commit/283d16f3a3
2021-10-07[ruby/ipaddr] Disallow leading zeros in maskJeremy Evans
https://github.com/ruby/ipaddr/commit/f49d2d49a4
2021-10-07[ruby/ipaddr] Raise if extra slashes followNobuyoshi Nakada
https://bugs.ruby-lang.org/issues/15832 https://github.com/ruby/ipaddr/commit/de9805d6fa
2021-10-07[ruby/ipaddr] Removing superfluos assingments & returnEspartaco Palma
Also adding test for ntop https://github.com/ruby/ipaddr/commit/0ba16cca10
2021-10-07test/ruby/test_process (test_no_curdir): tentatively skipped on SolarisYusuke Endoh
The test gets stuck on Solaris CI. http://rubyci.s3.amazonaws.com/solaris11-gcc/ruby-master/log/20211006T050007Z.fail.html.gz#test-all ``` [14558/21042] TestProcess#test_no_curdirtimeout: output interval exceeds 1800.0 seconds. timeout: the process group 3857 is alive. ``` Related to ee89543e09a2d4e4c503267c248ba7bfffa668cb
2021-10-05marshal.c Marshal.load accepts a freeze: true option.Jean Boussier
Fixes [Feature #18148] When set, all the loaded objects are returned as frozen. If a proc is provided, it is called with the objects already frozen.
2021-10-05[ruby/reline] Reduce window size so that it can be displayed in my desktopaycabta
https://github.com/ruby/reline/commit/22359d50ab
2021-10-05[ruby/reline] Cyrillic chars are now forced to be displayed in full-width on ↵aycabta
Windows So testing is no longer necessary. https://github.com/ruby/reline/commit/c59589548b
2021-10-05Show the last line at unexpected end-of-input errorNobuyoshi Nakada
2021-10-04Fix regression on Solaris after change to use realpath on loaded featuresJeremy Evans
After the change to use realpath on loaded features, Solaris CI started failing in test_no_curdir (which tests behavior for running ruby without a working directory). I was able to trace the problem to the following call chain: rb_call_inits->Init_Thread->Init_thread_sync->rb_provide-> get_loaded_features_index->rb_check_realpath->rb_dir_getwd_ospath-> ruby_getcwd This will throw an exception, but because Ruby hasn't been fully initialized at the point the exception is thrown, it just exits with a status of 1. The bug here is that rb_check_realpath should not raise an exception, it should return nil. This bug is hit on Solaris because Solaris uses the realpath emulation instead of native realpath, and the realpath emualation raised instead of returning nil if the mode was RB_REALPATH_CHECK. Use rb_rescue in the realpath emulation if the mode is RB_REALPATH_CHECK, and swallow any exceptions raised and return nil. Notes: Merged: https://github.com/ruby/ruby/pull/4935
2021-10-04Revert rescue around internal realpath call on SolarisJeremy Evans
Solaris CI still has a problem even with these commits, so it doesn't appear to fix the issue. Reverting both 84e8e2a39bba874433b661bd378165bd03c9d6aa and bfd2f159f0c60ef8ac5bce6042edd25a571769b7.
2021-10-04Only rescue realpath calls during require on SolarisJeremy Evans
Remove temporary skip of test_no_curdir to see if this fixes the problem. Notes: Merged: https://github.com/ruby/ruby/pull/4931
2021-10-04The same warning for static symbol literalNobuyoshi Nakada
2021-10-04Fix the warning message for dynamic symbol literal in conditionNobuyoshi Nakada
2021-10-03Remove extraneous conversion to float [Bug #18236]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4927
2021-10-03[ruby/reline] Re-calc the scroll pos when the content in dialog is shortenedaycabta
https://github.com/ruby/reline/commit/12ea63e6e0
2021-10-03Revert "mkmf.rb: try linking at try_var" [Bug #18235]Nobuyoshi Nakada
This reverts commit 524513be399e81bb170ec88aa0d501f33cbde8c3, which can return false positive by existing but unusable symbol, including functions.
2021-10-03[ruby/reline] Add a test for rerendering arg prompt after pastingaycabta
https://github.com/ruby/reline/commit/5414a42b0e
2021-10-03[ruby/reline] Add newlines for readabilityaycabta
https://github.com/ruby/reline/commit/2a60aacebb
2021-10-03[ruby/reline] Stop using Ctrl+j to test on Windowsaycabta
Because Ctrl+j and Enter are the same on Windows. https://github.com/ruby/reline/commit/fa885ed449
2021-10-02Temporarily skip test_no_curdir test to avoid CI failures on SolarisJeremy Evans
2021-10-02Do not load file with same realpath twice when requiringJeremy Evans
This fixes issues with paths being loaded twice in certain cases when symlinks are used. It took me multiple attempts to get this working. My original attempt tried to convert paths to realpaths before adding them to $LOADED_FEATURES. Unfortunately, this doesn't work well with the loaded feature index, which is based off load paths and not realpaths. While I was able to get require working, I'm fairly sure the loaded feature index was not being used as expected, which would have significant performance implications. Additionally, I was never able to get that approach working with autoload when autoloading a non-realpath file. It also broke some specs. This takes a more conservative approach. Directly before loading the file, if the file with the same realpath has been required, the loading of the file is skipped. The realpaths are stored as fstrings in a hidden hash. When rebuilding the loaded feature index, the hash of realpaths is also rebuilt. I'm guessing this makes rebuilding process slower, but I don think that is a hot path. In general, modifying loaded features is only done when reloading, and that tends to be in non-production environments. Change test_require_with_loaded_features_pop test to use 30 threads and 300 iterations, instead of 4 threads and 1000 iterations. I saw only sporadic failures with 4/1000, but consistent failures 30/300 threads. These failures were due to the fact that the concurrent deletions from $LOADED_FEATURES in other threads can result in rb_ary_entry returning nil when rebuilding the loaded features index. To avoid concurrency issues when rebuilding the loaded features index, the building of the index itself is left alone, and afterwards, a separate loop is done on a copy of the loaded feature snapshot in order to rebuild the realpaths hash. Fixes [Bug #17885] Notes: Merged: https://github.com/ruby/ruby/pull/4887
2021-10-02[ruby/reline] Refactoring Reline::Key.match? and add test.manga_osyo
https://github.com/ruby/reline/commit/90e8999ae4
2021-10-01Avoid race condition in Regexp#matchJeremy Evans
In certain conditions, Regexp#match could return a MatchData with missing captures. This seems to require at the least, multiple threads calling a method that calls the same block/proc/lambda which calls Regexp#match. The race condition happens because the MatchData is passed from indirectly via the backref, and other threads can modify the backref. Fix the issue by: 1. Not reusing the existing MatchData from the backref, and always allocating a new MatchData. 2. Passing the MatchData directly to the caller using a VALUE*, instead of indirectly through the backref. It's likely that variants of this issue exist for other Regexp methods. Anywhere that MatchData is passed implicitly through the backref is probably vulnerable to this issue. Fixes [Bug #17507] Notes: Merged: https://github.com/ruby/ruby/pull/4734
2021-10-02Restore Hash#compare_by_identity mode [Bug #18171]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4893
2021-10-01Fix the encoding of loaded feature names [Bug #18191]Nobuyoshi Nakada
The feature names loaded from the default load paths should also be in the file system encoding. Notes: Merged: https://github.com/ruby/ruby/pull/4915
2021-09-30Make Array#min/max optimization respect refined methodsJeremy Evans
Pass in ec to vm_opt_newarray_{max,min}. Avoids having to call GET_EC inside the functions, for better performance. While here, add a test for Array#min/max being redefined to test_optimization.rb. Fixes [Bug #18180] Notes: Merged: https://github.com/ruby/ruby/pull/4911 Merged-By: jeremyevans <code@jeremyevans.net>
2021-09-30marshal.c: don't call the proc with partially initialized objects. (#4866)Jean byroot Boussier
For cyclic objects, it requires to keep a st_table of the partially initialized objects. Notes: Merged-By: byroot <jean.boussier@gmail.com>
2021-09-29[ruby/reline] Support ed_argument_digit by M+numaycabta
The vi mode can handle "argument number" before an operator or a motion, such as, "3x" (equals "xxx"), and "3l" (equals "lll"). In the emacs mode, GNU Readline can handle argument number with meta key, like "Meta+3 x" (equals "xxx"). https://github.com/ruby/reline/commit/9183cc2e8b
2021-09-28[ruby/did_you_mean] Disable error_highlight when testing did_you_meanYusuke Endoh
Fixes #160 https://github.com/ruby/did_you_mean/commit/93df310873
2021-09-28[rubygems/rubygems] Only disallow FIXME/TODO for first word of gemspec ↵Ellen Marie Dash
description 7890c98 matched the start of each line, whereas this matches the start of the entire string. https://github.com/rubygems/rubygems/commit/432de7b819
2021-09-28[ruby/date] Make %v strftime flag use uppercase monthJeremy Evans
%v is supposed to be the VMS date, and VMS date format uses an uppercase month. Ruby 1.8 used an uppercase month for %v, but the behavior was changed without explanation in r31672. Time#strftime still uses an uppercase month for %v, so this change makes Date#strftime consistent with Time#strftime. Fixes [Bug #13810] https://github.com/ruby/date/commit/56c489fd7e
2021-09-28[ruby/drb] Use omit instead of skip for test-unitHiroshi SHIBATA
https://github.com/ruby/drb/commit/0da149e7a9
2021-09-28[ruby/ostruct] Allow properties to be accessed even when the object is moved ↵rm155
to another Ractor (https://github.com/ruby/ostruct/pull/29) https://github.com/ruby/ostruct/commit/d85639f2f5
2021-09-28[ruby/reline] Ignore NUL by ed_quoted_insertaycabta
https://github.com/ruby/reline/commit/43b7c01a98
2021-09-28[ruby/timeout] test that yield is given number of secondsJohn Bachir
https://github.com/ruby/timeout/commit/ec5a614334
2021-09-27Show failed environment variablesNobuyoshi Nakada
2021-09-27[ruby/timeout] test for basic functionalityJohn Bachir
https://github.com/ruby/timeout/commit/1c6bb90aea
2021-09-24Pend test_complete_require_library_name_firstaycabta