summaryrefslogtreecommitdiff
path: root/spec
AgeCommit message (Collapse)Author
2020-06-03Ensure origins for all included, prepended, and refined modulesJeremy Evans
This fixes various issues when a module is included in or prepended to a module or class, and then refined, or refined and then included or prepended to a module or class. Implement by renaming ensure_origin to rb_ensure_origin, making it non-static, and calling it when refining a module. Fix Module#initialize_copy to handle origins correctly. Previously, Module#initialize_copy did not handle origins correctly. For example, this code: ```ruby module B; end class A def b; 2 end prepend B end a = A.dup.new class A def b; 1 end end p a.b ``` Printed 1 instead of 2. This is because the super chain for a.singleton_class was: ``` a.singleton_class A.dup B(iclass) B(iclass origin) A(origin) # not A.dup(origin) ``` The B iclasses would not be modified, so the includer entry would be still be set to A and not A.dup. This modifies things so that if the class/module has an origin, all iclasses between the class/module and the origin are duplicated and have the correct includer entry set, and the correct origin is created. This requires other changes to make sure all tests still pass: * rb_undef_methods_from doesn't automatically handle classes with origins, so pass it the origin for Comparable when undefing methods in Complex. This fixed a failure in the Complex tests. * When adding a method, the method cache was not cleared correctly if klass has an origin. Clear the method cache for the klass before switching to the origin of klass. This fixed failures in the autoload tests related to overridding require, without breaking the optimization tests. Also clear the method cache for both the module and origin when removing a method. * Module#include? is fixed to skip origin iclasses. * Refinements are fixed to use the origin class of the module that has an origin. * RCLASS_REFINED_BY_ANY is removed as it was only used in a single place and is no longer needed. * Marshal#dump is fixed to skip iclass origins. * rb_method_entry_make is fixed to handled overridden optimized methods for modules that have origins. Fixes [Bug #16852] Notes: Merged: https://github.com/ruby/ruby/pull/3140
2020-06-03Quarantine specs which fail frequently with CHECK_LEAKS=trueBenoit Daloze
2020-06-02Add a spec for the new NoMethodError display of the receiverJean Boussier
Notes: Merged: https://github.com/ruby/ruby/pull/3176
2020-06-01Make sure rb_enc_str_new_static() is used when enc is NULLBenoit Daloze
* The definition of the rb_enc_str_new_cstr macro depends on HAVE_BUILTIN___BUILTIN_CONSTANT_P. * It SEGV on mswin otherwise.
2020-05-31Update to ruby/spec@4e486faBenoit Daloze
2020-05-31Update to ruby/mspec@e3abf6bBenoit Daloze
2020-05-31Fix error raised by Net::HTTPResponse#inflater if the block raisesBenoit Daloze
* See https://bugs.ruby-lang.org/issues/13882#note-6 Notes: Merged: https://github.com/ruby/ruby/pull/3164
2020-05-31Fix spec description for Net::HTTP.getBenoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/3164
2020-05-30spec: add wsl guardYusuke Endoh
WSL 2 is officially released. It uses Linux kernel, so almost all specs for Linux work on WSL, except one: gethostbyaddr. I guess network resolution in WSL is based on Windows, so the behavior seems a bit different from normal Linux. This change adds `platform_is_not :wsl` guard, and guards out the test in question.
2020-05-26Use receiver #name rather than #inspect to build NameError messageJean Boussier
Notes: Merged: https://github.com/ruby/ruby/pull/3080
2020-05-25Fix failures in ./spec/bundler/quality_spec.rbKazuhiro NISHIYAMA
``` Failures: 1) The library itself does not contain any warnings Failure/Error: raise "Invoking #{method}!(#{args.map(&:inspect).join(", ")}) failed:\n#{last_command.stdboth}" RuntimeError: Invoking sys_exec!("ruby -w") failed: /home/user/snapshot-master/lib/bundler/cli/add.rb:4:in `<module:Bundler>': uninitialized constant Bundler::CLI (NameError) from /home/user/snapshot-master/lib/bundler/cli/add.rb:3:in `<top (required)>' from /home/user/snapshot-master/lib/rubygems/core_ext/kernel_require.rb:91:in `require' from /home/user/snapshot-master/lib/rubygems/core_ext/kernel_require.rb:91:in `require' from -:2:in `<main>' Commands: $ ruby -w /home/user/snapshot-master/lib/bundler/cli/add.rb:4:in `<module:Bundler>': uninitialized constant Bundler::CLI (NameError) from /home/user/snapshot-master/lib/bundler/cli/add.rb:3:in `<top (required)>' from /home/user/snapshot-master/lib/rubygems/core_ext/kernel_require.rb:91:in `require' from /home/user/snapshot-master/lib/rubygems/core_ext/kernel_require.rb:91:in `require' from -:2:in `<main>' # $? => 1 ```
2020-05-25Fix a failure in bundle version with version outputs the version with build ↵Kazuhiro NISHIYAMA
metadata ``` 1) bundle version with version outputs the version with build metadata Failure/Error: expect(out).to match(/\ABundler version #{Regexp.escape(Bundler::VERSION)} \(\d{4}-\d{2}-\d{2} commit #{COMMIT_HASH}\)\z/) expected "Bundler version 2.2.0.dev (2020-05-25 commit )" to match /\ABundler version 2\.2\.0\.dev \(\d{4}-\d{2}-\d{2} commit (?-mix:unknown|[a-fA-F0-9]{7,})\)\z/ Diff: @@ -1,2 +1,2 @@ -/\ABundler version 2\.2\.0\.dev \(\d{4}-\d{2}-\d{2} commit (?-mix:unknown|[a-fA-F0-9]{7,})\)\z/ +"Bundler version 2.2.0.dev (2020-05-25 commit )" Commands: $ /home/user/snapshot-master/ruby -I/home/user/snapshot-master/spec/bundler -r/home/user/snapshot-master/spec/bundler/support/artifice/fail.rb -r/home/user/snapshot-master/spec/bundler/support/hax.rb /home/user/snapshot-master/tmp/1/gems/system/bin/bundle version Bundler version 2.2.0.dev (2020-05-25 commit ) # $? => 0 ```
2020-05-25Fix a error in a `before(:suite)` hookKazuhiro NISHIYAMA
https://github.com/ruby/actions/runs/703745101?check_suite_focus=true#step:16:27 ``` An error occurred in a `before(:suite)` hook. Failure/Error: contents = File.read(version_file) Errno::ENOENT: No such file or directory @ rb_sysopen - /home/runner/work/actions/actions/snapshot-master/tmp/1/bundler-2.2.0.dev/lib/bundler/version.rb ```
2020-05-22Fixup 1d079a0c5d4d80860a4d6d692344124fe5c562b5Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3114
2020-05-22Sync Bundler PR #3624 with HEAD commitsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3114
2020-05-22Revert 1f011cccb16ca9e8ee378cb5a9d4c14459afd68cHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3114
2020-05-22Marked the failing examples with the current master branch on ruby repositoryHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3114
2020-05-22Sync Bundler PR #3624Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3114
2020-05-19Skip some tests if extracted from tarball (again)Kazuhiro NISHIYAMA
Fix up previous commit ref 9aa75795f9f438d5c874d8e418c3c7cdd63024fa, 38002a8adbd98266426940d829429a30af0622a4, and 0e60b59d5884edb8f9aea023efd9b24f1ff02049
2020-05-18Skip some tests if extracted from tarball (again)Kazuhiro NISHIYAMA
ref 9aa75795f9f438d5c874d8e418c3c7cdd63024fa
2020-05-14Thread scheduler for light weight concurrency.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/3032 Merged-By: ioquatix <samuel@codeotaku.com>
2020-05-14clean-up .bundle directory in bundled_appHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3105
2020-05-14Use the gemspec in build_dir directlyHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3105
2020-05-13Skip the examples for bundle exec with gem installationHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-13Marked the some examples that are not working with the ruby repositoryHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-13Use relative path in ruby core repositoryHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-13Unmask the some of examples with ruby_repo labelHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-13Skip the example to use rake commandHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-13skip lockfile_spec.rb:33 because it cleanup the .bundle repoHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-13Resolved the file path of gemspec for ruby core repositoryHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-13Added test_gems.rb for setup dependenciesHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-13Update the bundler version with master branchHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3086
2020-05-09Addeed missing RSpec namespaceHiroshi SHIBATA
2020-05-09Fix a typo [ci skip]Kazuhiro NISHIYAMA
2020-05-08[rubygems/rubygems] Restore the old .gemrc example for compatible testsHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/c45d65a06d Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-03Update to ruby/spec@032ee74Benoit Daloze
2020-05-03Update to ruby/mspec@d419d0bBenoit Daloze
2020-05-03Show unreserved bits onlyNobuyoshi Nakada
`RUBY_FL_SEEN_OBJ_ID` can be set by #object_id.
2020-05-03spec/ruby/core/process/clock_getres_spec.rb: lax the resolution limitYusuke Endoh
Android is Linux, but the clock resolution is 10 milliseconds. I think that 1 microsecond is too strict for embedded environment. This change laxes the limit to 10 milliseconds.
2020-05-03DO NOT CORRUPT TYPE FLAGSNobuyoshi Nakada
2020-05-03Fixed missing `should`Nobuyoshi Nakada
2020-05-02append newline at EOF [ci skip]Nobuyoshi Nakada
2020-05-02Command failed to run just failsNobuyoshi Nakada
The exact exit status value of command failed to run is not a spec, but a platform dependent implementation detail. Just it is not "success".
2020-05-02Fix ObjectSpace::WeakMap#key? to work if the value is nilBenoit Daloze
* Fixes [Bug #16826]
2020-05-02Update to ruby/spec@d394dfdBenoit Daloze
2020-05-02Update to ruby/mspec@ee29a34Benoit Daloze
2020-05-01Fixed a message and version guard then moved to the existing blockNobuyoshi Nakada
2020-05-01Fix a typoTakashi Kokubun
2020-05-01Fix matrix spec for 7d360efe92d2db11a4e51820ed2f52de36b3257fTakashi Kokubun
2020-04-29[ruby/spec] expand temporary directory to the real pathNobuyoshi Nakada
It may contain symbolic links.