Unit test for interest header serialization/deserialization
diff --git a/test/interest-header-serialization-test.cc b/test/interest-header-serialization-test.cc
new file mode 100644
index 0000000..4413724
--- /dev/null
+++ b/test/interest-header-serialization-test.cc
@@ -0,0 +1,115 @@
+#include "ns3/test.h"
+#include "ns3/annotated-topology-reader.h"
+#include "ns3/ccnx-interest-header.h"
+#include "ns3/uinteger.h"
+#include "ns3/random-variable.h"
+#include <limits>
+#include "ns3/ccnx-header-helper.h"
+#include "ns3/header.h"
+#include "ns3/ccnx-name-components.h"
+#include "ns3/nstime.h"
+#include "ns3/buffer.h"
+#include "ns3/log.h"
+
+using namespace ns3;
+
+NS_LOG_COMPONENT_DEFINE ("InterestHeaderSerializationTest");
+
+class InterestHeaderSerializationTest : public TestCase
+{
+public:
+ //static const uint32_t N_RUNS = 5;
+ //static const uint32_t N_BINS = 50;
+ //static const uint32_t N_MEASUREMENTS = 1000000;
+
+ InterestHeaderSerializationTest ();
+ virtual ~InterestHeaderSerializationTest ();
+
+ //double ChiSquaredTest (UniformVariable &u);
+
+private:
+ virtual void DoRun (void);
+};
+
+InterestHeaderSerializationTest::InterestHeaderSerializationTest ()
+: TestCase ("Interest Header Serialization Test")
+{
+}
+
+InterestHeaderSerializationTest::~InterestHeaderSerializationTest ()
+{
+}
+
+void
+InterestHeaderSerializationTest::DoRun(void)
+{
+ //ReportStart();
+ //SetVerbose(true);
+ NS_LOG_INFO ("Test started");
+ uint32_t randomNonce = UniformVariable().GetInteger(1, std::numeric_limits<uint32_t>::max ());
+ Ptr<CcnxNameComponents> testname = Create<CcnxNameComponents> ();
+ (*testname) ("test") ("test2");
+
+ Ptr<CcnxNameComponents> exclude = Create<CcnxNameComponents> ();
+ (*testname) ("exclude") ("exclude2");
+
+ Time lifetime = Seconds(4.0);
+ bool child = true;
+
+ uint32_t maxSuffixComponents = 40;
+ uint32_t minSuffixComponents = 20;
+
+ CcnxInterestHeader interestHeader;
+ interestHeader.SetNonce(randomNonce);
+ interestHeader.SetName(testname);
+ interestHeader.SetInterestLifetime(lifetime);
+ interestHeader.SetChildSelector(child);
+ interestHeader.SetExclude(exclude);
+ interestHeader.SetMaxSuffixComponents(maxSuffixComponents);
+ interestHeader.SetMinSuffixComponents(minSuffixComponents);
+
+ uint32_t size = interestHeader.GetSerializedSize();
+ //uint32_t size = 5;
+ NS_TEST_ASSERT_MSG_EQ (false, true, "GetSize = " << size);
+ Buffer buf(size);
+ Buffer::Iterator iter = buf.Begin ();
+ //interestHeader.
+ //interestHeader.Serialize(iter);
+
+ iter = buf.Begin ();
+ CcnxInterestHeader target;
+ //target.Deserialize(iter);
+
+ /*if(target.GetNonce() == randomNonce)
+ {
+
+ ReportCaseFailure();
+ }*/
+ NS_TEST_ASSERT_MSG_EQ (target.GetNonce(), randomNonce, "Interest Header nonce deserialization failed");
+
+ //NS_TEST_ASSERT_MSG_EQ (target.GetName(), testname, "Interest Header name deserialization failed");
+
+ NS_TEST_ASSERT_MSG_EQ (target.GetInterestLifetime(), lifetime, "Interest Header lifetime deserialization failed");
+
+ //NS_TEST_ASSERT_MSG_EQ (target.GetChildSelector(), child, "Interest Header childselector deserialization failed");
+
+ //NS_TEST_ASSERT_MSG_EQ (target.GetExclude(), exclude, "Interest Header exclude deserialization failed");
+
+ NS_TEST_ASSERT_MSG_EQ (target.GetMaxSuffixComponents(), (int)maxSuffixComponents, "Interest Header maxSuffixComponents deserialization failed");
+
+ NS_TEST_ASSERT_MSG_EQ (target.GetMinSuffixComponents(), (int)minSuffixComponents, "Interest Header minSuffixComponents deserialization failed");
+}
+
+class InterestHeaderSerializationTestSuite : public TestSuite
+{
+public:
+ InterestHeaderSerializationTestSuite ();
+};
+
+InterestHeaderSerializationTestSuite::InterestHeaderSerializationTestSuite ()
+: TestSuite ("interest-header-serialization-test-suite", UNIT)
+{
+ AddTestCase (new InterestHeaderSerializationTest);
+}
+
+static InterestHeaderSerializationTestSuite suite;