summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2019-09-04 19:47:35 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2019-09-04 19:51:43 +0200
commitc7a6100279f7fe609aa2ff488dfb177a91909930 (patch)
tree6e77ff28676541c2b85d3da026740d95f35e2428
parentda63b71f5069a5d9201e46087c8a1464b36442a3 (diff)
downloadrabbitmq-server-git-c7a6100279f7fe609aa2ff488dfb177a91909930.tar.gz
unit_inbroker_non_parallel_SUITE: Mark log files as writable before deleting them
On Unix, the system checks the permissions of the directory holding a file to determine if a file can be removed or not: if there is write permission on a directory, a file in this directory can be removed, even though the file itself might be read-only. On Windows however, a read-only file cannot be removed: trying to do so returns `EACCES`. Therefore, in the `log_management` testcase, after testing the behavior with read-only log files, we must mark them as writable again before we clean them up. Otherwise, the testcase fails on Windows.
-rw-r--r--test/unit_inbroker_non_parallel_SUITE.erl6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/unit_inbroker_non_parallel_SUITE.erl b/test/unit_inbroker_non_parallel_SUITE.erl
index 23ce382186..f006e0c717 100644
--- a/test/unit_inbroker_non_parallel_SUITE.erl
+++ b/test/unit_inbroker_non_parallel_SUITE.erl
@@ -244,6 +244,7 @@ log_management1(_Config) ->
%% logging directed to tty (first, remove handlers)
ok = rabbit:stop(),
+ ok = make_files_writable([LogFile ++ Suffix]),
ok = clean_logs([LogFile], Suffix),
ok = application:set_env(rabbit, lager_default_file, tty),
application:unset_env(rabbit, log),
@@ -444,6 +445,11 @@ delete_file(File) ->
Error -> Error
end.
+make_files_writable(Files) ->
+ [ok = file:write_file_info(File, #file_info{mode=8#644}) ||
+ File <- Files],
+ ok.
+
make_files_non_writable(Files) ->
[ok = file:write_file_info(File, #file_info{mode=8#444}) ||
File <- Files],