Skip to content

Commit 492e943

Browse files
authored
YJIT: Fix assert_no_exits (#8579)
1 parent e6d7300 commit 492e943

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

test/ruby/test_yjit.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,7 +1153,7 @@ def foo
11531153
end
11541154

11551155
def test_invalidate_cyclic_branch
1156-
assert_compiles(<<~'RUBY', result: 2)
1156+
assert_compiles(<<~'RUBY', result: 2, exits: { opt_plus: 1 })
11571157
def foo
11581158
i = 0
11591159
while i < 2
@@ -1171,7 +1171,7 @@ def +(x) = self - -x
11711171
end
11721172

11731173
def test_tracing_str_uplus
1174-
assert_compiles(<<~RUBY, frozen_string_literal: true, result: :ok)
1174+
assert_compiles(<<~RUBY, frozen_string_literal: true, result: :ok, exits: { putspecialobject: 1, definemethod: 1 })
11751175
def str_uplus
11761176
_ = 1
11771177
_ = 2
@@ -1216,7 +1216,7 @@ def test(str)
12161216

12171217
def test_return_to_invalidated_block
12181218
# [Bug #19463]
1219-
assert_compiles(<<~RUBY, result: [1, 1, :ugokanai])
1219+
assert_compiles(<<~RUBY, result: [1, 1, :ugokanai], exits: { definesmethod: 1, getlocal_WC_0: 1 })
12201220
klass = Class.new do
12211221
def self.lookup(hash, key) = hash[key]
12221222
@@ -1257,7 +1257,7 @@ def freeze = :ugokanai
12571257

12581258
def test_setivar_on_class
12591259
# Bug in https://github.com/ruby/ruby/pull/8152
1260-
assert_compiles(<<~RUBY, result: :ok)
1260+
assert_compiles(<<~RUBY, result: :ok, exits: { opt_getconstant_path: 2 })
12611261
class Base
12621262
def self.or_equal
12631263
@or_equal ||= Object.new
@@ -1280,7 +1280,7 @@ class Child < Base
12801280

12811281
def test_nested_send
12821282
#[Bug #19464]
1283-
assert_compiles(<<~RUBY, result: [:ok, :ok])
1283+
assert_compiles(<<~RUBY, result: [:ok, :ok], exits: { opt_getconstant_path: 1, defineclass: 1 })
12841284
klass = Class.new do
12851285
class << self
12861286
alias_method :my_send, :send
@@ -1318,7 +1318,7 @@ def foo(a, b, h)
13181318
end
13191319

13201320
def test_io_reopen_clobbering_singleton_class
1321-
assert_compiles(<<~RUBY, result: [:ok, :ok])
1321+
assert_compiles(<<~RUBY, result: [:ok, :ok], exits: { definesmethod: 1, opt_eq: 2 })
13221322
def $stderr.to_i = :i
13231323
13241324
def test = $stderr.to_i
@@ -1434,7 +1434,7 @@ def collect_insns(iseq)
14341434
# barriers, cache misses.)
14351435
if exits != :any &&
14361436
exits != recorded_exits &&
1437-
!exits.all? { |k, v| v === recorded_exits[k] } # triple-equal checks range membership or integer equality
1437+
(exits.keys != recorded_exits.keys || !exits.all? { |k, v| v === recorded_exits[k] }) # triple-equal checks range membership or integer equality
14381438
flunk "Expected #{exits.empty? ? "no" : exits.inspect} exits" \
14391439
", but got\n#{recorded_exits.inspect}"
14401440
end

0 commit comments

Comments
 (0)