-
Notifications
You must be signed in to change notification settings - Fork 194
Open
Labels
Description
The console
gem CI fails on TruffleRuby because in a :class event isn't triggered when a new class is declared in a test case.
The simplified example looks like so:
describe Console::Resolver do
it "tests TracePoint in sus" do
resolved = false
trace_point = TracePoint.new(:class) do |event|
resolved = true
end
trace_point.enable
class Foobar
end
puts "resolved -> true " + (resolved ? "[OK]" : "[FAIL]")
end
end
Expected result is:
resolved -> true [OK]
But actual is:
resolved -> true [FAIL]
If run this code as a plain Ruby script then result is expected:
resolved = false
trace_point = TracePoint.new(:class) do |event|
resolved = true
end
trace_point.enable
class Foobar
end
puts "resolved -> true " + (resolved ? "[OK]" : "[FAIL]")
The console gem CI job output:
🤔 Failed assertions:
describe Console::Resolver it triggers when class is defined test/console/resolver.rb:14
expect #<Console::Resolver:0x3238 @names={"Console::Resolver::Foobar"=>#<Proc:0x3258 test/console/resolver.rb:17>}, @trace_point=#<TracePoint:enabled>> to
be waiting?
expect #<Console::Resolver:0x3238 @names={"Console::Resolver::Foobar"=>#<Proc:0x3258 test/console/resolver.rb:17>}, @trace_point=#<TracePoint:enabled>> to not
be waiting?
✗ assertion passed /home/runner/work/console/console/vendor/bundle/truffleruby/3.1.3.23.0.0/gems/sus-0.20.3/lib/sus/assertions.rb:[18](https://github.com/socketry/console/actions/runs/5176976466/jobs/9326492884#step:4:19)3
expect false to
be == true
✗ assertion failed /home/runner/work/console/console/vendor/bundle/truffleruby/3.1.3.23.0.0/gems/sus-0.20.3/lib/sus/assertions.rb:183
https://github.com/socketry/console/actions/runs/5176976466/jobs/9326492884