|
|
@ -210,7 +210,7 @@ make_cmd(TestDir, RawLogDir, Config) -> |
|
|
|
CodeDirs = [io_lib:format("\"~s\"", [Dir]) || |
|
|
|
Dir <- [EbinDir|NonLibCodeDirs]], |
|
|
|
CodePathString = string:join(CodeDirs, " "), |
|
|
|
Cmd = case get_ct_specs(Cwd) of |
|
|
|
Cmd = case get_ct_specs(Config, Cwd) of |
|
|
|
undefined -> |
|
|
|
?FMT("~s" |
|
|
|
" -pa ~s" |
|
|
@ -260,8 +260,8 @@ build_name(Config) -> |
|
|
|
get_extra_params(Config) -> |
|
|
|
rebar_config:get_local(Config, ct_extra_params, ""). |
|
|
|
|
|
|
|
get_ct_specs(Cwd) -> |
|
|
|
case collect_glob(Cwd, ".*\.test\.spec\$") of |
|
|
|
get_ct_specs(Config, Cwd) -> |
|
|
|
case collect_glob(Config, Cwd, ".*\.test\.spec\$") of |
|
|
|
[] -> undefined; |
|
|
|
[Spec] -> |
|
|
|
" -spec " ++ Spec; |
|
|
@ -275,31 +275,38 @@ get_cover_config(Config, Cwd) -> |
|
|
|
false -> |
|
|
|
""; |
|
|
|
true -> |
|
|
|
case collect_glob(Cwd, ".*cover\.spec\$") of |
|
|
|
case collect_glob(Config, Cwd, ".*cover\.spec\$") of |
|
|
|
[] -> |
|
|
|
?DEBUG("No cover spec found: ~s~n", [Cwd]), |
|
|
|
""; |
|
|
|
[Spec] -> |
|
|
|
?DEBUG("Found cover file ~w~n", [Spec]), |
|
|
|
?DEBUG("Found cover file ~s~n", [Spec]), |
|
|
|
" -cover " ++ Spec; |
|
|
|
Specs -> |
|
|
|
?ABORT("Multiple cover specs found: ~p~n", [Specs]) |
|
|
|
end |
|
|
|
end. |
|
|
|
|
|
|
|
collect_glob(Cwd, Glob) -> |
|
|
|
filelib:fold_files(Cwd, Glob, true, fun collect_files/2, []). |
|
|
|
|
|
|
|
collect_files(F, Acc) -> |
|
|
|
%% Ignore any specs under the deps/ directory. Do this pulling |
|
|
|
%% the dirname off the the F and then splitting it into a list. |
|
|
|
Parts = filename:split(filename:dirname(F)), |
|
|
|
case lists:member("deps", Parts) of |
|
|
|
true -> |
|
|
|
Acc; % There is a directory named "deps" in path |
|
|
|
false -> |
|
|
|
[F | Acc] % No "deps" directory in path |
|
|
|
end. |
|
|
|
collect_glob(Config, Cwd, Glob) -> |
|
|
|
{true, Deps} = rebar_deps:get_deps_dir(Config), |
|
|
|
CwdParts = filename:split(Cwd), |
|
|
|
filelib:fold_files(Cwd, Glob, true, fun(F, Acc) -> |
|
|
|
%% Ignore any specs under the deps/ directory. Do this pulling |
|
|
|
%% the dirname off the F and then splitting it into a list. |
|
|
|
Parts = filename:split(filename:dirname(F)), |
|
|
|
Parts2 = remove_common_prefix(Parts, CwdParts), |
|
|
|
case lists:member(Deps, Parts2) of |
|
|
|
true -> |
|
|
|
Acc; % There is a directory named "deps" in path |
|
|
|
false -> |
|
|
|
[F | Acc] % No "deps" directory in path |
|
|
|
end |
|
|
|
end, []). |
|
|
|
|
|
|
|
remove_common_prefix([H1|T1], [H1|T2]) -> |
|
|
|
remove_common_prefix(T1, T2); |
|
|
|
remove_common_prefix(L1, _) -> |
|
|
|
L1. |
|
|
|
|
|
|
|
get_ct_config_file(TestDir) -> |
|
|
|
Config = filename:join(TestDir, "test.config"), |
|
|
|