1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/ruby
John Hawthorn 70b60d24b9 Fix inconsistency with opt_aref_with
opt_aref_with is an optimized instruction for accessing a Hash using a
non-frozen string key (ie. from a file without frozen_string_literal).
It attempts to avoid allocating the string, and instead silently using a
frozen string (hash string keys are always fstrings).

Because this is just an optimization, it should be invisible to the
user. However, previously this optimization was could be seen via hashes
with default procs.

For example, previously:

    h = Hash.new { |h, k| k.frozen? }
    str = "foo"
    h[str]   # false
    h["foo"] # true when optimizations enabled

This commit checks that the Hash doesn't have a default proc when using
opt_aref_with.
2022-08-04 14:48:47 -07:00
..
enc Avoid defining the same test class in multiple files 2022-04-22 15:00:16 -07:00
allpairs.rb
beginmainend.rb
bug-11928.rb
bug-13526.rb
lbtest.rb
marshaltestlib.rb [WIP] add error_squiggle gem 2021-06-29 23:45:49 +09:00
sentence.rb
test_alias.rb Fix visibility of alias of zsuper methods 2022-03-10 08:35:26 -08:00
test_argf.rb [Bug #18892] Reset ARGF.lineno after reading shebang 2022-07-07 11:33:07 +09:00
test_arithmetic_sequence.rb
test_arity.rb Make a dedecated assertion to clarify failed assertions 2022-03-19 14:33:04 +09:00
test_array.rb Add missing write barriers to Array#replace 2022-04-28 11:31:22 -04:00
test_assignment.rb test/ruby/test_assignment.rb: Prevent a warning 2022-01-19 13:15:37 +09:00
test_ast.rb Prevent a warning "possibly useless use of a literal in void context" 2022-06-20 19:25:11 +09:00
test_autoload.rb Prevent a warning "Expected ... to define AutoloadTest but it didn't" 2022-06-20 17:39:58 +09:00
test_backtrace.rb Add Thread.each_caller_location 2022-02-17 08:54:07 -08:00
test_basicinstructions.rb
test_beginendblock.rb
test_bignum.rb Fix the condition when a new buffer is needed without GMP 2022-06-02 10:29:53 +09:00
test_call.rb
test_case.rb Avoid improper optimization of case statements mixed integer/rational/complex 2021-05-12 19:30:05 -07:00
test_class.rb Remove Class#descendants 2021-12-20 11:02:15 -08:00
test_clone.rb Adding more clone tests, and adding dup tests 2022-06-16 08:48:08 -07:00
test_comparable.rb
test_complex.rb
test_complex2.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_complexrational.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_condition.rb
test_const.rb
test_continuation.rb
test_default_gems.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_defined.rb
test_dir.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_dir_m17n.rb
test_dup.rb Adding more clone tests, and adding dup tests 2022-06-16 08:48:08 -07:00
test_econv.rb
test_encoding.rb
test_enum.rb Raise ArgumentError when calling Enumberable#inject without block or arguments 2022-03-23 07:55:49 -07:00
test_enumerator.rb Implement Enumerator::Product and Enumerator.product [Feature #18685] 2022-07-30 20:05:14 +09:00
test_env.rb [Bug #17767] Now ENV.clone raises TypeError as well as ENV.dup 2022-08-02 16:40:12 +09:00
test_eval.rb Lazily create singletons on instance_{exec,eval} (#5146) 2021-12-02 15:53:39 -08:00
test_exception.rb Revert "error.c: Let Exception#inspect inspect its message" 2022-06-07 11:52:44 +09:00
test_fiber.rb rb_fiber_terminate must not return [Bug #18497] 2022-01-19 19:57:16 +09:00
test_file.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_file_exhaustive.rb Skip failing test on FreeBSD [ci skip] 2022-06-17 14:37:15 +09:00
test_fixnum.rb
test_flip.rb
test_float.rb Fix dtoa buffer overrun 2022-04-12 21:30:49 +09:00
test_fnmatch.rb
test_frozen.rb Added tests for setting ivars on frozen objs 2022-06-16 08:48:08 -07:00
test_frozen_error.rb
test_gc.rb Add key force_major_gc_count to GC.stat_heap 2022-06-08 10:03:00 -04:00
test_gc_compact.rb Implement Objects on VWA 2022-07-15 09:21:07 -04:00
test_hash.rb Fix inconsistency with opt_aref_with 2022-08-04 14:48:47 -07:00
test_ifunless.rb
test_inlinecache.rb Avoid defining the same test class in multiple files 2022-04-22 15:00:16 -07:00
test_insns_leaf.rb [Bug #17880] Set leaf false on opt_setinlinecache (#4565) 2021-06-14 17:34:57 -07:00
test_integer.rb Don't call + and < in Integer.times for !FIXNUM 2021-12-01 16:21:50 -08:00
test_integer_comb.rb
test_io.rb Skip randomly failing tests with FreeBSD 12 2022-07-28 19:45:15 +09:00
test_io_buffer.rb Fix the order of assert_eqaul and remove unused variables 2022-05-10 10:15:27 +09:00
test_io_m17n.rb [Bug #18898] Fallback invalid external encoding to the default 2022-07-06 18:08:31 +09:00
test_iseq.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_iterator.rb
test_key_error.rb
test_keyword.rb test/ruby/test_keyword.rb: Prevent warning: assigned but unused variable 2022-04-11 10:05:16 +09:00
test_lambda.rb
test_lazy_enumerator.rb Fix lazy enumerator with index size 2021-05-27 14:17:32 -07:00
test_literal.rb Use to_s and puts in tests 2021-12-16 15:12:12 +09:00
test_m17n.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_m17n_comb.rb
test_marshal.rb test/ruby/test_marshal.rb: Prevent "assigned but unused variable" warning 2021-10-25 20:43:42 +09:00
test_math.rb Add domain check macros 2021-07-04 22:15:59 +09:00
test_memory_view.rb
test_metaclass.rb
test_method.rb Make define_singleton_method always define a public method 2022-03-29 12:10:13 -07:00
test_method_cache.rb
test_mixed_unicode_escapes.rb
test_mjit.rb Implement Objects on VWA 2022-07-15 09:21:07 -04:00
test_mjit_debug.rb Rename test_jit to test_mjit 2022-05-20 21:32:55 -07:00
test_module.rb Do not have class/module keywords look up ancestors of Object 2022-07-21 08:28:05 -07:00
test_name_error.rb Prevent "warning: ambiguity between regexp and two divisions" 2021-06-30 13:41:18 +09:00
test_nomethod_error.rb [WIP] add error_squiggle gem 2021-06-29 23:45:49 +09:00
test_not.rb
test_numeric.rb Use Rational for Float#round with ndigits > 14 2021-08-06 15:03:51 -07:00
test_object.rb [WIP] add error_squiggle gem 2021-06-29 23:45:49 +09:00
test_objectspace.rb Ensure _id2ref finds symbols with the correct type 2022-07-20 10:38:44 -07:00
test_optimization.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_pack.rb Add a test for bug 18343 2021-11-16 19:28:45 -08:00
test_parse.rb [Bug #18890] Suppress warnings and fix the message 2022-07-08 11:31:51 +09:00
test_path.rb
test_pattern_matching.rb [Bug #18890] Suppress warnings and fix the message 2022-07-08 11:31:51 +09:00
test_pipe.rb
test_primitive.rb
test_proc.rb Raise RuntimeError if Kernel#binding is called from a non-Ruby frame 2022-04-06 19:14:03 -07:00
test_process.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_rand.rb Remove deprecated Random::DEFAULT [Feature #17351] 2022-01-01 18:55:52 +09:00
test_random_formatter.rb [ruby/securerandom] Use String#unpack1 2021-12-14 11:59:22 +09:00
test_range.rb Fix Range#cover? returning true for beginless ranges of different types 2022-06-06 09:59:22 -07:00
test_rational.rb test_cdhash: refactor change class 2021-05-12 10:30:46 +09:00
test_rational2.rb
test_readpartial.rb
test_refinement.rb Allow calling protected methods from refinements 2022-06-16 13:24:48 -07:00
test_regexp.rb [Feature #18788] Support options as String to Regexp.new 2022-06-20 19:35:12 +09:00
test_require.rb Skip failing test with freebsd 2022-05-31 11:40:38 +09:00
test_require_lib.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_rubyoptions.rb Match +YJIT in Ruby desc when testing segv (#6141) 2022-07-20 10:48:58 -04:00
test_rubyvm.rb Finer-grained constant cache invalidation (take 2) 2022-04-01 14:48:22 -04:00
test_rubyvm_mjit.rb Remove MJIT worker thread (#6006) 2022-06-15 09:40:54 -07:00
test_settracefunc.rb Implement Queue#pop(timeout: sec) 2022-08-02 11:04:28 +02:00
test_signal.rb Do not create core file if it is intentional abort 2022-01-19 23:17:14 +09:00
test_sleep.rb
test_sprintf.rb [Feature #18290] Remove tests that test use of rb_gc_force_recycle 2021-11-08 15:39:53 -05:00
test_sprintf_comb.rb
test_stack.rb
test_string.rb Make String#each_line work correctly with paragraph separator and chomp 2022-07-21 08:02:32 -07:00
test_stringchar.rb
test_struct.rb A positional Hash is not keyword arguments [Bug #18632] 2022-03-17 20:53:41 +09:00
test_super.rb Add tests for cme NULL crash 2021-11-17 13:20:31 -05:00
test_symbol.rb [Bug #18905] Check symbol name types more strictly 2022-07-20 00:23:38 +09:00
test_syntax.rb Do not have class/module keywords look up ancestors of Object 2022-07-21 08:28:05 -07:00
test_system.rb
test_thread.rb Skip randomly failing tests with FreeBSD 12 2022-07-28 19:45:15 +09:00
test_thread_cv.rb Reap rarely leaked threads 2021-10-14 22:57:45 +09:00
test_thread_queue.rb Harden Queue#pop timeout tests 2022-08-03 10:59:13 +02:00
test_threadgroup.rb
test_time.rb [Bug #18922] Normalize time at 24:00:00 UTC 2022-07-18 00:59:27 +09:00
test_time_tz.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_trace.rb
test_transcode.rb - add regression tests for U+6E7F (湿) in ISO-2022-JP 2021-07-01 17:33:43 +09:00
test_undef.rb Lazily create singletons on instance_{exec,eval} (#5146) 2021-12-02 15:53:39 -08:00
test_unicode_escape.rb
test_variable.rb
test_vm_dump.rb Use omit instead of skip: test/ruby/**/*.rb 2022-01-04 17:25:30 +09:00
test_weakmap.rb Weakmap failure is still pending 2022-01-16 22:43:04 +09:00
test_whileuntil.rb
test_yield.rb
test_yjit.rb YJIT: Teach getblockparamproxy to handle the no-block case without exiting (#6191) 2022-07-28 11:38:07 -04:00
test_yjit_exit_locations.rb Prevent a warning: assigned but unused variable - out 2022-06-13 10:37:26 +09:00
ut_eof.rb