Sfoglia il codice sorgente

Merge pull request #199 from tsloughter/empty_list_profile_merge

don't replace non-string list with empty list in profile merge
pull/200/head
Fred Hebert 10 anni fa
parent
commit
03f542d0dd
2 ha cambiato i file con 17 aggiunte e 2 eliminazioni
  1. +7
    -0
      src/rebar_state.erl
  2. +10
    -2
      test/rebar_profiles_SUITE.erl

+ 7
- 0
src/rebar_state.erl Vedi File

@ -204,6 +204,13 @@ apply_profiles(State=#state_t{opts=Opts, current_profiles=CurrentProfiles}, Prof
merge_opts(Profile, NewOpts, OldOpts) ->
Opts = dict:merge(fun(_Key, NewValue, OldValue) when is_list(NewValue) ->
case io_lib:printable_list(NewValue) of
true when NewValue =:= [] ->
case io_lib:printable_list(OldValue) of
true ->
NewValue;
false ->
OldValue
end;
true ->
NewValue;
false ->

+ 10
- 2
test/rebar_profiles_SUITE.erl Vedi File

@ -85,10 +85,14 @@ profile_merge_keys(Config) ->
profile_merges(_Config) ->
RebarConfig = [{test1, [{key1, 1, 2}, key2]},
{test2, "hello"},
{test3, [key3]},
{test4, "oldvalue"},
{profiles,
[{profile1,
[{test1, [{key3, 5}, key1]}]},
{profile2, [{test2, "goodbye"}]}]}],
{profile2, [{test2, "goodbye"},
{test3, []},
{test4, []}]}]}],
State = rebar_state:new(RebarConfig),
State1 = rebar_state:apply_profiles(State, [profile1, profile2]),
@ -97,4 +101,8 @@ profile_merges(_Config) ->
lists:sort(rebar_state:get(State1, test1))),
%% Use new value for strings
"goodbye" = rebar_state:get(State1, test2).
"goodbye" = rebar_state:get(State1, test2),
%% Check that a newvalue of []/"" doesn't override non-string oldvalues
[key3] = rebar_state:get(State1, test3),
[] = rebar_state:get(State1, test4).

Caricamento…
Annulla
Salva