aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Nord <[email protected]>2011-05-16 15:28:29 +0200
committerHenrik Nord <[email protected]>2011-05-16 15:28:39 +0200
commit5308dbafc1d55a0ba0f532a14f920a0ed8be81a5 (patch)
treef3b7d87e5bfbfc787b4088843cde8b34c403d07b
parent69887e661bca4b2e38a5091ec60bfadec85d6bbf (diff)
parent7c1b371290b3e06834fcc4de7e5d0c89f43e818c (diff)
downloadotp-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.erl1
-rw-r--r--lib/tools/test/cover_SUITE.erl4
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(),