mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00

Random generators are not Ractor-safe, so we need to prepare per-ractor default random genearators. This patch set `Random::DEFAULT = Randm` (not a Random instance, but the Random class) and singleton methods like `Random.rand()` use a per-ractor random generator. [Feature #17322]
26 lines
656 B
Ruby
26 lines
656 B
Ruby
require_relative '../../spec_helper'
|
|
|
|
describe "Random::DEFAULT" do
|
|
|
|
it "returns a random number generator" do
|
|
Random::DEFAULT.should respond_to(:rand)
|
|
end
|
|
|
|
ruby_version_is ''...'3.0' do
|
|
it "returns a Random instance" do
|
|
Random::DEFAULT.should be_an_instance_of(Random)
|
|
end
|
|
end
|
|
|
|
ruby_version_is '3.0' do
|
|
it "returns a Random instance" do
|
|
Random::DEFAULT.should be_an_instance_of(Class)
|
|
end
|
|
end
|
|
|
|
it "changes seed on reboot" do
|
|
seed1 = ruby_exe('p Random::DEFAULT.seed', options: '--disable-gems')
|
|
seed2 = ruby_exe('p Random::DEFAULT.seed', options: '--disable-gems')
|
|
seed1.should != seed2
|
|
end
|
|
end
|