You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by es...@apache.org on 2019/08/27 18:56:40 UTC

[geode] branch feature/GEODE-7114 updated: GEODE-7114: fix flaky tests by using GeodeAwaitility.

This is an automated email from the ASF dual-hosted git repository.

eshu11 pushed a commit to branch feature/GEODE-7114
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-7114 by this push:
     new dd490c4  GEODE-7114: fix flaky tests by using GeodeAwaitility.
dd490c4 is described below

commit dd490c4011f530aac95c2a5440b8ea356a6fa0ba
Author: eshu <es...@pivotal.io>
AuthorDate: Tue Aug 27 11:54:40 2019 -0700

    GEODE-7114: fix flaky tests by using GeodeAwaitility.
---
 .../jta/dunit/TransactionTimeOutDUnitTest.java     | 46 ++++++++++++++--------
 1 file changed, 30 insertions(+), 16 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/dunit/TransactionTimeOutDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/dunit/TransactionTimeOutDUnitTest.java
index 8ee9c1e..70b2a87 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/dunit/TransactionTimeOutDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/dunit/TransactionTimeOutDUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.jta.dunit;
 import static org.apache.geode.distributed.ConfigurationProperties.CACHE_XML_FILE;
 import static org.apache.geode.test.dunit.Assert.fail;
 import static org.apache.geode.test.util.ResourceUtils.createTempFileFromResource;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
@@ -32,6 +33,7 @@ import java.util.Properties;
 
 import javax.naming.Context;
 import javax.sql.DataSource;
+import javax.transaction.Status;
 import javax.transaction.UserTransaction;
 
 import org.junit.Test;
@@ -43,6 +45,7 @@ import org.apache.geode.internal.OSProcess;
 import org.apache.geode.internal.datasource.GemFireTransactionDataSource;
 import org.apache.geode.internal.jta.CacheUtils;
 import org.apache.geode.internal.jta.UserTransactionImpl;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.Assert;
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.Host;
@@ -59,7 +62,6 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
 
   static DistributedSystem ds;
   static Cache cache = null;
-  private static String tblName;
 
   public static void init() throws Exception {
     Properties props = new Properties();
@@ -194,14 +196,15 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
     vm0.invoke(() -> TransactionTimeOutDUnitTest.runTest10());
   }
 
-  public static void runTest1() throws Exception {
+  public static void runTest1() {
     boolean exceptionOccurred = false;
     try {
       Context ctx = cache.getJNDIContext();
       UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
       utx.begin();
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
       utx.setTransactionTimeout(2);
-      Thread.sleep(6000);
+      waitUntilTransactionTimeout(utx);
       try {
         utx.commit();
       } catch (Exception e) {
@@ -214,14 +217,20 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
     }
   }
 
-  public static void runTest2() throws Exception {
+  private static void waitUntilTransactionTimeout(UserTransaction utx) {
+    GeodeAwaitility.await().pollInSameThread()
+        .until(() -> utx.getStatus() == Status.STATUS_NO_TRANSACTION);
+  }
+
+  public static void runTest2() {
     boolean exceptionOccurred = false;
     try {
       Context ctx = cache.getJNDIContext();
       UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
       utx.begin();
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
       utx.setTransactionTimeout(2);
-      Thread.sleep(6000);
+      waitUntilTransactionTimeout(utx);
       try {
         utx.commit();
       } catch (Exception e) {
@@ -239,8 +248,9 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
       Context ctx = cache.getJNDIContext();
       UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
       utx.begin();
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
       utx.setTransactionTimeout(2);
-      Thread.sleep(6000);
+      waitUntilTransactionTimeout(utx);
       utx.begin();
       utx.commit();
     } catch (Exception e) {
@@ -256,7 +266,8 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
       utx = new UserTransactionImpl();
       utx.setTransactionTimeout(2);
       utx.begin();
-      Thread.sleep(4000);
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
+      waitUntilTransactionTimeout(utx);
       try {
         utx.commit();
       } catch (Exception e) {
@@ -278,10 +289,11 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
       utx = new UserTransactionImpl();
       utx.setTransactionTimeout(10);
       utx.begin();
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
       utx.setTransactionTimeout(8);
       utx.setTransactionTimeout(6);
       utx.setTransactionTimeout(2);
-      Thread.sleep(6000);
+      waitUntilTransactionTimeout(utx);
       try {
         utx.commit();
       } catch (Exception e) {
@@ -302,7 +314,8 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
       UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
       utx.setTransactionTimeout(4);
       utx.begin();
-      Thread.sleep(6000);
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
+      waitUntilTransactionTimeout(utx);
       try {
         utx.commit();
       } catch (Exception e) {
@@ -317,12 +330,12 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
   }
 
   public static void runTest7() {
-    // boolean exceptionOccurred = true;
     try {
       Context ctx = cache.getJNDIContext();
       UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
       utx.begin();
-      utx.setTransactionTimeout(6);
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
+      utx.setTransactionTimeout(30);
       Thread.sleep(2000);
       try {
         utx.commit();
@@ -350,7 +363,6 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
       utx.setTransactionTimeout(30);
       Thread.sleep(5000);
       utx.setTransactionTimeout(20);
-      utx.setTransactionTimeout(10);
       sql = "insert into newTable1  values (1)";
       sm.execute(sql);
       utx.commit();
@@ -367,7 +379,7 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
     }
   }
 
-  public static void runTest9() {
+  public static void runTest9() throws Exception {
     try {
       boolean exceptionOccurred = false;
       Context ctx = cache.getJNDIContext();
@@ -392,8 +404,9 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
       sm.execute(sql);
       sm.close();
       conn.close();
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
       utx.setTransactionTimeout(1);
-      Thread.sleep(3000);
+      waitUntilTransactionTimeout(utx);
       try {
         utx.commit();
       } catch (Exception e) {
@@ -407,7 +420,7 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
     }
   }
 
-  public static void runTest10() {
+  public static void runTest10() throws Exception {
     try {
       boolean exceptionOccurred = false;
       Context ctx = cache.getJNDIContext();
@@ -432,8 +445,9 @@ public class TransactionTimeOutDUnitTest extends JUnit4DistributedTestCase {
       sm.execute(sql);
       sm.close();
       conn.close();
+      assertThat(utx.getStatus() == Status.STATUS_ACTIVE);
       utx.setTransactionTimeout(1);
-      Thread.sleep(3000);
+      waitUntilTransactionTimeout(utx);
       try {
         utx.rollback();
       } catch (Exception e) {