diff options
author | Henrik Nord <[email protected]> | 2011-05-16 15:28:29 +0200 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2011-05-16 15:28:39 +0200 |
commit | 5308dbafc1d55a0ba0f532a14f920a0ed8be81a5 (patch) | |
tree | f3b7d87e5bfbfc787b4088843cde8b34c403d07b | |
parent | 69887e661bca4b2e38a5091ec60bfadec85d6bbf (diff) | |
parent | 7c1b371290b3e06834fcc4de7e5d0c89f43e818c (diff) | |
download | otp-5308dbafc1d55a0ba0f532a14f920a0ed8be81a5.tar.gz otp-5308dbafc1d55a0ba0f532a14f920a0ed8be81a5.tar.bz2 otp-5308dbafc1d55a0ba0f532a14f920a0ed8be81a5.zip |
Merge branch 'ss/fix-cover-fd-leak' into dev
* ss/fix-cover-fd-leak:
Add a check logic to prevent file descriptor leak
Fix file descriptor leak
OTP-9300
-rw-r--r-- | lib/tools/src/cover.erl | 1 | ||||
-rw-r--r-- | lib/tools/test/cover_SUITE.erl | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/tools/src/cover.erl b/lib/tools/src/cover.erl index 73a736f0e8..905ad895c9 100644 --- a/lib/tools/src/cover.erl +++ b/lib/tools/src/cover.erl @@ -662,6 +662,7 @@ main_process_loop(State) -> Imported = do_import_to_table(Fd,File, State#main_state.imported), reply(From, ok), + file:close(Fd), main_process_loop(State#main_state{imported=Imported}); {error,Reason} -> reply(From, {error, {cant_open_file,File,Reason}}), diff --git a/lib/tools/test/cover_SUITE.erl b/lib/tools/test/cover_SUITE.erl index b5c8e8a1b7..fe7f92de78 100644 --- a/lib/tools/test/cover_SUITE.erl +++ b/lib/tools/test/cover_SUITE.erl @@ -395,6 +395,7 @@ export_import(suite) -> []; export_import(Config) when is_list(Config) -> ?line DataDir = ?config(data_dir, Config), ?line ok = file:set_cwd(DataDir), + ?line PortCount = length(erlang:ports()), %% Export one module ?line {ok,f} = cover:compile(f), @@ -484,6 +485,9 @@ export_import(Config) when is_list(Config) -> ?line ?t:capture_stop(), ?line check_f_calls(1,0), + %% Check no raw files are left open + ?line PortCount = length(erlang:ports()), + %% Cleanup ?line ok = cover:stop(), ?line Files = lsfiles(), |