summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2015-07-26 07:52:18 +0100
committerFred Hebert <mononcqc@ferd.ca>2015-07-26 07:52:18 +0100
commite2b4dcdb4c68c8142aba9835a5ee4c644aef4e9b (patch)
tree5312e3762996feb316a813880b85aada69bdb173 /test
parentbe1b16aea5650b57e28a77db044be27096b60c64 (diff)
parentc983675b9ef8499a41e18ee6b8d83d11d75bd6b7 (diff)
Merge pull request #642 from tsloughter/validate-otp-version
Validate otp version
Diffstat (limited to 'test')
-rw-r--r--test/rebar_utils_SUITE.erl69
1 files changed, 68 insertions, 1 deletions
diff --git a/test/rebar_utils_SUITE.erl b/test/rebar_utils_SUITE.erl
index f04ab63..24e8afe 100644
--- a/test/rebar_utils_SUITE.erl
+++ b/test/rebar_utils_SUITE.erl
@@ -1,6 +1,8 @@
-module(rebar_utils_SUITE).
-export([all/0,
+ init_per_testcase/2,
+ end_per_testcase/2,
groups/0,
init_per_group/2,
end_per_group/2,
@@ -22,12 +24,23 @@
task_with_flag_with_commas/1,
task_with_multiple_flags/1,
special_task_do/1,
+ valid_otp_version/1,
+ valid_old_format_otp_version/1,
+ valid_otp_version_equal/1,
+ invalid_otp_version/1,
+ nonblacklisted_otp_version/1,
+ blacklisted_otp_version/1,
sh_does_not_miss_messages/1]).
-include_lib("common_test/include/ct.hrl").
-include_lib("eunit/include/eunit.hrl").
-include_lib("kernel/include/file.hrl").
+init_per_testcase(_, Config) ->
+ rebar_test_utils:init_rebar_state(Config).
+
+end_per_testcase(_, _Config) ->
+ catch meck:unload().
all() ->
[{group, args_to_tasks},
@@ -51,7 +64,14 @@ groups() ->
task_with_flag_with_trailing_comma,
task_with_flag_with_commas,
task_with_multiple_flags,
- special_task_do]}].
+ special_task_do,
+ valid_otp_version,
+ valid_old_format_otp_version,
+ valid_otp_version_equal,
+ invalid_otp_version,
+ nonblacklisted_otp_version,
+ blacklisted_otp_version
+ ]}].
init_per_group(_, Config) -> Config.
end_per_group(_, Config) -> Config.
@@ -120,6 +140,53 @@ special_task_do(_Config) ->
"do",
"bar,",
"baz"]).
+
+valid_otp_version(_Config) ->
+ meck:new(rebar_utils, [passthrough]),
+ meck:expect(rebar_utils, otp_release, fun() -> "42.4" end),
+ rebar_utils:check_min_otp_version("42.3"),
+ meck:unload(rebar_utils).
+
+valid_old_format_otp_version(_Config) ->
+ meck:new(rebar_utils, [passthrough]),
+ meck:expect(rebar_utils, otp_release, fun() -> "R15B03-1" end),
+ rebar_utils:check_min_otp_version("14"),
+
+ meck:expect(rebar_utils, otp_release, fun() -> "R16B03" end),
+ rebar_utils:check_min_otp_version("16.0"),
+
+ meck:expect(rebar_utils, otp_release, fun() -> "18.0.1" end),
+ rebar_utils:check_min_otp_version("17.5.4"),
+
+ meck:expect(rebar_utils, otp_release, fun() -> "18.0-rc1" end),
+ ?assertException(throw, rebar_abort, rebar_utils:check_min_otp_version("19")),
+
+ meck:unload(rebar_utils).
+
+valid_otp_version_equal(_Config) ->
+ meck:new(rebar_utils, [passthrough]),
+ meck:expect(rebar_utils, otp_release, fun() -> "42.3" end),
+ rebar_utils:check_min_otp_version("42.3"),
+ meck:unload(rebar_utils).
+
+invalid_otp_version(_Config) ->
+ meck:new(rebar_utils, [passthrough]),
+ meck:expect(rebar_utils, otp_release, fun() -> "17.4" end),
+ ?assertException(throw, rebar_abort, rebar_utils:check_min_otp_version("42.3")),
+ meck:unload(rebar_utils).
+
+nonblacklisted_otp_version(_Config) ->
+ meck:new(rebar_utils, [passthrough]),
+ meck:expect(rebar_utils, otp_release, fun() -> "42.4" end),
+ rebar_utils:check_blacklisted_otp_versions(["1\\.2", "42\\.3"]),
+ meck:unload(rebar_utils).
+
+blacklisted_otp_version(_Config) ->
+ meck:new(rebar_utils, [passthrough]),
+ meck:expect(rebar_utils, otp_release, fun() -> "42.4" end),
+ ?assertException(throw, rebar_abort, rebar_utils:check_blacklisted_otp_versions(["1\\.2", "42\\.[1-4]"])),
+ meck:unload(rebar_utils).
+
sh_does_not_miss_messages(_Config) ->
Source = "~nmain(_) ->~n io:format(\"donotmissme\").~n",
file:write_file("do_not_miss_messages", io_lib:format(Source,[])),