another testcase for bug 217. Make sure we do not report tags outside of the current range
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Sat, 21 Jun 2008 08:55:04 -0700
changeset 3300 c8011a2a0c60
parent 3299 4c42f0b977ad
child 3301 60edfd1060ff
another testcase for bug 217. Make sure we do not report tags outside of the current range
examples/wscript
src/common/packet.cc
src/common/tag-list.cc
--- a/examples/wscript	Sat Jun 21 08:11:10 2008 -0700
+++ b/examples/wscript	Sat Jun 21 08:55:04 2008 -0700
@@ -58,3 +58,7 @@
                                  ['core', 'simulator', 'mobility', 'wifi'])
     obj.source = 'wifi-ap.cc'
 
+    obj = bld.create_ns3_program('tcp-2way',
+                                 ['core', 'simulator', 'mobility', 'wifi'])
+    obj.source = 'tcp-2way.cc'
+
--- a/src/common/packet.cc	Sat Jun 21 08:11:10 2008 -0700
+++ b/src/common/packet.cc	Sat Jun 21 08:55:04 2008 -0700
@@ -727,10 +727,7 @@
 #define E(a,b,c) a,b,c
 
 #define CHECK(p, n, ...)                                \
-  if (!DoCheck (p, __FILE__, __LINE__, n, __VA_ARGS__)) \
-    {                                                   \
-      result = false;                                   \
-    }
+  NS_TEST_ASSERT (DoCheck (p, __FILE__, __LINE__, n, __VA_ARGS__))
 
 namespace ns3 {
 
@@ -782,6 +779,7 @@
       delete tag;
       j++;
     }
+  NS_TEST_ASSERT (!i.HasNext ());
   NS_TEST_ASSERT_EQUAL (j, expected.size ());
   return result;
 }
@@ -899,7 +897,14 @@
     Ptr<Packet> a = Create<Packet> (0);
     a->AddAtEnd (tmp);
     CHECK (a, 1, E (20, 0, 36));
-  }  
+  }
+
+  {
+    Ptr<Packet> tmp = Create<Packet> (0);
+    tmp->AddTag (ATestTag<20> ());
+    CHECK (tmp, 0, E (20, 0, 0));
+  }
+  
 
   return result;
 }
--- a/src/common/tag-list.cc	Sat Jun 21 08:11:10 2008 -0700
+++ b/src/common/tag-list.cc	Sat Jun 21 08:55:04 2008 -0700
@@ -90,7 +90,7 @@
       m_nextSize = buf.ReadU32 ();
       m_nextStart = buf.ReadU32 ();
       m_nextEnd = buf.ReadU32 ();
-      if (m_nextStart > m_offsetEnd || m_nextEnd < m_offsetStart)
+      if (m_nextStart >= m_offsetEnd || m_nextEnd <= m_offsetStart)
 	{
 	  m_current += 4 + 4 + 4 + 4 + m_nextSize;
 	}