[ONOS-2808] Properly deserialzes NDP packets without options
In addition, add following cases into NDP unit tests:
- testDeserializeBadInput
- testDeserializeTruncated (NDP headers only, options skipped)
Change-Id: Ia295a5bd7fcdcc25ac556da7bc2eaab13ad8e3b8
diff --git a/utils/misc/src/test/java/org/onlab/packet/ndp/NeighborSolicitationTest.java b/utils/misc/src/test/java/org/onlab/packet/ndp/NeighborSolicitationTest.java
index 2571b7a..03e57f5e 100644
--- a/utils/misc/src/test/java/org/onlab/packet/ndp/NeighborSolicitationTest.java
+++ b/utils/misc/src/test/java/org/onlab/packet/ndp/NeighborSolicitationTest.java
@@ -20,6 +20,9 @@
import org.onlab.packet.DeserializationException;
import org.onlab.packet.Deserializer;
import org.onlab.packet.MacAddress;
+import org.onlab.packet.PacketTestUtils;
+
+import java.nio.ByteBuffer;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertArrayEquals;
@@ -79,6 +82,20 @@
assertArrayEquals(ns.serialize(), bytePacket);
}
+ @Test
+ public void testDeserializeBadInput() throws Exception {
+ PacketTestUtils.testDeserializeBadInput(NeighborSolicitation.deserializer());
+ }
+
+ @Test
+ public void testDeserializeTruncated() throws Exception {
+ // Run the truncation test only on the NeighborSolicitation header
+ byte[] nsHeader = new byte[NeighborSolicitation.HEADER_LENGTH];
+ ByteBuffer.wrap(bytePacket).get(nsHeader);
+
+ PacketTestUtils.testDeserializeTruncated(NeighborSolicitation.deserializer(), nsHeader);
+ }
+
/**
* Tests deserialize and getters.
*/