summaryrefslogtreecommitdiff
path: root/systest
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2017-12-05 13:05:14 -0500
committerFred Hebert <mononcqc@ferd.ca>2017-12-05 13:18:32 -0500
commitd45bacb73bd1a255a5042929a49c81ab298df946 (patch)
tree73fcf91c48ce919a598f836f08a3b65e806c6a88 /systest
parentdb05d1ead04f5928a0e865d8317ad6204637cc48 (diff)
Run a soft purge while within the compiler step
Prevents the killing of a plugin with itself
Diffstat (limited to 'systest')
-rw-r--r--systest/all_SUITE.erl12
-rw-r--r--systest/all_SUITE_data/grisp_explode/rebar.config16
-rw-r--r--systest/all_SUITE_data/grisp_explode/rebar.lock8
-rw-r--r--systest/all_SUITE_data/grisp_explode/src/mygrispproject.app.src17
-rw-r--r--systest/all_SUITE_data/grisp_explode/src/mygrispproject.erl15
-rw-r--r--systest/all_SUITE_data/grisp_explode/src/mygrispproject_sup.erl19
6 files changed, 86 insertions, 1 deletions
diff --git a/systest/all_SUITE.erl b/systest/all_SUITE.erl
index a0cfd3f..ba06a9c 100644
--- a/systest/all_SUITE.erl
+++ b/systest/all_SUITE.erl
@@ -29,7 +29,7 @@ end_per_testcase(_Name, Config) ->
Config.
all() ->
- [noop, resource_plugins, alias_clash].
+ [noop, resource_plugins, alias_clash, grisp_explode].
%groups() ->
% [{plugins, [shuffle], []},
@@ -66,6 +66,16 @@ alias_clash(Config) ->
?assertNotEqual(nomatch,
re:run(Output, "Not adding provider default test from module rebar_prv_alias_test "
"because it already exists from module rebar_prv_alias_test")),
+
+grisp_explode() ->
+ [{doc, "Don't force purge a plugin that runs the compile job itself"}].
+grisp_explode(Config) ->
+ %% When the purge handling is wrong, the run fails violently.
+ {error, {_,Output}} = rebar3("grisp deploy -n robot -v 0.1.0", Config),
+ ct:pal("Rebar3 Output:~n~s",[Output]),
+ ?assertNotEqual(nomatch,
+ re:run(Output, "No releases exist in the system for robot:0.1.0!")
+ ),
ok.
%%%%%%%%%%%%%%%
diff --git a/systest/all_SUITE_data/grisp_explode/rebar.config b/systest/all_SUITE_data/grisp_explode/rebar.config
new file mode 100644
index 0000000..43c9f63
--- /dev/null
+++ b/systest/all_SUITE_data/grisp_explode/rebar.config
@@ -0,0 +1,16 @@
+{deps, [grisp]}.
+
+{plugins, [{rebar3_grisp, "0.1.0"}]}.
+
+{erl_opts, [debug_info]}.
+
+{grisp, [
+ {otp_release, "19"},
+ {deploy, [
+ {destination, "/path/to/SD-card"}
+ ]}
+]}.
+
+{relx, [
+ {release, {mygrispproject, "0.1.0"}, [mygrispproject]}
+]}.
diff --git a/systest/all_SUITE_data/grisp_explode/rebar.lock b/systest/all_SUITE_data/grisp_explode/rebar.lock
new file mode 100644
index 0000000..2523b13
--- /dev/null
+++ b/systest/all_SUITE_data/grisp_explode/rebar.lock
@@ -0,0 +1,8 @@
+{"1.1.0",
+[{<<"grisp">>,{pkg,<<"grisp">>,<<"0.1.1">>},0},
+ {<<"mapz">>,{pkg,<<"mapz">>,<<"0.3.0">>},1}]}.
+[
+{pkg_hash,[
+ {<<"grisp">>, <<"5A1318E7B1582D7C5B1E446D149A6F93428A380BCFE7D740E57E4F6B6CDB19DD">>},
+ {<<"mapz">>, <<"438D24746CE5A252101E00B2032EFDF7FC69EB32689D3B805DE5E6DD7F52614F">>}]}
+].
diff --git a/systest/all_SUITE_data/grisp_explode/src/mygrispproject.app.src b/systest/all_SUITE_data/grisp_explode/src/mygrispproject.app.src
new file mode 100644
index 0000000..0f0a396
--- /dev/null
+++ b/systest/all_SUITE_data/grisp_explode/src/mygrispproject.app.src
@@ -0,0 +1,17 @@
+{application, mygrispproject, [
+ {description, "A GRiSP application"},
+ {vsn, "0.1.0"},
+ {registered, []},
+ {mod, {mygrispproject, []}},
+ {applications, [
+ kernel,
+ stdlib,
+ grisp
+ ]},
+ {env,[]},
+ {modules, []},
+
+ {maintainers, []},
+ {licenses, ["Apache 2.0"]},
+ {links, []}
+]}.
diff --git a/systest/all_SUITE_data/grisp_explode/src/mygrispproject.erl b/systest/all_SUITE_data/grisp_explode/src/mygrispproject.erl
new file mode 100644
index 0000000..a9152fe
--- /dev/null
+++ b/systest/all_SUITE_data/grisp_explode/src/mygrispproject.erl
@@ -0,0 +1,15 @@
+% @doc mygrispproject public API.
+% @end
+-module(mygrispproject).
+
+-behavior(application).
+
+% Callbacks
+-export([start/2]).
+-export([stop/1]).
+
+%--- Callbacks -----------------------------------------------------------------
+
+start(_Type, _Args) -> mygrispproject_sup:start_link().
+
+stop(_State) -> ok.
diff --git a/systest/all_SUITE_data/grisp_explode/src/mygrispproject_sup.erl b/systest/all_SUITE_data/grisp_explode/src/mygrispproject_sup.erl
new file mode 100644
index 0000000..aef0d4f
--- /dev/null
+++ b/systest/all_SUITE_data/grisp_explode/src/mygrispproject_sup.erl
@@ -0,0 +1,19 @@
+% @doc mygrispproject top level supervisor.
+% @end
+-module(mygrispproject_sup).
+
+-behavior(supervisor).
+
+% API
+-export([start_link/0]).
+
+% Callbacks
+-export([init/1]).
+
+%--- API -----------------------------------------------------------------------
+
+start_link() -> supervisor:start_link({local, ?MODULE}, ?MODULE, []).
+
+%--- Callbacks -----------------------------------------------------------------
+
+init([]) -> {ok, { {one_for_all, 0, 1}, []} }.