From cc70e4fe2ff7b3e318d353972021e548fc513440 Mon Sep 17 00:00:00 2001 From: Tobias Schlager Date: Wed, 24 Jan 2018 12:12:40 +0100 Subject: Issue #1704: Fix alias provider argument passing The way arguments are passed by the alias provider is not compatible with all rebar providers/commands. Especially the release (relx) provider does not like getting its arguments as a plain string. It expects its arguments in a pre-parsed format as returned by getopt:parse/2. Other commands, e.g. eunit, seem to be fine with both ways of argument passing. Therefore, this fix changes the alias provider argument passing to the getopt format in general. --- test/rebar_alias_SUITE.erl | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'test/rebar_alias_SUITE.erl') diff --git a/test/rebar_alias_SUITE.erl b/test/rebar_alias_SUITE.erl index f889ae4..2544aac 100644 --- a/test/rebar_alias_SUITE.erl +++ b/test/rebar_alias_SUITE.erl @@ -13,7 +13,7 @@ init_per_testcase(_, Config) -> end_per_testcase(_, _Config) -> ok. -all() -> [command, args, many, override_default, no_circular]. +all() -> [command, args, many, override_default, no_circular, release]. %% namespaces: unsupported, untested. command() -> @@ -111,3 +111,28 @@ no_circular(Config) -> {error, [$C,$o,$m,$m,$a,$n,$d,$ ,"test",$ ,$n,$o,$t,$ , $f,$o,$u,$n,$d]}), ok. + +release() -> + [{doc, "An alias for a release command"}]. +release(Config) -> + AppDir = ?config(apps, Config), + + Name = rebar_test_utils:create_random_name("alias_release_"), + Vsn = rebar_test_utils:create_random_vsn(), + rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), + RebarConfig = [{relx, + [{release, {skipped_release, Vsn}, []}, + {release, {the_release, Vsn}, [list_to_atom(Name)]}, + {lib_dirs, [AppDir]}]}, + {alias, + [{the_rel1, [clean, {release, "-n the_release"}]}, + {the_rel2, [clean, {release, "--relname=the_release"}]}]}], + rebar_test_utils:run_and_check( + Config, RebarConfig, + ["the_rel1"], + {ok, [{release, the_release, Vsn, false}]}), + rebar_test_utils:run_and_check( + Config, RebarConfig, + ["the_rel2"], + {ok, [{release, the_release, Vsn, false}]}), + ok. -- cgit v1.1