summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaulet Zhanguzin <dauletz@google.com>2019-12-06 09:20:15 -0800
committerandroid-build-merger <android-build-merger@google.com>2019-12-06 09:20:15 -0800
commit61f55349a0d486a13f934fff77cac5f4421e6964 (patch)
tree6ba1c7e799fa519cc5305c8475a3e8a15a50ccc4
parent26cb64fbbcfa2b87d630d524892a1c0a061c20c4 (diff)
parentf5fd2de0db5c586a1242123977e387884d868d7e (diff)
downloadapache-harmony-android11-qpr1-d-release.tar.gz
Merge "Add retry to flaky UnixFileTests." am: f298d3cab6 am: 8f44578e93r_aml_301500702android-mainline-12.0.0_r55android-mainline-11.0.0_r9android-mainline-11.0.0_r8android-mainline-11.0.0_r7android-mainline-11.0.0_r6android-mainline-11.0.0_r5android-mainline-11.0.0_r45android-mainline-11.0.0_r44android-mainline-11.0.0_r43android-mainline-11.0.0_r42android-mainline-11.0.0_r41android-mainline-11.0.0_r40android-mainline-11.0.0_r4android-mainline-11.0.0_r39android-mainline-11.0.0_r38android-mainline-11.0.0_r37android-mainline-11.0.0_r36android-mainline-11.0.0_r35android-mainline-11.0.0_r34android-mainline-11.0.0_r33android-mainline-11.0.0_r32android-mainline-11.0.0_r31android-mainline-11.0.0_r30android-mainline-11.0.0_r3android-mainline-11.0.0_r29android-mainline-11.0.0_r28android-mainline-11.0.0_r27android-mainline-11.0.0_r26android-mainline-11.0.0_r25android-mainline-11.0.0_r24android-mainline-11.0.0_r23android-mainline-11.0.0_r22android-mainline-11.0.0_r21android-mainline-11.0.0_r20android-mainline-11.0.0_r2android-mainline-11.0.0_r19android-mainline-11.0.0_r18android-mainline-11.0.0_r17android-mainline-11.0.0_r16android-mainline-11.0.0_r15android-mainline-11.0.0_r14android-mainline-11.0.0_r13android-mainline-11.0.0_r12android-mainline-11.0.0_r10android-mainline-11.0.0_r1android-11.0.0_r9android-11.0.0_r8android-11.0.0_r7android-11.0.0_r48android-11.0.0_r47android-11.0.0_r46android-11.0.0_r45android-11.0.0_r44android-11.0.0_r43android-11.0.0_r42android-11.0.0_r41android-11.0.0_r40android-11.0.0_r39android-11.0.0_r38android-11.0.0_r37android-11.0.0_r36android-11.0.0_r35android-11.0.0_r34android-11.0.0_r33android-11.0.0_r32android-11.0.0_r31android-11.0.0_r30android-11.0.0_r29android-11.0.0_r28android-11.0.0_r27android-11.0.0_r26android-11.0.0_r24android-11.0.0_r23android-11.0.0_r22android-11.0.0_r21android-11.0.0_r20android-11.0.0_r19android-11.0.0_r18android-11.0.0_r16android-11.0.0_r15android-11.0.0_r14android-11.0.0_r13android-11.0.0_r12android-11.0.0_r11android-11.0.0_r10android11-qpr3-s1-releaseandroid11-qpr3-releaseandroid11-qpr2-releaseandroid11-qpr1-s2-releaseandroid11-qpr1-s1-releaseandroid11-qpr1-releaseandroid11-qpr1-d-s1-releaseandroid11-qpr1-d-releaseandroid11-qpr1-c-releaseandroid11-mainline-tethering-releaseandroid11-mainline-sparse-2021-jan-releaseandroid11-mainline-sparse-2020-dec-releaseandroid11-mainline-releaseandroid11-mainline-permission-releaseandroid11-mainline-os-statsd-releaseandroid11-mainline-networkstack-releaseandroid11-mainline-media-swcodec-releaseandroid11-mainline-media-releaseandroid11-mainline-extservices-releaseandroid11-mainline-documentsui-releaseandroid11-mainline-conscrypt-releaseandroid11-mainline-cellbroadcast-releaseandroid11-mainline-captiveportallogin-releaseandroid11-devandroid11-d2-releaseandroid11-d1-s7-releaseandroid11-d1-s6-releaseandroid11-d1-s5-releaseandroid11-d1-s1-releaseandroid11-d1-releaseandroid11-d1-b-release
am: f5fd2de0db Change-Id: Ifa001df62dd618192e5764a5f0b8084582887403
-rw-r--r--luni/src/test/api/unix/org/apache/harmony/luni/tests/java/io/UnixFileTest.java70
1 files changed, 52 insertions, 18 deletions
diff --git a/luni/src/test/api/unix/org/apache/harmony/luni/tests/java/io/UnixFileTest.java b/luni/src/test/api/unix/org/apache/harmony/luni/tests/java/io/UnixFileTest.java
index 4d549fd..179a79b 100644
--- a/luni/src/test/api/unix/org/apache/harmony/luni/tests/java/io/UnixFileTest.java
+++ b/luni/src/test/api/unix/org/apache/harmony/luni/tests/java/io/UnixFileTest.java
@@ -23,9 +23,11 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.util.concurrent.Callable;
import tests.support.resource.Support_Resources;
+import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
import libcore.io.Libcore;
@@ -101,6 +103,24 @@ public class UnixFileTest extends TestCase {
}
/**
+ * Asserts that {@code fn} completes without {@link AssertionFailedError failing}
+ * at least once when run up to {@code retries} times.
+ */
+ private static void assertAtLeastOnce(int retries, Callable<Void> fn) throws Exception {
+ assertTrue(retries > 0);
+ for (int i = 0; i < retries; i++) {
+ try {
+ fn.call();
+ break;
+ } catch (AssertionFailedError e) {
+ if (i == retries - 1) {
+ throw e;
+ }
+ }
+ }
+ }
+
+ /**
* @tests java.io.File#canExecute()
* @since 1.6
*/
@@ -136,16 +156,23 @@ public class UnixFileTest extends TestCase {
* @since 1.6
*/
public void test_getFreeSpace() throws Exception {
- long fileSpace = getLinuxSpace(FREE_SPACE_NUM, testFile);
- long dirSpace = getLinuxSpace(FREE_SPACE_NUM, testDir);
- // in case we cannot fetch the value from command line
- if (fileSpace > 0) {
- assertEquals(fileSpace, testFile.getFreeSpace());
- }
-
- if (dirSpace > 0) {
- assertEquals(dirSpace, testDir.getFreeSpace());
- }
+ assertAtLeastOnce(3, () -> {
+ long fileSpace = getLinuxSpace(FREE_SPACE_NUM, testFile);
+ // in case we cannot fetch the value from command line
+ if (fileSpace > 0) {
+ assertEquals(fileSpace, testFile.getFreeSpace());
+ }
+ return null;
+ });
+
+ assertAtLeastOnce(3, () -> {
+ long dirSpace = getLinuxSpace(FREE_SPACE_NUM, testDir);
+ // in case we cannot fetch the value from command line
+ if (dirSpace > 0) {
+ assertEquals(dirSpace, testDir.getFreeSpace());
+ }
+ return null;
+ });
}
/**
@@ -168,14 +195,21 @@ public class UnixFileTest extends TestCase {
* @since 1.6
*/
public void test_getUsableSpace() throws Exception {
- long fileSpace = getLinuxSpace(USABLE_SPACE_NUM, testFile);
- long dirSpace = getLinuxSpace(USABLE_SPACE_NUM, testDir);
- if (fileSpace > 0) {
- assertEquals(fileSpace, testFile.getUsableSpace());
- }
- if (dirSpace > 0) {
- assertEquals(dirSpace, testDir.getUsableSpace());
- }
+ assertAtLeastOnce(3, () -> {
+ long fileSpace = getLinuxSpace(USABLE_SPACE_NUM, testFile);
+ if (fileSpace > 0) {
+ assertEquals(fileSpace, testFile.getUsableSpace());
+ }
+ return null;
+ });
+
+ assertAtLeastOnce(3, () -> {
+ long dirSpace = getLinuxSpace(USABLE_SPACE_NUM, testDir);
+ if (dirSpace > 0) {
+ assertEquals(dirSpace, testDir.getUsableSpace());
+ }
+ return null;
+ });
}
/**