diff options
author | YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp> | 2013-08-30 18:16:09 +0900 |
---|---|---|
committer | YAMAMOTO Takashi <yamt@netbsd.org> | 2014-05-30 14:37:37 +0900 |
commit | 9713dafcb509eb39e9dddd8bba2d9591c77e7455 (patch) | |
tree | 405450015e7b73b403d1286ef6dd0365fed2ea76 | |
parent | 7fd5a2d630ab196702222e7b51bd32a55dad210c (diff) |
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/".
-rw-r--r-- | src/rebar_ct.erl | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/rebar_ct.erl b/src/rebar_ct.erl index 91cd1c3..b96bb99 100644 --- a/src/rebar_ct.erl +++ b/src/rebar_ct.erl @@ -288,18 +288,24 @@ get_cover_config(Config, Cwd) -> 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. + 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 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"), |