Selaa lähdekoodia

simplify hook test specification

pull/2211/head
Fred Hebert 5 vuotta sitten
vanhempi
commit
eff10143db
1 muutettua tiedostoa jossa 29 lisäystä ja 146 poistoa
  1. +29
    -146
      test/rebar_compile_SUITE.erl

+ 29
- 146
test/rebar_compile_SUITE.erl Näytä tiedosto

@ -2412,7 +2412,6 @@ split_project_apps_hooks(Config) ->
ok = file:write_file(filename:join(AppDir2, "rebar.config"),
io_lib:format("~p.~n~p.", Cfg("app2"))),
RebarConfig = Cfg("all"),
ct:pal("RebarConfig: ~p~n", [RebarConfig]),
rebar_test_utils:run_and_check(Config, RebarConfig, ["compile"],
{ok, [{app, Name1}, {app, Name2}]}),
%% Now for the big party:
@ -2429,153 +2428,37 @@ split_project_apps_hooks(Config) ->
%% - compile post hook runs for each app individually
%% - we expect app compile post-hooks to show up in order
%% - we expect whole post-hooks to run last
?assertEqual({ok, <<"pre-compile-all\n">>},
file:read_file(filename:join(HookDir, "pre-compile-all"))),
?assertEqual({ok, <<
"pre-compile-all\n"
"pre-compile-app2\n"
>>},
file:read_file(filename:join(HookDir, "pre-compile-app2"))),
?assertEqual({ok, <<
"pre-compile-all\n"
"pre-compile-app2\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "pre-erlc-app2"))),
?assertEqual({ok, <<
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "pre-compile-app1"))),
?assertEqual({ok, <<
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "pre-erlc-app1"))),
?assertEqual({ok, <<
"post-erlc-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "post-erlc-app2"))),
?assertEqual({ok, <<
"post-erlc-app2\n"
"pre-app-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "pre-app-app2"))),
?assertEqual({ok, <<
"post-app-app2\n"
"post-erlc-app2\n"
"pre-app-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "post-app-app2"))),
?assertEqual({ok, <<
"post-app-app2\n"
"post-compile-app2\n"
"post-erlc-app2\n"
"pre-app-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "post-compile-app2"))),
?assertEqual({ok, <<
"post-app-app2\n"
"post-compile-app2\n"
"post-erlc-app1\n"
"post-erlc-app2\n"
"pre-app-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "post-erlc-app1"))),
?assertEqual({ok, <<
"post-app-app2\n"
"post-compile-app2\n"
"post-erlc-app1\n"
"post-erlc-app2\n"
"pre-app-app1\n"
"pre-app-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "pre-app-app1"))),
?assertEqual({ok, <<
"post-app-app1\n"
"post-app-app2\n"
"post-compile-app2\n"
"post-erlc-app1\n"
"post-erlc-app2\n"
"pre-app-app1\n"
"pre-app-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "post-app-app1"))),
?assertEqual({ok, <<
"post-app-app1\n"
"post-app-app2\n"
"post-compile-app1\n"
"post-compile-app2\n"
"post-erlc-app1\n"
"post-erlc-app2\n"
"pre-app-app1\n"
"pre-app-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "post-compile-app1"))),
?assertEqual({ok, <<
"post-app-app1\n"
"post-app-app2\n"
"post-compile-all\n"
"post-compile-app1\n"
"post-compile-app2\n"
"post-erlc-app1\n"
"post-erlc-app2\n"
"pre-app-app1\n"
"pre-app-app2\n"
"pre-compile-all\n"
"pre-compile-app1\n"
"pre-compile-app2\n"
"pre-erlc-app1\n"
"pre-erlc-app2\n"
>>},
file:read_file(filename:join(HookDir, "post-compile-all"))),
CallOrder = [
"pre-compile-all",
"pre-compile-app2",
"pre-erlc-app2",
"pre-compile-app1",
"pre-erlc-app1",
"post-erlc-app2",
"pre-app-app2",
"post-app-app2",
"post-compile-app2",
"post-erlc-app1",
"pre-app-app1",
"post-app-app1",
"post-compile-app1",
"post-compile-all"
],
validate_call_order(CallOrder, HookDir),
ok.
validate_call_order(Calls, Dir) -> validate_call_order(Calls, Dir, []).
validate_call_order([], _, _) ->
ok;
validate_call_order([Name|T], Dir, Seen) ->
{ok, Bin} = file:read_file(filename:join(Dir, Name)),
%% weird list of tokens, but works on lexemes/tokens for backwards compat
Found = rebar_string:lexemes(binary_to_list(Bin), [$\n, $\r, "\r\n"]),
NewSeen = [Name|Seen],
?assertEqual({Name, Found}, {Name, lists:sort(NewSeen)}),
validate_call_order(T, Dir, NewSeen).
app_file_linting(Config) ->
meck:new(rebar_log, [no_link, passthrough]),
AppDir = ?config(apps, Config),

Ladataan…
Peruuta
Tallenna