From 6f78ade9cbc91bd73016acc4ed53fa2b46d1ac9b Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Thu, 27 Aug 2015 13:38:17 +0300 Subject: [PATCH] fixed testDeleteFail - using chmod on unixes --- .../openapi/util/io/FileUtilHeavyTest.java | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/platform/util/testSrc/com/intellij/openapi/util/io/FileUtilHeavyTest.java b/platform/util/testSrc/com/intellij/openapi/util/io/FileUtilHeavyTest.java index fb4080d2aa8a..91e9480f10d7 100644 --- a/platform/util/testSrc/com/intellij/openapi/util/io/FileUtilHeavyTest.java +++ b/platform/util/testSrc/com/intellij/openapi/util/io/FileUtilHeavyTest.java @@ -181,22 +181,33 @@ public class FileUtilHeavyTest { } @Test - public void testDeleteFail() throws IOException { + public void testDeleteFail() throws Exception { File targetDir = IoTestUtil.createTestDir(myTempDirectory, "failed_delete"); File file = IoTestUtil.createTestFile(targetDir, "file"); - // lock file - @SuppressWarnings("IOResourceOpenedButNotSafelyClosed") - RandomAccessFile rw = new RandomAccessFile(file, "rw"); - FileLock lock = null; - try { - lock = rw.getChannel().tryLock(); - assertFalse(FileUtil.delete(file)); + + if (SystemInfo.isWindows) { + @SuppressWarnings("IOResourceOpenedButNotSafelyClosed") + RandomAccessFile rw = new RandomAccessFile(file, "rw"); + FileLock lock = null; + try { + lock = rw.getChannel().tryLock(); + assertFalse(FileUtil.delete(file)); + } + finally { + if (lock != null) { + lock.release(); + } + rw.close(); + } } - finally { - if (lock != null) { - lock.release(); + else { // on unix use chmod + assertEquals(0, new ProcessBuilder("chmod", "a-w", file.getParentFile().getPath()).start().waitFor()); + try { + assertFalse(FileUtil.delete(file)); + } + finally { + assertEquals(0, new ProcessBuilder("chmod", "a+w", file.getParentFile().getPath()).start().waitFor()); } - rw.close(); } }