Skip to content

Commit deb06d8

Browse files
committed
Update to ruby 3.4 backtrace changes
1 parent b4762f7 commit deb06d8

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

test/test_helper.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,15 @@ def assert_raises_on_line(exp, line, msg = nil, &block)
4343
ex = assert_raises(exp, &block)
4444
assert_equal(msg, ex.message) if msg
4545

46-
idx = ex.backtrace.find_index { |bt| /:in `assert_raises_on_line'$/ =~ bt }
46+
line_num_regex = /(.*):(\d+)(:in.*)$/
4747

48-
line_num_regex = /.*:(\d+)(:.*|$)/
49-
err_line = line_num_regex.match(ex.backtrace[0])[1].to_i
50-
ref_line = line_num_regex.match(ex.backtrace[idx + 2])[1].to_i
48+
filename = line_num_regex.match(ex.backtrace[0])[1]
49+
50+
filtered = ex.backtrace.grep(/^#{Regexp.escape(filename)}/)
51+
top = filtered.grep(Regexp.new(Regexp.escape("in <top (required)>")))
52+
53+
err_line = line_num_regex.match(filtered[0])[2].to_i
54+
ref_line = line_num_regex.match(top[0])[2].to_i - 1
5155

5256
assert_equal((err_line - ref_line), line)
5357
end

0 commit comments

Comments
 (0)