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

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 98a9f01  Make tests more robust. Fix disabled tests.
98a9f01 is described below

commit 98a9f019fcf91c3173685c4a7203e8560df08e99
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Jul 7 20:52:40 2020 +0100

    Make tests more robust. Fix disabled tests.
---
 .../websocket/pojo/TestEncodingDecoding.java       | 57 +++++++++++-----------
 1 file changed, 29 insertions(+), 28 deletions(-)

diff --git a/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java 
b/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
index bf2d36d..91b9034 100644
--- a/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
+++ b/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
@@ -49,7 +49,6 @@ import javax.websocket.server.ServerEndpoint;
 import javax.websocket.server.ServerEndpointConfig;
 
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import org.apache.catalina.Context;
@@ -70,6 +69,9 @@ public class TestEncodingDecoding extends TomcatBaseTest {
     private static final String PATH_MESSAGES_EP = "/echoMessagesEP";
     private static final String PATH_BATCHED_EP = "/echoBatchedEP";
 
+    private static final int WAIT_LOOPS = 50;
+    private static final int WAIT_DELAY = 100;
+
 
     @Test
     public void testProgrammaticEndPoints() throws Exception{
@@ -93,13 +95,13 @@ public class TestEncodingDecoding extends TomcatBaseTest {
         session.getBasicRemote().sendObject(msg1);
         // Should not take very long
         int i = 0;
-        while (i < 20) {
+        while (i < WAIT_LOOPS) {
             if (MsgStringMessageHandler.received.size() > 0 &&
                     client.received.size() > 0) {
                 break;
             }
             i++;
-            Thread.sleep(100);
+            Thread.sleep(WAIT_DELAY);
         }
 
         // Check messages were received
@@ -144,12 +146,12 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
         // Should not take very long
         int i = 0;
-        while (i < 20) {
+        while (i < WAIT_LOOPS) {
             if (server.received.size() > 0 && client.received.size() > 0) {
                 break;
             }
             i++;
-            Thread.sleep(100);
+            Thread.sleep(WAIT_DELAY);
         }
 
         // Check messages were received
@@ -205,12 +207,12 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
         // Should not take very long
         int i = 0;
-        while (i < 20) {
+        while (i < WAIT_LOOPS) {
             if (server.received.size() > 0 && client.received.size() > 0) {
                 break;
             }
             i++;
-            Thread.sleep(100);
+            Thread.sleep(WAIT_DELAY);
         }
 
         // Check messages were received
@@ -223,8 +225,8 @@ public class TestEncodingDecoding extends TomcatBaseTest {
         session.close();
     }
 
+
     @Test
-    @Ignore // TODO Investigate why this test fails
     public void testMessagesEndPoints() throws Exception {
         // Set up utility classes
         MessagesServer server = new MessagesServer();
@@ -251,17 +253,17 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
         // Should not take very long
         int i = 0;
-        while (i < 20) {
+        while (i < WAIT_LOOPS) {
             if (server.received.size() > 0 && client.received.size() > 0) {
                 break;
             }
             i++;
-            Thread.sleep(100);
+            Thread.sleep(WAIT_DELAY);
         }
 
         // Check messages were received
         Assert.assertEquals(1, server.received.size());
-        Assert.assertEquals(1, client.received.size());
+        Assert.assertEquals(2, client.received.size());
 
         // Check correct messages were received
         Assert.assertEquals(MESSAGE_ONE, server.received.peek());
@@ -272,7 +274,6 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
 
     @Test
-    @Ignore // TODO Investigate why this test fails
     public void testBatchedEndPoints() throws Exception {
         // Set up utility classes
         BatchedServer server = new BatchedServer();
@@ -299,12 +300,12 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
         // Should not take very long
         int i = 0;
-        while (i++ < 20) {
-            if (server.received.size() > 0 && client.received.size() > 0) {
+        while (i++ < WAIT_LOOPS) {
+            if (server.received.size() > 0 && client.received.size() > 1) {
                 break;
             }
             i++;
-            Thread.sleep(100);
+            Thread.sleep(WAIT_DELAY);
         }
 
         // Check messages were received
@@ -321,12 +322,12 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
     private int testEvent(String name, int count) throws InterruptedException {
         int i = count;
-        while (i < 50) {
+        while (i < WAIT_LOOPS * 3) {
             if (Server.isLifeCycleEventCalled(name)) {
                 break;
             }
             i++;
-            Thread.sleep(100);
+            Thread.sleep(WAIT_DELAY);
         }
         Assert.assertTrue(Server.isLifeCycleEventCalled(name));
         return i;
@@ -335,7 +336,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
     @ClientEndpoint(decoders=ListStringDecoder.class, 
encoders=ListStringEncoder.class)
     public static class GenericsClient {
-        private Queue<Object> received = new ConcurrentLinkedQueue<>();
+        private final Queue<Object> received = new ConcurrentLinkedQueue<>();
 
         @OnMessage
         public void rx(List<String> in) {
@@ -348,7 +349,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
             encoders={MsgStringEncoder.class, MsgByteEncoder.class})
     public static class Client {
 
-        private Queue<Object> received = new ConcurrentLinkedQueue<>();
+        private final Queue<Object> received = new ConcurrentLinkedQueue<>();
 
         @OnMessage
         public void rx(MsgString in) {
@@ -365,7 +366,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
     @ClientEndpoint
     public static class StringClient {
 
-        private Queue<Object> received = new ConcurrentLinkedQueue<>();
+        private final Queue<Object> received = new ConcurrentLinkedQueue<>();
 
         @OnMessage
         public void rx(String in) {
@@ -381,8 +382,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
             configurator=SingletonConfigurator.class)
     public static class GenericsServer {
 
-        private Queue<Object> received = new ConcurrentLinkedQueue<>();
-
+        private final Queue<Object> received = new ConcurrentLinkedQueue<>();
 
         @OnMessage
         public List<String> rx(List<String> in) {
@@ -401,9 +401,9 @@ public class TestEncodingDecoding extends TomcatBaseTest {
         private volatile Throwable t = null;
 
         @OnMessage
-        public String onMessage(String message, Session session) {
+        public String onMessage(String message, Session session) throws 
Exception {
             received.add(message);
-            session.getAsyncRemote().sendText(MESSAGE_ONE);
+            session.getAsyncRemote().sendText(MESSAGE_ONE).get();
             return message;
         }
 
@@ -427,6 +427,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
             received.add(message);
             session.getAsyncRemote().setBatchingAllowed(true);
             session.getAsyncRemote().sendText(MESSAGE_ONE);
+            session.getAsyncRemote().setBatchingAllowed(false);
             return MESSAGE_TWO;
         }
 
@@ -443,8 +444,8 @@ public class TestEncodingDecoding extends TomcatBaseTest {
             configurator=SingletonConfigurator.class)
     public static class Server {
 
-        private Queue<Object> received = new ConcurrentLinkedQueue<>();
-        static Map<String, Boolean> lifeCyclesCalled = new 
ConcurrentHashMap<>(8);
+        private final Queue<Object> received = new ConcurrentLinkedQueue<>();
+        static final Map<String, Boolean> lifeCyclesCalled = new 
ConcurrentHashMap<>(8);
 
         @OnMessage
         public MsgString rx(MsgString in) {
@@ -528,7 +529,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
 
     public static class MsgString {
-        private String data;
+        private volatile String data;
         public String getData() { return data; }
         public void setData(String data) { this.data = data; }
     }
@@ -580,7 +581,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
 
     public static class MsgByte {
-        private byte[] data;
+        private volatile byte[] data;
         public byte[] getData() { return data; }
         public void setData(byte[] data) { this.data = data; }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to