File 2181-Use-rand-bytes-1-for-simplified-data-generation.patch of Package erlang
From 43a21905e5c6c0f89c46a1c83b1cae76828d4249 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Tue, 5 Apr 2022 12:31:00 +0200
Subject: [PATCH] Use rand:bytes/1 for simplified data generation
---
erts/emulator/test/decode_packet_SUITE.erl | 6 +-----
erts/emulator/test/distribution_SUITE.erl | 11 +----------
erts/emulator/test/driver_SUITE.erl | 2 +-
erts/emulator/test/nif_SUITE.erl | 7 +------
erts/emulator/test/random_iolist.erl | 5 +++--
lib/stdlib/test/random_iolist.erl | 2 +-
6 files changed, 8 insertions(+), 25 deletions(-)
diff --git a/erts/emulator/test/decode_packet_SUITE.erl b/erts/emulator/test/decode_packet_SUITE.erl
index bedcaf3a08..891c2ec63f 100644
--- a/erts/emulator/test/decode_packet_SUITE.erl
+++ b/erts/emulator/test/decode_packet_SUITE.erl
@@ -174,11 +174,7 @@ pack(fcgi,Bin) ->
PaddSz = rand:uniform(16) - 1,
Psz = byte_size(Bin),
Reserv = rand:uniform(256) - 1,
- Padd = case PaddSz of
- 0 -> <<>>;
- _ -> list_to_binary([rand:uniform(256)-1
- || _<- lists:seq(1,PaddSz)])
- end,
+ Padd = rand:bytes(PaddSz),
Res = <<Ver:8,Type:8,Id:16,Psz:16/big,PaddSz:8,Reserv:8,Bin/binary>>,
{<<Res/binary,Padd/binary>>, Res};
pack(tpkt,Bin) ->
diff --git a/erts/emulator/test/distribution_SUITE.erl b/erts/emulator/test/distribution_SUITE.erl
index 4538cd870d..8fc0a2afd0 100644
--- a/erts/emulator/test/distribution_SUITE.erl
+++ b/erts/emulator/test/distribution_SUITE.erl
@@ -2712,15 +2712,7 @@ mk_rand_bin_list(Bytes, Binaries) ->
mk_rand_bin_list(_Bytes, 0, Acc) ->
Acc;
mk_rand_bin_list(Bytes, Binaries, Acc) ->
- mk_rand_bin_list(Bytes, Binaries-1, [mk_rand_bin(Bytes) | Acc]).
-
-mk_rand_bin(Bytes) ->
- mk_rand_bin(Bytes, []).
-
-mk_rand_bin(0, Data) ->
- list_to_binary(Data);
-mk_rand_bin(N, Data) ->
- mk_rand_bin(N-1, [rand:uniform(256) - 1 | Data]).
+ mk_rand_bin_list(Bytes, Binaries-1, [rand:bytes(Bytes) | Acc]).
creation_selection(Config) when is_list(Config) ->
register(creation_selection_test_supervisor, self()),
diff --git a/erts/emulator/test/driver_SUITE.erl b/erts/emulator/test/driver_SUITE.erl
index 77ef4ec6a9..902b3824f0 100644
--- a/erts/emulator/test/driver_SUITE.erl
+++ b/erts/emulator/test/driver_SUITE.erl
@@ -2614,7 +2614,7 @@ make_refc_binaries(Term) ->
transform_bins(F, Term).
build_binary(Elements) ->
- list_to_binary(build_list(Elements)).
+ rand:bytes(Elements).
build_list(Elements) -> build_list(Elements, []).
diff --git a/erts/emulator/test/nif_SUITE.erl b/erts/emulator/test/nif_SUITE.erl
index 55c53d3409..cb9013fc79 100644
--- a/erts/emulator/test/nif_SUITE.erl
+++ b/erts/emulator/test/nif_SUITE.erl
@@ -3482,12 +3482,7 @@ random_sign() ->
end.
random_binary() ->
- list_to_binary(random_bytes(rand:uniform(32) - 1)).
-
-random_bytes(0) ->
- [];
-random_bytes(N) when N > 0 ->
- [rand:uniform(256) - 1 | random_bytes(N - 1)].
+ rand:bytes(rand:uniform(32) - 1).
random_pid() ->
Processes = erlang:processes(),
diff --git a/erts/emulator/test/random_iolist.erl b/erts/emulator/test/random_iolist.erl
index 555f063e0a..eb82d6a229 100644
--- a/erts/emulator/test/random_iolist.erl
+++ b/erts/emulator/test/random_iolist.erl
@@ -44,8 +44,8 @@ random_list(N,Acc) ->
random_list(N-1,[random_byte() | Acc]).
random_binary(N) ->
- B = list_to_binary(random_list(N,[])),
- case {rand:uniform(2),size(B)} of
+ B = rand:bytes(N),
+ case {rand:uniform(2),byte_size(B)} of
{2,M} when M > 1 ->
S = M-1,
<<_:3,C:S/binary,_:5>> = B,
@@ -53,6 +53,7 @@ random_binary(N) ->
_ ->
B
end.
+
random_list(N) ->
random_list(N,[]).
diff --git a/lib/stdlib/test/random_iolist.erl b/lib/stdlib/test/random_iolist.erl
index 6621c7ac77..ae81b6c727 100644
--- a/lib/stdlib/test/random_iolist.erl
+++ b/lib/stdlib/test/random_iolist.erl
@@ -40,7 +40,7 @@ random_list(N,Acc) ->
random_list(N-1,[random_byte() | Acc]).
random_binary(N) ->
- B = list_to_binary(random_list(N,[])),
+ B = rand:bytes(N),
case {rand:uniform(2),size(B)} of
{2,M} when M > 1 ->
S = M-1,
--
2.34.1