summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--harmony-tests/src/test/java/org/apache/harmony/tests/java/io/FileTest.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/io/FileTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/io/FileTest.java
index 9f397f4f5f..2bf5660ac1 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/io/FileTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/io/FileTest.java
@@ -410,17 +410,22 @@ public class FileTest extends TestCase {
// Test create an illegal file
String sep = File.separator;
- f1 = new File(sep + "..");
+ f1 = new File(sep + "a" + sep + ".." + sep + ".." + sep);
try {
f1.createNewFile();
fail("should throw IOE");
} catch (IOException e) {
// expected;
}
- f1 = new File(sep + "a" + sep + ".." + sep + ".." + sep);
+
+ // Prior to kernel version 5.7, creating "/.." returns EISDIR, and in 5.7 or later,
+ // such syscall returns EEXIST. In the first case, IOException is thrown. In the second
+ // case, false is returned. The below test is modified to accept both of them.
+ // See http://b/176057454 for details.
+ f1 = new File(sep + "..");
try {
- f1.createNewFile();
- fail("should throw IOE");
+ boolean result = f1.createNewFile();
+ assertFalse(result);
} catch (IOException e) {
// expected;
}