Copy instead of rsync gpb and protobuffs inttest mocks

Installation of the gpb and protobuffs mocks, in inttest, is now done
using copy in proto_{gpb,protobuffs}_rt:files/0.  Previously, rebar
prepare-deps was used, the dependencies had an rsync source with a
relative path back to the inttest directory.  This eliminates a
dependency in inttest to rsync, instead relying on retest's
functionality to copy files and directories.  Also, it eliminates
hidden knowledge about the directory layout that retest chooses.
Idea and suggestion by Tuncer Ayaz.

Since the dependency sources in the inttest rebar.config files are no
longer used, they are now changed back from rsync paths to git urls,
to serve as examples.
This commit is contained in:
Tomas Abrahamsson 2015-01-08 23:17:11 +01:00
parent 2af51af986
commit a8ffba6da5
4 changed files with 16 additions and 4 deletions

View file

@ -48,11 +48,11 @@ files() ->
{copy, "rebar.config", "rebar.config"}, {copy, "rebar.config", "rebar.config"},
{copy, "include", "include"}, {copy, "include", "include"},
{copy, "src", "src"}, {copy, "src", "src"},
{copy, "mock", "deps"},
{create, "ebin/foo.app", app(foo, ?MODULES ++ ?GENERATED_MODULES)} {create, "ebin/foo.app", app(foo, ?MODULES ++ ?GENERATED_MODULES)}
]. ].
run(_Dir) -> run(_Dir) ->
?assertMatch({ok, _}, retest_sh:run("./rebar prepare-deps", [])),
?assertMatch({ok, _}, retest_sh:run("./rebar clean", [])), ?assertMatch({ok, _}, retest_sh:run("./rebar clean", [])),
?assertMatch({ok, _}, retest_sh:run("./rebar compile", [])), ?assertMatch({ok, _}, retest_sh:run("./rebar compile", [])),
%% Foo includes test_gpb.hrl, %% Foo includes test_gpb.hrl,

View file

@ -8,7 +8,13 @@
{deps, {deps,
[ [
{gpb, [], {rsync, "../../../inttest/proto_gpb/mock/gpb"}} %% The dependency below to gpb is needed for "rebar compile" to
%% work, thus for the inttest to work, but the gpb that is actually
%% used in inttest is brought in from the inttest/proto_gpb/mock
%% subdirectory, not from the source below. The dependency is
%% needed, but the git url serves mostly as an example.
{gpb, [], {git, "git://github.com/tomas-abrahamsson/gpb",
{branch, "master"}}}
]}. ]}.
{proto_compiler, gpb}. {proto_compiler, gpb}.

View file

@ -48,11 +48,11 @@ files() ->
{copy, "rebar.config", "rebar.config"}, {copy, "rebar.config", "rebar.config"},
{copy, "include", "include"}, {copy, "include", "include"},
{copy, "src", "src"}, {copy, "src", "src"},
{copy, "mock", "deps"},
{create, "ebin/foo.app", app(foo, ?MODULES)} {create, "ebin/foo.app", app(foo, ?MODULES)}
]. ].
run(_Dir) -> run(_Dir) ->
?assertMatch({ok, _}, retest_sh:run("./rebar prepare-deps", [])),
?assertMatch({ok, _}, retest_sh:run("./rebar clean", [])), ?assertMatch({ok, _}, retest_sh:run("./rebar clean", [])),
?assertMatch({ok, _}, retest_sh:run("./rebar compile", [])), ?assertMatch({ok, _}, retest_sh:run("./rebar compile", [])),
ok = check_beams_generated(), ok = check_beams_generated(),

View file

@ -8,7 +8,13 @@
{deps, {deps,
[ [
{protobuffs, [], {rsync, "../../../inttest/proto_protobuffs/mock/protobuffs"}} %% The dependency below to protobuffs is needed for "rebar compile" to
%% work, thus for the inttest to work, but the protobuffs that is actually
%% used in inttest is brought in from the inttest/proto_protobuffs/mock
%% subdirectory, not from the source below. The dependency is
%% needed, but the git url serves mostly as an example.
{protobuffs, [], {git, "git://github.com/basho/erlang_protobuffs",
{branch, "master"}}}
]}. ]}.
%% The default proto compiler is protobuffs %% The default proto compiler is protobuffs