diff options
author | Lukas Larsson <[email protected]> | 2017-02-22 15:32:24 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2017-02-22 15:32:24 +0100 |
commit | dd7ab7bb569470bc6c69d2c6e6dba2cbb5978575 (patch) | |
tree | 0db751f4735d8ad9b294ea82e8f6a6e77e2d804f /lib/kernel/test | |
parent | 438903aa74319891ff39b2e5b7451dcb47cc9ab1 (diff) | |
parent | 44ab65763bbeb307a3431de284805325114a3d35 (diff) | |
download | otp-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/kernel/test')
-rw-r--r-- | lib/kernel/test/code_SUITE.erl | 36 |
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. |