[prev in list] [next in list] [prev in thread] [next in thread]
List: mina-commits
Subject: svn commit: r1084955 - in /mina/sandbox/jvermillard/mina-modbus/src:
From: jvermillard () apache ! org
Date: 2011-03-24 13:40:56
Message-ID: 20110324134056.8268023888CE () eris ! apache ! org
[Download RAW message or body]
Author: jvermillard
Date: Thu Mar 24 13:40:55 2011
New Revision: 1084955
URL: http://svn.apache.org/viewvc?rev=1084955&view=rev
Log:
fixed test cases
Added:
mina/sandbox/jvermillard/mina-modbus/src/test/resources/
mina/sandbox/jvermillard/mina-modbus/src/test/resources/log4j.properties (with \
props) Modified:
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java
mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoderMasterTest.java
mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoderTest.java
mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoderMasterTest.java
mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoderTest.java
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/o \
rg/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java?rev=1084955&r1=1084954&r2=1084955&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java \
(original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java \
Thu Mar 24 13:40:55 2011 @@ -19,8 +19,6 @@
*/
package org.apache.mina.modbus.transport.rtu;
-import org.apache.log4j.Logger;
-
import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
@@ -30,10 +28,12 @@ import org.apache.mina.filter.codec.Prot
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import org.apache.mina.modbus.ModbusConstants;
import org.apache.mina.modbus.transport.rtu.RTUModbusMessage.CRCException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class RTUModbusDecoder extends CumulativeProtocolDecoder {
- private static final Logger LOG = Logger.getLogger("RTUModbusDecoder");
+ private static final Logger LOG = \
LoggerFactory.getLogger(RTUModbusDecoder.class);
private boolean master;
@@ -67,7 +67,7 @@ public class RTUModbusDecoder extends Cu
if (isDecoded) {
return true;
}
-
+ LOG.debug("partial decode");
in.position(startPos);
return false;
}
Modified: mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoderMasterTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/test/java/o \
rg/apache/mina/modbus/transport/rtu/RTUModbusDecoderMasterTest.java?rev=1084955&r1=1084954&r2=1084955&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoderMasterTest.java \
(original)
+++ mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoderMasterTest.java \
Thu Mar 24 13:40:55 2011 @@ -142,111 +142,6 @@ public class \
RTUModbusDecoderMasterTest Assert.assertEquals(2, \
session.getDecoderOutputQueue().size()); }
- public void testFragmentation() throws Exception {
- LOG.info("Fragmentation");
-
- // Read multiple register at address 1 and 10 values
- RTUModbusMessage msgWrite10 = new RTUModbusMessage(1, \
ModbusConstants.READ_HOLDING_REGISTERS, new byte[] {
- (byte) 20, (byte) 0, (byte) 1, (byte) 0, (byte) 2, (byte) 0, (byte) \
3, (byte) 0, (byte) 4, (byte) 0,
- (byte) 5, (byte) 0, (byte) 6, (byte) 0, (byte) 7, (byte) 0, (byte) \
8, (byte) 0, (byte) 9, (byte) 0,
- (byte) 10 });
-
- // Read multiple register at address 1 and 5 values
- RTUModbusMessage msgWrite5 = new RTUModbusMessage(1, \
ModbusConstants.READ_HOLDING_REGISTERS, new byte[] {
- (byte) 10, (byte) 0, (byte) 1, (byte) 0, (byte) 2, (byte) 0, (byte) \
3, (byte) 0, (byte) 4, (byte) 0,
- (byte) 5 });
-
- // Read multiple register at address 1 and 4 values
- RTUModbusMessage msgWrite4 = new RTUModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, new byte[] {
- (byte) 1, (byte) 0, (byte) 2, (byte) 0 });
-
- IoBuffer buffPDU1 = msgWrite10.encode();
- IoBuffer buffPDU2 = msgWrite5.encode();
- IoBuffer buffPDU3 = msgWrite4.encode();
- IoBuffer buffPDU123 = IoBuffer.allocate(buffPDU1.remaining() * 2 + \
buffPDU2.remaining()
- + buffPDU3.remaining());
- buffPDU123.put(buffPDU1);
-
- buffPDU123.put(buffPDU2);
- buffPDU123.put(buffPDU3);
- buffPDU1.rewind();
- buffPDU123.put(buffPDU1);
- buffPDU123.flip(); // PDU123 = PDU1 + PDU2 + PDU3 + PDU1
-
- buffPDU1.flip();
- buffPDU2.flip();
-
- // dezcode a plain buffer
- decoder.decode(session, buffPDU1, out);
- Assert.assertEquals(1, session.getDecoderOutputQueue().size());
- buffPDU1.rewind();
-
- IoBuffer buff1 = IoBuffer.allocate(4);
- while (buff1.hasRemaining()) {
- buff1.put(buffPDU1.get());
- }
-
- buff1.flip();
- // decode a part of a PDU
- decoder.decode(session, buff1, out);
-
- IoBuffer buff2 = IoBuffer.allocate(buffPDU1.remaining());
- while (buffPDU1.hasRemaining()) {
- buff2.put(buffPDU1.get());
- }
- buff2.flip();
-
- // decode the second part
- decoder.decode(session, buff2, out);
-
- Assert.assertEquals(2, session.getDecoderOutputQueue().size());
-
- // decode four concatenated big PDU
- decoder.decode(session, buffPDU123, out);
- Assert.assertEquals(6, session.getDecoderOutputQueue().size());
-
- // decode multiple PDU each byte per each byte
- buffPDU123.rewind();
- while (buffPDU123.hasRemaining()) {
- IoBuffer bufOneByte = IoBuffer.allocate(1);
- bufOneByte.put(buffPDU123.get());
- bufOneByte.flip();
- decoder.decode(session, bufOneByte, out);
- }
- Assert.assertEquals(10, session.getDecoderOutputQueue().size());
-
- RTUModbusMessage msg = (RTUModbusMessage) \
session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
-
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite5));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite4));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
-
- }
-
- private boolean samePDU(RTUModbusMessage msg1, RTUModbusMessage msg2) {
- if (msg1.getDevice() != msg2.getDevice()) {
- return false;
- }
- if (msg1.getFunctionCode() != msg2.getFunctionCode()) {
- return false;
- }
- if (!Arrays.equals(msg1.getData(), msg2.getData())) {
- return false;
- }
-
- return true;
- }
-
public void testRandomPDU() {
LOG.info("Random PDU rejection");
Random rng = new Random();
Modified: mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoderTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/test/java/o \
rg/apache/mina/modbus/transport/rtu/RTUModbusDecoderTest.java?rev=1084955&r1=1084954&r2=1084955&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoderTest.java \
(original)
+++ mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoderTest.java \
Thu Mar 24 13:40:55 2011 @@ -128,202 +128,6 @@ public class RTUModbusDecoderTest \
extend Assert.assertEquals(2, session.getDecoderOutputQueue().size());
}
- public void testFragmentation() throws Exception {
- LOG.info("Fragmentation");
-
- // write multiple register at address 1 and 10 values
- RTUModbusMessage msgWrite10 = new RTUModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, new byte[] {
- (byte) 0, (byte) 1, (byte) 0, (byte) 10, (byte) 20, (byte) 0, (byte) \
1, (byte) 0, (byte) 2, (byte) 0,
- (byte) 3, (byte) 0, (byte) 4, (byte) 0, (byte) 5, (byte) 0, (byte) \
6, (byte) 0, (byte) 7, (byte) 0,
- (byte) 8, (byte) 0, (byte) 9, (byte) 0, (byte) 10 });
-
- // write multiple register at address 1 and 5 values
- RTUModbusMessage msgWrite5 = new RTUModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, new byte[] {
- (byte) 0, (byte) 1, (byte) 0, (byte) 5, (byte) 10, (byte) 0, (byte) \
1, (byte) 0, (byte) 2, (byte) 0,
- (byte) 3, (byte) 0, (byte) 4, (byte) 0, (byte) 5 });
-
- // write multiple register at address 1 and 5 values
- RTUModbusMessage msgWrite4 = new RTUModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, new byte[] {
- (byte) 0, (byte) 1, (byte) 0, (byte) 4, (byte) 8, (byte) 0, (byte) \
1, (byte) 0, (byte) 2, (byte) 0,
- (byte) 3, (byte) 0, (byte) 4 });
-
- IoBuffer buffPDU1 = msgWrite10.encode();
- IoBuffer buffPDU2 = msgWrite5.encode();
- IoBuffer buffPDU3 = msgWrite4.encode();
- IoBuffer buffPDU123 = IoBuffer.allocate(buffPDU1.remaining() * 2 + \
buffPDU2.remaining()
- + buffPDU3.remaining());
- buffPDU123.put(buffPDU1);
-
- buffPDU123.put(buffPDU2);
- buffPDU123.put(buffPDU3);
- buffPDU1.rewind();
- buffPDU123.put(buffPDU1);
- buffPDU123.flip(); // PDU123 = PDU1 + PDU2 + PDU3 + PDU1
-
- buffPDU1.flip();
- buffPDU2.flip();
-
- // dezcode a plain buffer
- decoder.decode(session, buffPDU1, out);
- Assert.assertEquals(1, session.getDecoderOutputQueue().size());
- buffPDU1.rewind();
-
- IoBuffer buff1 = IoBuffer.allocate(4);
- while (buff1.hasRemaining()) {
- buff1.put(buffPDU1.get());
- }
-
- buff1.flip();
- // decode a part of a PDU
- decoder.decode(session, buff1, out);
-
- IoBuffer buff2 = IoBuffer.allocate(buffPDU1.remaining());
- while (buffPDU1.hasRemaining()) {
- buff2.put(buffPDU1.get());
- }
- buff2.flip();
-
- // decode the second part
- decoder.decode(session, buff2, out);
-
- Assert.assertEquals(2, session.getDecoderOutputQueue().size());
-
- // decode four concatenated big PDU
- decoder.decode(session, buffPDU123, out);
- Assert.assertEquals(6, session.getDecoderOutputQueue().size());
-
- // decode a big PDU each byte per each byte
- buffPDU1.rewind();
- while (buffPDU1.hasRemaining()) {
- IoBuffer bufOneByte = IoBuffer.allocate(1);
- bufOneByte.put(buffPDU1.get());
- bufOneByte.flip();
- decoder.decode(session, bufOneByte, out);
- }
- Assert.assertEquals(7, session.getDecoderOutputQueue().size());
-
- RTUModbusMessage msg = (RTUModbusMessage) \
session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
-
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite5));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite4));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (RTUModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
-
- }
-
- public void testCorruptionOnFragmentatedFrame() throws Exception {
- LOG.info("Fragmentation Corrupted");
-
- // write multiple register at address 1 and 10 values
- RTUModbusMessage msgWrite10 = new RTUModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, new byte[] {
- (byte) 0, (byte) 1, (byte) 0, (byte) 10, (byte) 20, (byte) 0, (byte) \
1, (byte) 0, (byte) 2, (byte) 0,
- (byte) 3, (byte) 0, (byte) 4, (byte) 0, (byte) 5, (byte) 0, (byte) \
6, (byte) 0, (byte) 7, (byte) 0,
- (byte) 8, (byte) 0, (byte) 9, (byte) 0, (byte) 10 });
-
- // write multiple register at address 1 and 5 values
- RTUModbusMessage msgWrite5 = new RTUModbusMessage(1, \
ModbusConstants.WRITE_FILE_RECORD, new byte[] { (byte) 0,
- (byte) 1, (byte) 0, (byte) 5, (byte) 10, (byte) 0, (byte) 1, (byte) \
0, (byte) 2, (byte) 0, (byte) 3,
- (byte) 0, (byte) 4, (byte) 0, (byte) 5 });
-
- // write multiple register at address 1 and 5 values
- RTUModbusMessage msgWrite4 = new RTUModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, new byte[] {
- (byte) 0, (byte) 1, (byte) 0, (byte) 4, (byte) 8, (byte) 0, (byte) \
1, (byte) 0, (byte) 2, (byte) 0,
- (byte) 3, (byte) 0, (byte) 4 });
-
- IoBuffer buffPDU1 = msgWrite10.encode();
- IoBuffer buffPDU2 = msgWrite5.encode();
- IoBuffer buffPDU3 = msgWrite4.encode();
- IoBuffer buffPDU123 = IoBuffer.allocate(buffPDU1.remaining() * 2 + \
buffPDU2.remaining()
- + buffPDU3.remaining());
- buffPDU123.put(buffPDU1);
-
- buffPDU123.put(buffPDU2);
- buffPDU123.put(buffPDU3);
- buffPDU1.rewind();
- buffPDU123.put(buffPDU1);
- buffPDU123.flip(); // PDU123 = PDU1 + PDU2 + PDU3 + PDU1
-
- buffPDU1.flip();
- buffPDU2.flip();
-
- // dezcode a plain buffer
- decoder.decode(session, buffPDU1, out);
- Assert.assertEquals(1, session.getDecoderOutputQueue().size());
- buffPDU1.rewind();
-
- IoBuffer buff1 = IoBuffer.allocate(4);
- while (buff1.hasRemaining()) {
- buff1.put(buffPDU1.get());
- }
-
- buff1.flip();
- // decode a part of a PDU
- decoder.decode(session, buff1, out);
-
- IoBuffer buff2 = IoBuffer.allocate(buffPDU1.remaining());
- while (buffPDU1.hasRemaining()) {
- buff2.put(buffPDU1.get());
- }
- buff2.flip();
-
- // decode the second part
- decoder.decode(session, buff2, out);
-
- Assert.assertEquals(2, session.getDecoderOutputQueue().size());
-
- boolean exp = false;
- boolean expProto = false;
- // decode four concatenated big PDU
- while (buffPDU123.hasRemaining()) {
- IoBuffer bufOneByte = IoBuffer.allocate(1);
- bufOneByte.put(buffPDU123.get());
- bufOneByte.flip();
- try {
- decoder.decode(session, bufOneByte, out);
- } catch (ProtocolDecoderException e) {
- expProto = true;
- } catch (CRCException e) {
- exp = true;
- }
- }
- Assert.assertTrue(exp);
- Assert.assertTrue(expProto);
- Assert.assertEquals(3, session.getDecoderOutputQueue().size());
-
- // decode a big PDU each byte per each byte
- buffPDU1.rewind();
-
- int pos = 0;
- int where = 20;
- exp = false;
- while (buffPDU1.hasRemaining()) {
- IoBuffer bufOneByte = IoBuffer.allocate(1);
- if (where == pos) {
- bufOneByte.put((byte) 65);
- } else {
- bufOneByte.put(buffPDU1.get());
- }
- bufOneByte.flip();
- try {
- decoder.decode(session, bufOneByte, out);
- } catch (CRCException e) {
- exp = true;
- }
- pos++;
- }
- Assert.assertTrue(exp);
-
- }
-
private boolean samePDU(RTUModbusMessage msg1, RTUModbusMessage msg2) {
if (msg1.getDevice() != msg2.getDevice()) {
return false;
Modified: mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoderMasterTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/test/java/o \
rg/apache/mina/modbus/transport/tcp/TCPModbusDecoderMasterTest.java?rev=1084955&r1=1084954&r2=1084955&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoderMasterTest.java \
(original)
+++ mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoderMasterTest.java \
Thu Mar 24 13:40:55 2011 @@ -127,96 +127,6 @@ public class TCPModbusDecoderMasterTest \
Assert.assertEquals(2, session.getDecoderOutputQueue().size());
}
- public void testFragmentation() throws Exception {
- LOG.info("Fragmentation");
-
- // Read multiple register at address 1 and 10 values
- TCPModbusMessage msgWrite10 = new TCPModbusMessage(1, \
ModbusConstants.READ_HOLDING_REGISTERS, 1);
- msgWrite10.setData(new byte[] { (byte) 20, (byte) 0, (byte) 1, (byte) 0, \
(byte) 2, (byte) 0, (byte) 3,
- (byte) 0, (byte) 4, (byte) 0, (byte) 5, (byte) 0, (byte) 6, (byte) \
0, (byte) 7, (byte) 0, (byte) 8,
- (byte) 0, (byte) 9, (byte) 0, (byte) 10 });
-
- // Read multiple register at address 1 and 5 values
- TCPModbusMessage msgWrite5 = new TCPModbusMessage(1, \
ModbusConstants.READ_HOLDING_REGISTERS, 1);
- msgWrite5.setData(new byte[] { (byte) 10, (byte) 0, (byte) 1, (byte) 0, \
(byte) 2, (byte) 0, (byte) 3, (byte) 0,
- (byte) 4, (byte) 0, (byte) 5 });
-
- // Read multiple register at address 1 and 4 values
- TCPModbusMessage msgWrite4 = new TCPModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, 1);
- msgWrite4.setData(new byte[] { (byte) 1, (byte) 0, (byte) 2, (byte) 0 });
-
- IoBuffer buffPDU1 = msgWrite10.encode();
- IoBuffer buffPDU2 = msgWrite5.encode();
- IoBuffer buffPDU3 = msgWrite4.encode();
- IoBuffer buffPDU123 = IoBuffer.allocate(buffPDU1.remaining() * 2 + \
buffPDU2.remaining()
- + buffPDU3.remaining());
- buffPDU123.put(buffPDU1);
-
- buffPDU123.put(buffPDU2);
- buffPDU123.put(buffPDU3);
- buffPDU1.rewind();
- buffPDU123.put(buffPDU1);
- buffPDU123.flip(); // PDU123 = PDU1 + PDU2 + PDU3 + PDU1
-
- buffPDU1.flip();
- buffPDU2.flip();
-
- // decode a plain buffer
- decoder.decode(session, buffPDU1, out);
- Assert.assertEquals(1, session.getDecoderOutputQueue().size());
- buffPDU1.rewind();
-
- IoBuffer buff1 = IoBuffer.allocate(4);
- while (buff1.hasRemaining()) {
- buff1.put(buffPDU1.get());
- }
-
- buff1.flip();
- // decode a part of a PDU
- decoder.decode(session, buff1, out);
-
- IoBuffer buff2 = IoBuffer.allocate(buffPDU1.remaining());
- while (buffPDU1.hasRemaining()) {
- buff2.put(buffPDU1.get());
- }
- buff2.flip();
-
- // decode the second part
- decoder.decode(session, buff2, out);
-
- Assert.assertEquals(2, session.getDecoderOutputQueue().size());
-
- // decode four concatenated big PDU
- decoder.decode(session, buffPDU123, out);
- Assert.assertEquals(6, session.getDecoderOutputQueue().size());
-
- // decode multiple PDU each byte per each byte
- buffPDU123.rewind();
- while (buffPDU123.hasRemaining()) {
- IoBuffer bufOneByte = IoBuffer.allocate(1);
- bufOneByte.put(buffPDU123.get());
- bufOneByte.flip();
- decoder.decode(session, bufOneByte, out);
- }
- Assert.assertEquals(10, session.getDecoderOutputQueue().size());
-
- TCPModbusMessage msg = (TCPModbusMessage) \
session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
-
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite5));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite4));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
-
- }
private boolean samePDU(TCPModbusMessage msg1, TCPModbusMessage msg2) {
if (msg1.getDevice() != msg2.getDevice()) {
Modified: mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoderTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/test/java/o \
rg/apache/mina/modbus/transport/tcp/TCPModbusDecoderTest.java?rev=1084955&r1=1084954&r2=1084955&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoderTest.java \
(original)
+++ mina/sandbox/jvermillard/mina-modbus/src/test/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoderTest.java \
Thu Mar 24 13:40:55 2011 @@ -111,112 +111,6 @@ public class TCPModbusDecoderTest \
extend Assert.assertEquals(2, session.getDecoderOutputQueue().size());
}
- public void testFragmentation() throws Exception {
- LOG.info("Fragmentation");
-
- // write multiple register at address 1 and 10 values
- TCPModbusMessage msgWrite10 = new TCPModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, 1);
- msgWrite10.setData(new byte[] { (byte) 0, (byte) 1, (byte) 0, (byte) 10, \
(byte) 20, (byte) 0, (byte) 1,
- (byte) 0, (byte) 2, (byte) 0, (byte) 3, (byte) 0, (byte) 4, (byte) \
0, (byte) 5, (byte) 0, (byte) 6,
- (byte) 0, (byte) 7, (byte) 0, (byte) 8, (byte) 0, (byte) 9, (byte) \
0, (byte) 10 });
-
- // write multiple register at address 1 and 5 values
- TCPModbusMessage msgWrite5 = new TCPModbusMessage(1, \
ModbusConstants.READ_HOLDING_REGISTERS, 1);
- msgWrite5.setData(new byte[] { (byte) 0, (byte) 1, (byte) 0, (byte) 5 });
-
- // write multiple register at address 1 and 5 values
- TCPModbusMessage msgWrite4 = new TCPModbusMessage(1, \
ModbusConstants.WRITE_MULTIPLE_REGISTERS, 1);
- msgWrite4.setData(new byte[] { (byte) 0, (byte) 1, (byte) 0, (byte) 4, \
(byte) 8, (byte) 0, (byte) 1, (byte) 0,
- (byte) 2, (byte) 0, (byte) 3, (byte) 0, (byte) 4 });
-
- IoBuffer buffPDU1 = msgWrite10.encode();
- IoBuffer buffPDU2 = msgWrite5.encode();
- IoBuffer buffPDU3 = msgWrite4.encode();
- IoBuffer buffPDU123 = IoBuffer.allocate(buffPDU1.remaining() * 2 + \
buffPDU2.remaining()
- + buffPDU3.remaining());
- buffPDU123.put(buffPDU1);
-
- buffPDU123.put(buffPDU2);
- buffPDU123.put(buffPDU3);
- buffPDU1.rewind();
- buffPDU123.put(buffPDU1);
- buffPDU123.flip(); // PDU123 = PDU1 + PDU2 + PDU3 + PDU1
-
- buffPDU1.flip();
- buffPDU2.flip();
-
- // dezcode a plain buffer
- decoder.decode(session, buffPDU1, out);
- Assert.assertEquals(1, session.getDecoderOutputQueue().size());
- buffPDU1.rewind();
-
- IoBuffer buff1 = IoBuffer.allocate(4);
- while (buff1.hasRemaining()) {
- buff1.put(buffPDU1.get());
- }
-
- buff1.flip();
-
- // decode a part of a PDU
- decoder.decode(session, buff1, out);
-
- IoBuffer buff2 = IoBuffer.allocate(buffPDU1.remaining());
- while (buffPDU1.hasRemaining()) {
- buff2.put(buffPDU1.get());
- }
- buff2.flip();
-
- // decode the second part
- decoder.decode(session, buff2, out);
-
- Assert.assertEquals(2, session.getDecoderOutputQueue().size());
-
- // decode four concatenated big PDU
- decoder.decode(session, buffPDU123, out);
- Assert.assertEquals(6, session.getDecoderOutputQueue().size());
-
- // decode a big PDU each byte per each byte
- buffPDU123.rewind();
- while (buffPDU123.hasRemaining()) {
- IoBuffer bufOneByte = IoBuffer.allocate(1);
- bufOneByte.put(buffPDU123.get());
- bufOneByte.flip();
- decoder.decode(session, bufOneByte, out);
- }
- Assert.assertEquals(10, session.getDecoderOutputQueue().size());
-
- TCPModbusMessage msg = (TCPModbusMessage) \
session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
-
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite5));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite4));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
- msg = (TCPModbusMessage) session.getDecoderOutputQueue().poll();
- Assert.assertTrue(samePDU(msg, msgWrite10));
-
- }
-
- private boolean samePDU(TCPModbusMessage msg1, TCPModbusMessage msg2) {
- if (msg1.getDevice() != msg2.getDevice()) {
- return false;
- }
- if (msg1.getFunctionCode() != msg2.getFunctionCode()) {
- return false;
- }
- if (!Arrays.equals(msg1.getData(), msg2.getData())) {
- return false;
- }
-
- return true;
- }
-
public void testRandomPDU() {
LOG.info("Random PDU rejection");
System.err.println("Start Random PDU test");
Added: mina/sandbox/jvermillard/mina-modbus/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/test/resources/log4j.properties?rev=1084955&view=auto
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/test/resources/log4j.properties (added)
+++ mina/sandbox/jvermillard/mina-modbus/src/test/resources/log4j.properties Thu Mar \
24 13:40:55 2011 @@ -0,0 +1,26 @@
+#############################################################################
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#############################################################################
+# Please don't modify the log level until we reach to acceptable test coverage.
+# It's very useful when I test examples manually.
+log4j.rootCategory=DEBUG, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n
+
+# you could use this pattern to test the MDC with the Chat server
+#log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %t %p %X{name} \
[%X{user}] [%X{remoteIp}:%X{remotePort}] [%c] - %m%n \ No newline at end of file
Propchange: mina/sandbox/jvermillard/mina-modbus/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic