Add tests for `$LOAD_PATH.dup` and `Ractor.make_shareable`
This commit is contained in:
parent
31cd669855
commit
9bf5f12f33
|
@ -1,5 +1,7 @@
|
||||||
# Unreleased
|
# Unreleased
|
||||||
|
|
||||||
|
* Ensure `$LOAD_PATH.dup` is Ractor shareable to fix an conflit with `did_you_mean`.
|
||||||
|
* Allow to ignore direcotries using absolute paths.
|
||||||
* Support YAML and JSON CompileCache on TruffleRuby.
|
* Support YAML and JSON CompileCache on TruffleRuby.
|
||||||
* Support LoadPathCache on TruffleRuby.
|
* Support LoadPathCache on TruffleRuby.
|
||||||
|
|
||||||
|
|
|
@ -56,16 +56,10 @@ module Bootsnap
|
||||||
end
|
end
|
||||||
|
|
||||||
def dup
|
def dup
|
||||||
new_obj = super
|
[] + self
|
||||||
new_obj.remove_instance_variable(:@lpc_observer)
|
|
||||||
new_obj
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def clone
|
alias_method :clone, :dup
|
||||||
new_obj = super
|
|
||||||
ChangeObserver.unregister(new_obj)
|
|
||||||
new_obj
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.register(arr, observer)
|
def self.register(arr, observer)
|
||||||
|
|
|
@ -10,6 +10,7 @@ module Bootsnap
|
||||||
def setup
|
def setup
|
||||||
super
|
super
|
||||||
@observer = Object.new
|
@observer = Object.new
|
||||||
|
@observer.instance_variable_set(:@mutex, Mutex.new)
|
||||||
@arr = []
|
@arr = []
|
||||||
ChangeObserver.register(@arr, @observer)
|
ChangeObserver.register(@arr, @observer)
|
||||||
end
|
end
|
||||||
|
@ -78,6 +79,20 @@ module Bootsnap
|
||||||
assert_equal(%w(a), @arr)
|
assert_equal(%w(a), @arr)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_dup_returns_ractor_shareable_instance
|
||||||
|
return unless defined?(Ractor)
|
||||||
|
|
||||||
|
ChangeObserver.register(@arr, @observer)
|
||||||
|
Ractor.make_shareable(@arr.dup.freeze)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_clone_returns_ractor_shareable_instance
|
||||||
|
return unless defined?(Ractor)
|
||||||
|
|
||||||
|
ChangeObserver.register(@arr, @observer)
|
||||||
|
Ractor.make_shareable(@arr.clone.freeze)
|
||||||
|
end
|
||||||
|
|
||||||
def test_uniq_without_block
|
def test_uniq_without_block
|
||||||
@observer.expects(:reinitialize).never
|
@observer.expects(:reinitialize).never
|
||||||
@arr.uniq!
|
@arr.uniq!
|
||||||
|
|
Loading…
Reference in New Issue