aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2017-02-22 15:32:24 +0100
committerLukas Larsson <[email protected]>2017-02-22 15:32:24 +0100
commitdd7ab7bb569470bc6c69d2c6e6dba2cbb5978575 (patch)
tree0db751f4735d8ad9b294ea82e8f6a6e77e2d804f /lib
parent438903aa74319891ff39b2e5b7451dcb47cc9ab1 (diff)
parent44ab65763bbeb307a3431de284805325114a3d35 (diff)
downloadotp-dd7ab7bb569470bc6c69d2c6e6dba2cbb5978575.tar.gz
otp-dd7ab7bb569470bc6c69d2c6e6dba2cbb5978575.tar.bz2
otp-dd7ab7bb569470bc6c69d2c6e6dba2cbb5978575.zip
Merge branch 'lukas/kernel/fail-sticky_dir-if-not-sticky' into maint
* lukas/kernel/fail-sticky_dir-if-not-sticky: kernel: Fail sticky_dir tc if module not sticky
Diffstat (limited to 'lib')
-rw-r--r--lib/kernel/test/code_SUITE.erl36
1 files changed, 22 insertions, 14 deletions
diff --git a/lib/kernel/test/code_SUITE.erl b/lib/kernel/test/code_SUITE.erl
index c5167efa56..5777b397b8 100644
--- a/lib/kernel/test/code_SUITE.erl
+++ b/lib/kernel/test/code_SUITE.erl
@@ -588,20 +588,28 @@ sticky_compiler(Files, PrivDir) ->
[R || R <- Rets, R =/= ok].
do_sticky_compile(Mod, Dir) ->
- %% Make sure that the module is loaded. A module being sticky
- %% only prevents it from begin reloaded, not from being loaded
- %% from the wrong place to begin with.
- Mod = Mod:module_info(module),
- File = filename:append(Dir, atom_to_list(Mod)),
- Src = io_lib:format("-module(~s).\n"
- "-export([test/1]).\n"
- "test(me) -> fail.\n", [Mod]),
- ok = file:write_file(File++".erl", Src),
- case c:c(File, [{outdir,Dir}]) of
- {ok,Module} ->
- Module:test(me);
- {error,sticky_directory} ->
- ok
+ case code:is_sticky(Mod) of
+ true ->
+ %% Make sure that the module is loaded. A module being sticky
+ %% only prevents it from begin reloaded, not from being loaded
+ %% from the wrong place to begin with.
+ Mod = Mod:module_info(module),
+ File = filename:append(Dir, atom_to_list(Mod)),
+ Src = io_lib:format("-module(~s).\n"
+ "-export([test/1]).\n"
+ "test(me) -> fail.\n", [Mod]),
+ ok = file:write_file(File++".erl", Src),
+ case c:c(File, [{outdir,Dir}]) of
+ {ok,Module} ->
+ Module:test(me);
+ {error,sticky_directory} ->
+ ok
+ end;
+ false ->
+ %% For some reason the module is not sticky
+ %% could be that the .erlang file has
+ %% unstuck it?
+ {Mod, is_not_sticky}
end.
%% Test that the -pa and -pz options work as expected.