killbill-memoizeit

util: fix hasFailed logic in tests when flaky tests fail Signed-off-by:

5/3/2018 11:21:30 AM

Details

diff --git a/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuite.java b/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuite.java
index eb0c634..e5ef206 100644
--- a/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuite.java
+++ b/util/src/test/java/org/killbill/billing/GuicyKillbillTestSuite.java
@@ -27,6 +27,7 @@ import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.killbill.billing.api.AbortAfterFirstFailureListener;
 import org.killbill.billing.api.FlakyInvokedMethodListener;
+import org.killbill.billing.api.FlakyRetryAnalyzer;
 import org.killbill.billing.callcontext.InternalTenantContext;
 import org.killbill.billing.callcontext.MutableCallContext;
 import org.killbill.billing.callcontext.MutableInternalCallContext;
@@ -232,7 +233,11 @@ public class GuicyKillbillTestSuite implements IHookable {
                                                                     (result.getEndMillis() - result.getStartMillis()) / 1000});
         log.info("***************************************************************************************************");
         if (!hasFailed && !result.isSuccess()) {
-            hasFailed = true;
+            // Ignore if the current test method is flaky
+            final boolean isFlakyTest = result.getMethod().getRetryAnalyzer() != null && result.getMethod().getRetryAnalyzer() instanceof FlakyRetryAnalyzer;
+            if (!isFlakyTest) {
+                hasFailed = true;
+            }
         }
     }