diff options
author | Lukas Larsson <[email protected]> | 2017-02-22 15:32:30 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2017-02-22 15:32:30 +0100 |
commit | a4ac87e2cb953b23f87b46498fd921ac6709f7e9 (patch) | |
tree | eb8059db7d93ae95878fd6311f56f932e9eb1eac /lib/kernel | |
parent | 38a10d18d104869ebba9af568b5566d0162c6faf (diff) | |
parent | dd7ab7bb569470bc6c69d2c6e6dba2cbb5978575 (diff) | |
download | otp-a4ac87e2cb953b23f87b46498fd921ac6709f7e9.tar.gz otp-a4ac87e2cb953b23f87b46498fd921ac6709f7e9.tar.bz2 otp-a4ac87e2cb953b23f87b46498fd921ac6709f7e9.zip |
Merge branch 'maint'
Diffstat (limited to 'lib/kernel')
-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 f368232bfc..1f4591a5a3 100644 --- a/lib/kernel/test/code_SUITE.erl +++ b/lib/kernel/test/code_SUITE.erl @@ -621,20 +621,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. |