Author: kkolinko
Date: Tue Jan 5 17:08:33 2016
New Revision: 1723127
URL: http://svn.apache.org/viewvc?rev=1723127&view=rev
Log:
Fix a failing tribes test by aligning test expectations with the actual
observed behaviour.
Notes:
1. This test is excluded when running tests via build.xml.
2. Durations of the test: 63 seconds. It can be reduced by reducing msgCount
variable.
3. This test creates random messages, half of those are failing at receiver
side by an explicit "throw new IllegalStateException()".
Modified:
tomcat/trunk/test/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java
Modified:
tomcat/trunk/test/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java?rev=1723127&r1=1723126&r2=1723127&view=diff
==============================================================================
---
tomcat/trunk/test/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java
(original)
+++
tomcat/trunk/test/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java
Tue Jan 5 17:08:33 2016
@@ -22,12 +22,14 @@ import java.util.Arrays;
import java.util.Random;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.apache.catalina.tribes.Channel;
+import org.apache.catalina.tribes.ChannelException;
import org.apache.catalina.tribes.ChannelListener;
import org.apache.catalina.tribes.ManagedChannel;
import org.apache.catalina.tribes.Member;
@@ -63,13 +65,32 @@ public class TestRemoteProcessException
int errC=0, nerrC=0;
for (int i=0; i<msgCount; i++) {
boolean error = Data.r.nextBoolean();
-
channel1.send(channel1.getMembers(),Data.createRandomData(error),Channel.SEND_OPTIONS_SYNCHRONIZED_ACK|Channel.SEND_OPTIONS_USE_ACK);
+ try {
+ channel1.send(channel1.getMembers(),
+ Data.createRandomData(error),
+ Channel.SEND_OPTIONS_SYNCHRONIZED_ACK
+ | Channel.SEND_OPTIONS_USE_ACK);
+ if (error) {
+ fail("A ChannelException was expected");
+ }
+ } catch (ChannelException e) {
+ if (!error) {
+ throw e;
+ }
+ }
if ( error ) errC++; else nerrC++;
}
System.err.println("Finished SYNC_ACK");
- assertEquals("Checking failure messages.",errC,listener1.errCnt);
- assertEquals("Checking success messages.",nerrC,listener1.noErrCnt);
- assertEquals("Checking all
messages.",msgCount,listener1.noErrCnt+listener1.errCnt);
+
+ // The listener sees 3 copies of the first "error" message,
+ // as it is being re-sent. Thus the listener1 count is off by +2.
+ final int duplicate = 2;
+
+ assertEquals("Checking failure messages.", errC + duplicate,
+ listener1.errCnt);
+ assertEquals("Checking success messages.", nerrC, listener1.noErrCnt);
+ assertEquals("Checking all messages.", msgCount + duplicate,
+ listener1.noErrCnt + listener1.errCnt);
System.out.println("Listener 1 stats:");
listener1.printStats(System.out);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]