diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2017-03-01 10:35:01 +0100 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2017-03-01 11:48:12 +0100 |
commit | 310e7fd72c241929fca010ae3f39c967aa2856c9 (patch) | |
tree | dcb542a7f8abb3493edf0b4346e89df9bbf69653 /lib/kernel | |
parent | 2117c9e01ed2949b245c8f41c00cac2619a5041a (diff) | |
download | otp-310e7fd72c241929fca010ae3f39c967aa2856c9.tar.gz otp-310e7fd72c241929fca010ae3f39c967aa2856c9.tar.bz2 otp-310e7fd72c241929fca010ae3f39c967aa2856c9.zip |
Ensure code_SUITE:on_load_embedded/1 does not leak links
Make sure that the symlink created in the lib directory is
deleted even if the test case fails.
Diffstat (limited to 'lib/kernel')
-rw-r--r-- | lib/kernel/test/code_SUITE.erl | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/kernel/test/code_SUITE.erl b/lib/kernel/test/code_SUITE.erl index 1f4591a5a3..b665d7e592 100644 --- a/lib/kernel/test/code_SUITE.erl +++ b/lib/kernel/test/code_SUITE.erl @@ -107,6 +107,10 @@ init_per_testcase(big_boot_embedded, Config) -> _Else -> {skip, "Needs crypto!"} end; +init_per_testcase(on_load_embedded, Config) -> + LibRoot = code:lib_dir(), + LinkName = filename:join(LibRoot, "on_load_app-1.0"), + [{link_name,LinkName}|Config]; init_per_testcase(_Func, Config) -> P = code:get_path(), [{code_path, P}|Config]. @@ -124,6 +128,10 @@ end_per_testcase(TC, Config) when TC == mult_lib_roots; NodeName = list_to_atom(atom_to_list(TC)++"@"++HostName), test_server:stop_node(NodeName), end_per_testcase(Config); +end_per_testcase(on_load_embedded, Config) -> + LinkName = proplists:get_value(link_name, Config), + _ = del_link(LinkName), + end_per_testcase(Config); end_per_testcase(_Func, Config) -> end_per_testcase(Config). @@ -1271,10 +1279,9 @@ on_load_embedded(Config) when is_list(Config) -> on_load_embedded_1(Config) -> DataDir = proplists:get_value(data_dir, Config), + LinkName = proplists:get_value(link_name, Config), %% Link the on_load_app application into the lib directory. - LibRoot = code:lib_dir(), - LinkName = filename:join(LibRoot, "on_load_app-1.0"), OnLoadApp = filename:join(DataDir, "on_load_app-1.0"), del_link(LinkName), io:format("LinkName :~p, OnLoadApp: ~p~n",[LinkName,OnLoadApp]), @@ -1308,8 +1315,7 @@ on_load_embedded_1(Config) -> ok = rpc:call(Node, on_load_embedded, status, []), %% Clean up. - stop_node(Node), - ok = del_link(LinkName). + stop_node(Node). del_link(LinkName) -> case file:delete(LinkName) of |