Projects
openEuler:Mainline
erlang-rebar
_service:tar_scm:rebar-0013-Remove-compat-rando...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:rebar-0013-Remove-compat-random-modules.patch of Package erlang-rebar
From: Peter Lemenkov <lemenkov@gmail.com> Date: Thu, 7 Nov 2019 16:02:20 +0100 Subject: [PATCH] Remove compat random modules Signed-off-by: Peter Lemenkov <lemenkov@gmail.com> diff --git a/ebin/rebar.app b/ebin/rebar.app index e22ad72..f1477e9 100644 --- a/ebin/rebar.app +++ b/ebin/rebar.app @@ -42,8 +42,7 @@ rebar_utils, rebar_xref, rebar_metacmds, - rmemo, - rebar_rand_compat ]}, + rmemo ]}, {registered, []}, {applications, [ diff --git a/rebar.config b/rebar.config index 7d0870e..6fa4f27 100644 --- a/rebar.config +++ b/rebar.config @@ -29,9 +29,7 @@ - (\"diameter_codegen\":\"from_dict\"/\"4\") - (\"diameter_dict_util\":\"format_error\"/\"1\") - (\"diameter_dict_util\":\"parse\"/\"2\") - - (\"erlang\":\"timestamp\"/\"0\") - - (\"rebar_rnd\":\"seed\"/\"1\") - - (\"rebar_rnd\":\"uniform\"/\"0\"))", + - (\"erlang\":\"timestamp\"/\"0\"))", []}]}. {dialyzer, diff --git a/src/rebar.erl b/src/rebar.erl index 91593c2..488be2c 100644 --- a/src/rebar.erl +++ b/src/rebar.erl @@ -220,9 +220,6 @@ run_aux(BaseConfig, Commands) -> {error, {already_started, _}} -> ok end, - %% Make sure rebar_rnd module is generated, compiled, and loaded - {ok, rebar_rnd} = rebar_rand_compat:init("rebar_rnd"), - %% Convert command strings to atoms CommandAtoms = [list_to_atom(C) || C <- Commands], diff --git a/src/rebar_eunit.erl b/src/rebar_eunit.erl index 5606e14..c78a112 100644 --- a/src/rebar_eunit.erl +++ b/src/rebar_eunit.erl @@ -291,9 +291,9 @@ randomize_suites(Config, Modules) -> end. randomize_suites1(Modules, Seed) -> - _ = rebar_rnd:seed({35, Seed, 1337}), + _ = rand:seed(exsplus, {35, Seed, 1337}), ?CONSOLE("Randomizing suite order with seed ~b~n", [Seed]), - [X||{_,X} <- lists:sort([{rebar_rnd:uniform(), M} || M <- Modules])]. + [X||{_,X} <- lists:sort([{rand:uniform(), M} || M <- Modules])]. %% %% == get matching tests == diff --git a/src/rebar_rand_compat.erl b/src/rebar_rand_compat.erl deleted file mode 100644 index 849ee35..0000000 --- a/src/rebar_rand_compat.erl +++ /dev/null @@ -1,178 +0,0 @@ -%%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*- -%%% ex: ts=4 sw=4 et -%%% -%%% Copyright (c) 2016 Tuncer Ayaz -%%% -%%% Permission to use, copy, modify, and/or distribute this software -%%% for any purpose with or without fee is hereby granted, provided -%%% that the above copyright notice and this permission notice appear -%%% in all copies. -%%% -%%% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -%%% WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -%%% WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE -%%% AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -%%% CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -%%% LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -%%% NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -%%% CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - --module(rebar_rand_compat). - -%% API --export([ init/0 - , init/1 - ]). - --define(DEFAULT_MODNAME, "rnd"). - -%%%=================================================================== -%%% API -%%%=================================================================== - -%%-------------------------------------------------------------------- -%% @doc -%% Generate, compile and load rnd module. -%% @end -%%-------------------------------------------------------------------- --spec init() -> {'ok', module()}. -init() -> - init(?DEFAULT_MODNAME). - -%%-------------------------------------------------------------------- -%% @doc -%% Generate, compile and load ModName module. -%% @end -%%-------------------------------------------------------------------- --spec init(string()) -> {'ok', module()}. -init(ModName) -> - %% First, select the right module, then generate the appropriate code as a - %% string, and finally compile and load it as ModName. - Src = select(ModName), - {ok, Mod, Bin, []} = compile(Src), - {module, Mod} = code:load_binary(Mod, ModName++".erl", Bin), - {ok, Mod}. - -%%%=================================================================== -%%% Internal functions -%%%=================================================================== - -%% Select right rand module and return wrapper module's source as string --spec select(string()) -> string(). -select(ModName) -> - case code:which(rand) of - non_existing -> - src(ModName, fun funs_random/0); - _ -> - src(ModName, fun funs_rand/0) - end. - -%% Return module's implementation as a string. --spec src(string(), fun(() -> binary())) -> string(). -src(ModName, GenFuns) -> - lists:flatten( - io_lib:format( - <<" --module(~s). --export([ seed/0 - , seed/1 - , uniform/0 - , uniform/1 - , uniform_s/1 - , uniform_s/2 - ]). - -%% Functions -~s -">> -, [ModName, GenFuns()])). - -%% random.beam wrapper -funs_random() -> - <<" -seed() -> random:seed(). -seed(Exp) -> random:seed(Exp). -uniform() -> random:uniform(). -uniform(N) -> random:uniform(N). -uniform_s(St) -> random:uniform_s(St). -uniform_s(N, St) -> random:uniform_s(N, St). -">>. - -%% rand.beam wrapper -funs_rand() -> - <<" -seed() -> rand:seed(exsplus). -seed(Exp) -> rand:seed(exsplus, Exp). -uniform() -> rand:uniform(). -uniform(N) -> rand:uniform(N). -uniform_s(St) -> rand:uniform_s(St). -uniform_s(N, St) -> rand:uniform_s(N, St). -">>. - -compile(String) -> - Forms = convert(String ++ eof, []), - compile:forms(Forms, [return]). - -%% Parse string into forms for compiler. -convert({done, {eof, _EndLocation}, _LeftOverChars}, Acc)-> - %% Finished - lists:reverse(Acc); -convert({done, {error, ErrorInfo, _EndLocation}, _LeftOverChars}, _Acc)-> - ErrorInfo; -convert({done, {ok, Tokens, _EndLocation}, LeftOverChars}, Acc)-> - case erl_parse:parse_form(Tokens) of - {ok, AbsForm} -> - convert(LeftOverChars, [AbsForm|Acc]); - {error, AbsForm} -> - convert(LeftOverChars, AbsForm) - end; -convert({more, Continuation}, Acc)-> - convert(erl_scan:tokens(Continuation, [], 1), Acc); -convert(String, Acc) -> - convert(erl_scan:tokens([], String, 1), Acc). - -%%%=================================================================== -%%% Tests -%%%=================================================================== - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - -init_test() -> - DefMod = list_to_atom(?DEFAULT_MODNAME), - ok = unload(DefMod), - ?assertMatch(false, code:is_loaded(DefMod)), - ?assertMatch({ok, DefMod}, init()), - ?assertMatch({file, _}, code:is_loaded(DefMod)), - check_api(DefMod), - CustomMod = foornd, - CustomName = "foornd", - ok = unload(CustomMod), - ?assertMatch(false, code:is_loaded(CustomMod)), - ?assertMatch({ok, CustomMod}, init(CustomName)), - ?assertMatch({file, _}, code:is_loaded(CustomMod)), - check_api(CustomMod). - -unload(Mod) -> - case code:is_loaded(Mod) of - false -> - ok; - {file, _} -> - code:delete(Mod), - code:purge(Mod), - ok - end. - -check_api(Mod) -> - Exports = [ {seed, 0} - , {seed, 1} - , {uniform, 0} - , {uniform, 1} - , {uniform_s, 1} - , {uniform_s, 2} - , {module_info, 0} - , {module_info, 1} - ], - ?assertMatch(Exports, Mod:module_info(exports)). - --endif.
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2