Просмотр исходного кода

Add a number of test-cases for mad_deps module

Sina Samavati 11 лет назад
Родитель
Сommit
8de097203e
4 измененных файлов с 32 добавлено и 36 удалено
  1. 1 1
      Makefile
  2. 1 1
      src/mad.hrl
  3. 11 32
      src/mad_deps.erl
  4. 19 2
      test/mad_deps_SUITE.erl

+ 1 - 1
Makefile

@@ -1,5 +1,5 @@
 PROJECT = mad
-CT_SUITES = mad_utils
+CT_SUITES = mad_utils mad_deps
 
 .PHONY: all build
 

+ 1 - 1
src/mad.hrl

@@ -1,2 +1,2 @@
--define(DEPS_PATH, filename:join([mad_utils:home(), ".mad", "deps"])).
+-define(CONTAINER_PATH, filename:join([mad_utils:home(), ".mad", "container"])).
 -define(COMPILE_OPTS(Inc, Ebin), [report, {i, Inc}, {outdir, Ebin}]).

+ 11 - 32
src/mad_deps.erl

@@ -1,18 +1,21 @@
 -module(mad_deps).
 
--export([path/0]).
+-export([container/0]).
 -export([path/1]).
 -export([clone/1]).
--export([paths/1]).
--export([ebins/1]).
 -export([name_and_repo/1]).
 -export([checkout_to/1]).
 
 -include("mad.hrl").
 
 
-path() ->
-    ?DEPS_PATH.
+container() ->
+    %% ~/.mad/container
+    ?CONTAINER_PATH.
+
+path(X) ->
+    %% ~/.mad/container/X
+    filename:join(?CONTAINER_PATH, X).
 
 clone([]) ->
     ok;
@@ -61,36 +64,12 @@ build_dep(Name, Cmd, Co) ->
     mad_utils:exec(Cmd, ["checkout", Co]),
     ok = file:set_cwd(Cwd).
 
-paths(Deps) ->
-    paths(Deps, []).
-
-paths([], Acc) ->
-    Acc;
-paths([H|T], Acc) when is_tuple(H) =:= false ->
-    paths(T, Acc);
-paths([H|T], Acc) ->
-    {Name, _} = name_and_repo(H),
-    Conf = mad_utils:rebar_conf(path(Name)),
-    Deps = mad_utils:get_value(deps, Conf, []),
-    Acc1 = paths(Deps, []),
-    paths(T, [path(Name)|Acc ++ Acc1]).
-
-ebins(Deps) ->
-    ebins(paths(Deps), []).
-
-ebins([], Acc) ->
-    Acc;
-ebins([H|T], Acc) ->
-    ebins(T, [filename:join(H, "ebin")|Acc]).
-
-checkout_to({_, V}) -> V;
-checkout_to(Else) -> Else.
 
+%% internal
 name_and_repo({Name, _, Repo}) ->
     {atom_to_list(Name), Repo};
 name_and_repo({Name, _, Repo, _}) ->
     {atom_to_list(Name), Repo}.
 
-path(X) ->
-    %% ~/.otp/deps/X
-    filename:join(?DEPS_PATH, X).
+checkout_to({_, V}) -> V;
+checkout_to(Else) -> Else.

+ 19 - 2
test/mad_deps_SUITE.erl

@@ -2,9 +2,26 @@
 
 -export([all/0]).
 -export([container/1]).
+-export([path/1]).
+-export([name_and_repo/1]).
+-export([checkout_to/1]).
+
 
 all() ->
-    [container].
+    [container, path, name_and_repo, checkout_to].
 
 container(_) ->
-    true = (mad_deps:container() =:= "").
+    Path = filename:join([mad_utils:home(), ".mad", "container"]),
+    Path = mad_deps:container().
+
+path(_) ->
+    Path = filename:join([mad_utils:home(), ".mad", "container", "X"]),
+    Path = mad_deps:path("X").
+
+name_and_repo(_) ->
+    Dep = {x,".*",{git,"blah, blah..",{tag,"v0.8.10"}}},
+    {"x",{git,"blah, blah..", {tag,"v0.8.10"}}} = mad_deps:name_and_repo(Dep).
+
+checkout_to(_) ->
+    "v0.8.10" = mad_deps:checkout_to({tag, "v0.8.10"}),
+    "develop" = mad_deps:checkout_to({branch, "develop"}).