aboutsummaryrefslogtreecommitdiffstats
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* Fix passing actual object_id to finalizerJohn Hawthorn2019-11-081-0/+8
| | | | | | | | | | Previously we were passing the memory_id. This was broken previously if compaction was run (which changes the memory_id) and now that object_id is a monotonically increasing number it was always broken. This commit fixes this by defering removal from the object_id table until finalizers have run (for objects with finalizers) and also copying the SEEN_OBJ_ID flag onto the zombie objects.
* Fix typoKazuki Tsujimoto2019-11-081-1/+1
|
* Define Struct#deconstruct_keysKazuki Tsujimoto2019-11-082-0/+36
|
* use builtin for TracePoint.Koichi Sasada2019-11-081-37/+101
| | | | Define TracePoint in trace_point.rb and use __builtin_ syntax.
* Add a counter for compactionAaron Patterson2019-11-071-0/+6
| | | | | Keep track of the number of times the compactor ran. I would like to use this as a way to keep track of inline cache reference updates.
* Use a monotonically increasing number for object_idJohn Hawthorn2019-11-072-90/+8
| | | | | | | | | | | | | | | | | This changes object_id from being based on the objects location in memory (or a nearby memory location in the case of a conflict) to be based on an always increasing number. This number is a Ruby Integer which allows it to overflow the size of a pointer without issue (very unlikely to happen in real programs especially on 64-bit, but a nice guarantee). This changes obj_to_id_tbl and id_to_obj_tbl to both be maps of Ruby objects to Ruby objects (previously they were Ruby object to C integer) which simplifies updating them after compaction as we can run them through gc_update_table_refs. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
* Disallow duplicated pattern variableKazuki Tsujimoto2019-11-071-8/+59
|
* Revert "Use a monotonically increasing number for object_id"Aaron Patterson2019-11-062-8/+90
| | | | This reverts commit bd2b314a05ae9192b3143e1e678a37c370d8a9ce.
* Use a monotonically increasing number for object_idJohn Hawthorn2019-11-062-90/+8
| | | | | | | | | | | | | | | | | This changes object_id from being based on the objects location in memory (or a nearby memory location in the case of a conflict) to be based on an always increasing number. This number is a Ruby Integer which allows it to overflow the size of a pointer without issue (very unlikely to happen in real programs especially on 64-bit, but a nice guarantee). This changes obj_to_id_tbl and id_to_obj_tbl to both be maps of Ruby objects to Ruby objects (previously they were Ruby object to C integer) which simplifies updating them after compaction as we can run them through gc_update_table_refs. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
* Numbered parameter is an ID_LOCAL now [Bug #16293]Nobuyoshi Nakada2019-11-061-0/+1
|
* Numbered parameter cannot appear outside block now [Bug #16293]Nobuyoshi Nakada2019-11-061-0/+3
|
* Prohibit calling undefined allocator [Bug #16297]Nobuyoshi Nakada2019-11-061-0/+8
|
* Undefine MatchData.allocate [Feature #16294]Nobuyoshi Nakada2019-11-061-0/+5
|
* Assert return value of Readline.readline only if Ruby is before 2.7aycabta2019-11-051-1/+1
|
* Revert "[EXPERIMENTAL] Make Symbol#to_s return a frozen String [Feature #16150]"NARUSE, Yui2019-11-051-3/+1
| | | | This reverts commit 6ffc045a817fbdf04a6945d3c260b55b0fa1fd1e.
* [ruby/racc] Strip trailing whitespaces at the last line of actionsNobuyoshi Nakada2019-11-0427-2513/+2513
| | | | https://github.com/ruby/racc/commit/a887ebe529
* Added assertions for linebreakNobuyoshi Nakada2019-11-031-0/+5
|
* Revert nil error and adding deprecation messageKenichi Kamiya2019-11-031-2/+2
|
* [ruby/date] Add more timezone abbreviationsJeremy Evans2019-11-011-0/+1
| | | | | | | | | | | | | | | | This gets the time zone abbreviations from https://www.timeanddate.com/time/zones/, and adds unambiguous time zones not already present in zonetab.list. See bin/update-abbr for the program used. This regenerates zonetab.h using prereq.mk (requires gperf). Only one test line is added, just to make sure a new time zone abbreviation is picked up. Fixes Ruby Bug 16286 https://github.com/ruby/date/commit/702e8b3033
* [ruby/zlib] Fix setting mtime to zero in GzipWriterAlan Wu2019-10-311-0/+11
| | | | | | | | | | | Before this change, it was not possible to write out zero for the timestamp part of a Gzip file's header, as calling GzipWriter#mtime with zero was ignored. Judging from the docs for `GzipWriter#mtime=`, it should be possible to indicate that no timestamp is available by calling the method with zero. https://github.com/ruby/zlib/commit/310be39cac
* [ruby/stringio] Remove taint supportJeremy Evans2019-10-311-11/+0
| | | | | | | | Ruby 2.7 deprecates taint and it no longer has an effect. The lack of taint support should not cause a problem in previous Ruby versions. https://github.com/ruby/stringio/commit/60ee9ccd95
* [ruby/date] Revert "Simplify #inspect"Jeremy Evans2019-10-311-2/+0
| | | | | | | | This reverts commit af01edd7d8575f544f647dbe8cde5b6ae535d459. Revert requested by Yui Naruse. https://github.com/ruby/date/commit/875d563557
* [ruby/date] introduce Date::Error, raise Date::Error for everyglaszig2019-10-313-27/+39
| | | | | | "invalid <anything>" type of exception https://github.com/ruby/date/commit/3e55c09ba4
* [ruby/zlib] Remove taint supportJeremy Evans2019-10-311-1/+0
| | | | | | | | Ruby 2.7 deprecates taint and it no longer has an effect. The lack of taint support should not cause a problem in previous Ruby versions. https://github.com/ruby/zlib/commit/21711ed0ce
* Also ignore mswin platformHiroshi SHIBATA2019-10-311-1/+1
|
* Ignore test_racc_command with linux platformHiroshi SHIBATA2019-10-311-1/+1
|
* Try to run assert_output_unchanged with racc testsHiroshi SHIBATA2019-10-312-25/+35
|
* Allow only one argument for keyword_init structAlan Wu2019-10-311-0/+1
| | | | | | | | | | | | | | | ``` irb(main):001:0> RUBY_VERSION => "2.6.5" irb(main):002:0> S = Struct.new(:foo, keyword_init: true) => S(keyword_init: true) irb(main):003:0> S.new({foo: 23424}, 234) # I don't think this is intentional => #<struct S foo=23424> irb(main):004:0> ``` Tightening this up should inform users when they are confused about whether a struct is `keyword_init`.
* Regenerate the output results for test fixtures of raccHiroshi SHIBATA2019-10-3029-2556/+2556
|
* Fix tests for CVE-2018-6914Nobuyoshi Nakada2019-10-292-48/+45
| | | | | | | | | Since the current working directory is not involved in `Tempfile` and `Dir.mktmpdir` (except for the last resort), it is incorrect to derive the traversal path from it. Also, since the rubyspec temporary directory is created under the build directory, this is not involved in the target method. Fixed sporadic errors in test-spec.
* test/rubygems/test_gem.rb: early failure when there is /tmp/GemfileYusuke Endoh2019-10-291-0/+4
| | | | | | | | | | | | | | | Some test cases in rubygems assume that /tmp/Gemfile does not exist. If it does, they fail with very difficult-to-understand message: ``` [ 149/2108] TestGemBundlerVersionFinder#test_bundler_version_with_bundle_update_bundler = 0.00 1) Failure: TestGemBundlerVersionFinder#test_bundler_version_with_bundle_update_bundler [/home/mame/work/ruby/test/rubygems/test_gem_bundler_version_finder.rb:38]: Expected Gem::Version.new("2.0.2") to be nil. ``` I spent one hour to debug this issue. To prevent the same accident, this change makes the test suite stop when /tmp/Gemfile explicitly.
* Revert "Revert "[ruby/rdoc] Use omit of test-unit instead of skip of minitest""Yusuke Endoh2019-10-297-13/+13
| | | | | | This reverts commit ca5812fe4516a10cc687281f9e47e1a08449f1ab. Now tool/lib/minitest provides "omit", so it should work.
* Revert "[ruby/rdoc] Use omit of test-unit instead of skip of minitest"Yusuke Endoh2019-10-297-13/+13
| | | | | | This reverts commit b4da6fc1c277190bbd10e795ebf3be45772038e8. `make test-all` uses minitest, which led to "undefined method `omit'"
* [ruby/rdoc] Use Dir.glob to convert short path of Dir.tmpdir to long pathaycabta2019-10-291-0/+8
| | | | https://github.com/ruby/rdoc/commit/ba16e44572
* [ruby/rdoc] Support different drive latters in include pathsaycabta2019-10-291-2/+8
| | | | https://github.com/ruby/rdoc/commit/946d2592e2
* [ruby/rdoc] Use omit of test-unit instead of skip of minitestaycabta2019-10-297-13/+13
| | | | https://github.com/ruby/rdoc/commit/1c5bf2ae1d
* Restore `in_kwarg` flag properlyNobuyoshi Nakada2019-10-291-0/+1
|
* fix bug in keyword + protected combination卜部昌平2019-10-281-0/+16
| | | | Test included for the situation formerly was not working.
* Make `(#methodname)` a linkNobuyoshi Nakada2019-10-261-0/+2
|
* Raise on end-exclusive ranges [Feature #14784]Nobuyoshi Nakada2019-10-261-6/+6
| | | | | Raises an error on end-exclusive ranges unless endless, regardless the receiver.
* [ruby/forwardable] Fix NoMethodError on ruby 2.4 or earlierKazuhiro NISHIYAMA2019-10-261-1/+1
| | | | | | | | | https://github.com/ruby/forwardable/runs/242918994#step:5:12 ``` Error: test_obj_single_delegators_send_id(TestForwardable): NoMethodError: private method `attr_reader' called for #<Class:#<Object:0x00005605af501f58>> ``` https://github.com/ruby/forwardable/commit/711bbb2466
* [ruby/forwardable] Make def_{instance,single}_delegators skip :__send__ and ↵Jeremy Evans2019-10-261-0/+24
| | | | | | | | | | | :__id__ Previously, __send__ and __id__ were skipped if provided as strings, but not skipped if provided as symbols. Fixes Ruby Bug 8855. https://github.com/ruby/forwardable/commit/2e61c8c66c
* [ruby/dbm] Remove taint supportJeremy Evans2019-10-261-1/+0
| | | | | | | | Ruby 2.7 deprecates taint and it no longer has an effect. The lack of taint support should not cause a problem in previous Ruby versions. https://github.com/ruby/dbm/commit/1f0ff0bce1
* Fixed range argument condition [Feature #14784]Nobuyoshi Nakada2019-10-251-7/+14
| | | | | Allows a beginless/endless range, and an end-exclusive range unless the receiver is smaller than its end.
* skip tests that do not work on GC.stress卜部昌平2019-10-251-0/+9
| | | | | These tests rely on GC.stat and GC.last_gc_info, which are not stable when GC.stress is true. Skip them for that case.
* Handle case where ruby2_keywords method splats to ruby2_keywords methodJeremy Evans2019-10-241-0/+26
| | | | | | Previously, the keyword hash was duped (which results in a regular hash), but the dup was not marked as a keyword hash, causing the hash not to be marked as keyword hash even though it should be.
* retry tailcall optimization (#2529)wanabe2019-10-251-0/+15
| | | Sorry, f62f90367fc3bce6714e7c34cbd040e14e43fe07 is push miss.
* Duplicate hash when converting keyword hash to keywordsJeremy Evans2019-10-241-0/+8
| | | | | | | This mirrors the behavior when manually splatting a hash. This mirrors the changes made in setup_parameters_complex in 6081ddd6e6f2297862b3c7e898d28a76b8f9240b, so that splatting to a non-iseq method works the same as splatting to an iseq method.
* Fix typo causing Date.new(year, month) to failJeremy Evans2019-10-241-0/+4
| | | | Add a test for this case.
* Define arguments forwarding as `ruby2_keywords` styleNobuyoshi Nakada2019-10-251-4/+14
| | | | | | | | | | | | Get rid of these redundant and useless warnings. ``` $ ruby -e 'def bar(a) a; end; def foo(...) bar(...) end; foo({})' -e:1: warning: The last argument is used as the keyword parameter -e:1: warning: for `foo' defined here -e:1: warning: The keyword argument is passed as the last hash parameter -e:1: warning: for `bar' defined here ```