Fix spec file look up

When trying to skip spec files under deps/ directory,
ignore "deps" component which is also included in Cwd.
For example, "/home/deps/src/myapp/test/cover.spec"
contains "deps" component but should not be skipped if
Cwd is "/home/deps/src/myapp/".
This commit is contained in:
YAMAMOTO Takashi 2013-08-30 18:16:09 +09:00 committed by YAMAMOTO Takashi
parent 7fd5a2d630
commit 9713dafcb5

View file

@ -288,18 +288,24 @@ get_cover_config(Config, Cwd) ->
end. end.
collect_glob(Cwd, Glob) -> collect_glob(Cwd, Glob) ->
filelib:fold_files(Cwd, Glob, true, fun collect_files/2, []). CwdParts = filename:split(Cwd),
filelib:fold_files(Cwd, Glob, true, fun(F, Acc) ->
collect_files(F, Acc) ->
%% Ignore any specs under the deps/ directory. Do this pulling %% Ignore any specs under the deps/ directory. Do this pulling
%% the dirname off the the F and then splitting it into a list. %% the dirname off the the F and then splitting it into a list.
Parts = filename:split(filename:dirname(F)), Parts = filename:split(filename:dirname(F)),
case lists:member("deps", Parts) of Parts2 = remove_common_prefix(Parts, CwdParts),
case lists:member("deps", Parts2) of
true -> true ->
Acc; % There is a directory named "deps" in path Acc; % There is a directory named "deps" in path
false -> false ->
[F | Acc] % No "deps" directory in path [F | Acc] % No "deps" directory in path
end. end
end, []).
remove_common_prefix([H1|T1], [H1|T2]) ->
remove_common_prefix(T1, T2);
remove_common_prefix(L1, _) ->
L1.
get_ct_config_file(TestDir) -> get_ct_config_file(TestDir) ->
Config = filename:join(TestDir, "test.config"), Config = filename:join(TestDir, "test.config"),