diff options
author | Fred Hebert <mononcqc@ferd.ca> | 2016-10-17 08:41:25 -0400 |
---|---|---|
committer | Fred Hebert <mononcqc@ferd.ca> | 2016-10-17 08:41:25 -0400 |
commit | 504431473b9cc7f9c1641f640fc4d8a02c9aa079 (patch) | |
tree | b4ebeffad41331730aaa3a1ffaea7783d5888fc9 /test | |
parent | 94f87477d5db0243992ca222c79486acbfb9fcee (diff) |
Prevent crashes in `rebar3 as` with no tasks
checks on hd(...) and so on could not handle empty lists
Diffstat (limited to 'test')
-rw-r--r-- | test/rebar_as_SUITE.erl | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/test/rebar_as_SUITE.erl b/test/rebar_as_SUITE.erl index 0f37dc8..ce8046b 100644 --- a/test/rebar_as_SUITE.erl +++ b/test/rebar_as_SUITE.erl @@ -14,6 +14,7 @@ as_dir_name/1, as_with_task_args/1, warn_on_empty_profile/1, + error_on_empty_tasks/1, clean_as_profile/1]). -include_lib("common_test/include/ct.hrl"). @@ -33,7 +34,7 @@ all() -> [as_basic, as_multiple_profiles, as_multiple_tasks, as_multiple_profiles_multiple_tasks, as_comma_placement, as_comma_then_space, as_dir_name, as_with_task_args, - warn_on_empty_profile, clean_as_profile]. + warn_on_empty_profile, error_on_empty_tasks, clean_as_profile]. as_basic(Config) -> AppDir = ?config(apps, Config), @@ -159,6 +160,20 @@ warn_on_empty_profile(Config) -> meck:unload(rebar_log), ok. +error_on_empty_tasks(Config) -> + AppDir = ?config(apps, Config), + + Name = rebar_test_utils:create_random_name("as_error_empty_"), + Vsn = rebar_test_utils:create_random_vsn(), + rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), + + meck:new(rebar_log, [passthrough]), + rebar_test_utils:run_and_check(Config, + [], + ["as", "default"], + {error, "At least one task must be specified when using `as`"}), + ok. + warn_match(App, History) -> lists:any( fun({_, {rebar_log,log, [warn, "No entry for profile ~s in config.", |