summaryrefslogtreecommitdiff
path: root/test/rebar_compile_SUITE.erl
diff options
context:
space:
mode:
authoralisdair sullivan <alisdairsullivan@gmail.com>2017-02-05 21:26:22 -0800
committeralisdair sullivan <alisdairsullivan@gmail.com>2017-02-05 21:55:58 -0800
commit5932c9608fc90e2cda7ff28c198c7e0b915a43d8 (patch)
treed74701a1d3ee6ab2fcd758d0511cc3039d019520 /test/rebar_compile_SUITE.erl
parent95ef84953b3f40b83126f00f0746f7918d607315 (diff)
use proper skips in compiler tests that use unavailable functions
Diffstat (limited to 'test/rebar_compile_SUITE.erl')
-rw-r--r--test/rebar_compile_SUITE.erl46
1 files changed, 29 insertions, 17 deletions
diff --git a/test/rebar_compile_SUITE.erl b/test/rebar_compile_SUITE.erl
index 9f01496..5a18745 100644
--- a/test/rebar_compile_SUITE.erl
+++ b/test/rebar_compile_SUITE.erl
@@ -78,21 +78,10 @@ all() ->
recompile_when_parse_transform_as_opt_changes,
recompile_when_parse_transform_inline_changes,
regex_filter_skip, regex_filter_regression,
- %% recompile behaviour when `ERL_COMPILER_OPTIONS` differs prior to 19.x
- recursive, no_recursive] ++ recompile_when_env_changes_test().
-
-recompile_when_env_changes_test() ->
- _ = code:ensure_loaded(os),
- UnSetEnv = erlang:function_exported(os, unsetenv, 1),
- _ = code:ensure_loaded(compile),
- EnvOpts = erlang:function_exported(compile, env_compiler_options, 0),
- case {UnSetEnv, EnvOpts} of
- {true, true} ->
- [dont_recompile_when_erl_compiler_options_env_does_not_change,
- recompile_when_erl_compiler_options_env_changes];
- {true, false} -> [always_recompile_when_erl_compiler_options_set];
- {false, _} -> []
- end.
+ recursive, no_recursive,
+ always_recompile_when_erl_compiler_options_set,
+ dont_recompile_when_erl_compiler_options_env_does_not_change,
+ recompile_when_erl_compiler_options_env_changes].
groups() ->
[{basic_app, [], [build_basic_app, paths_basic_app, clean_basic_app]},
@@ -266,7 +255,31 @@ init_per_suite(Config) ->
end_per_suite(_Config) ->
ok.
-init_per_testcase(_, Config) ->
+init_per_testcase(Test, Config) when
+ Test == dont_recompile_when_erl_compiler_options_env_does_not_change
+ orelse
+ Test == recompile_when_erl_compiler_options_env_changes ->
+ _ = code:ensure_loaded(os),
+ UnSetEnv = erlang:function_exported(os, unsetenv, 1),
+ _ = code:ensure_loaded(compile),
+ EnvOpts = erlang:function_exported(compile, env_compiler_options, 0),
+ case {UnSetEnv, EnvOpts} of
+ {true, true} -> maybe_init_config(Config);
+ _ -> {skip, "compile:env_compiler_options/0 unavailable"}
+ end;
+init_per_testcase(always_recompile_when_erl_compiler_options_set, Config) ->
+ _ = code:ensure_loaded(os),
+ UnSetEnv = erlang:function_exported(os, unsetenv, 1),
+ _ = code:ensure_loaded(compile),
+ EnvOpts = erlang:function_exported(compile, env_compiler_options, 0),
+ case {UnSetEnv, EnvOpts} of
+ {true, true} -> {skip, "compile:env_compiler_options/0 available"};
+ {true, false} -> maybe_init_config(Config);
+ _ -> {skip, "os:unsetenv/1 unavailable"}
+ end;
+init_per_testcase(_, Config) -> maybe_init_config(Config).
+
+maybe_init_config(Config) ->
case ?config(apps, Config) of
undefined -> rebar_test_utils:init_rebar_state(Config);
_ -> Config
@@ -276,7 +289,6 @@ end_per_testcase(_, _Config) ->
catch meck:unload().
-
%% test cases
build_basic_app(Config) ->