aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-12-07 11:40:38 +0100
committerBjörn Gustavsson <[email protected]>2015-12-07 11:40:38 +0100
commit2b73b1cee4571227bd56e6b661daa6907396ce77 (patch)
tree3e078c40d849c84015ae678c3254dc047a129073 /lib
parentf258633921e7dd0bd5760281d2a26a0f937e53c4 (diff)
parent807f0c8904be14c9088ebc41ade885ffac142b34 (diff)
downloadotp-2b73b1cee4571227bd56e6b661daa6907396ce77.tar.gz
otp-2b73b1cee4571227bd56e6b661daa6907396ce77.tar.bz2
otp-2b73b1cee4571227bd56e6b661daa6907396ce77.zip
Merge branch 'bjorn/stdlib/rand-export_seed/OTP-13162' into maint
* bjorn/stdlib/rand-export_seed/OTP-13162: Correct rand:export_seed/0 when there is no prior seed
Diffstat (limited to 'lib')
-rw-r--r--lib/stdlib/src/rand.erl2
-rw-r--r--lib/stdlib/test/rand_SUITE.erl3
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/stdlib/src/rand.erl b/lib/stdlib/src/rand.erl
index 8e8d0bc801..dc060e82d9 100644
--- a/lib/stdlib/src/rand.erl
+++ b/lib/stdlib/src/rand.erl
@@ -63,7 +63,7 @@
%% Return algorithm and seed so that RNG state can be recreated with seed/1
-spec export_seed() -> undefined | export_state().
export_seed() ->
- case seed_get() of
+ case get(?SEED_DICT) of
{#{type:=Alg}, Seed} -> {Alg, Seed};
_ -> undefined
end.
diff --git a/lib/stdlib/test/rand_SUITE.erl b/lib/stdlib/test/rand_SUITE.erl
index 111bf620de..03b5ce1a25 100644
--- a/lib/stdlib/test/rand_SUITE.erl
+++ b/lib/stdlib/test/rand_SUITE.erl
@@ -126,6 +126,9 @@ seed_1(Alg) ->
false = (S1 =:= rand:seed_s(Alg)),
%% Negative integers works
_ = rand:seed_s(Alg, {-1,-1,-1}),
+ %% Check that export_seed/1 returns 'undefined' if there is no seed
+ erase(rand_seed),
+ undefined = rand:export_seed(),
%% Other term do not work
{'EXIT', _} = (catch rand:seed_s(foobar, os:timestamp())),