packet test suite ported to new framework
authorPavel Boyko <boyko@iitp.ru>
Thu Oct 01 13:59:26 2009 +0400 (4 months ago)
changeset 533492aafeab5e4f
parent 5333 b990c1b9c8e6
child 5335 a2972c6648c7
packet test suite ported to new framework
src/common/packet.cc
     1.1 --- a/src/common/packet.cc	Thu Oct 01 13:39:14 2009 +0400
     1.2 +++ b/src/common/packet.cc	Thu Oct 01 13:59:26 2009 +0400
     1.3 @@ -20,6 +20,9 @@
     1.4  #include "packet.h"
     1.5  #include "ns3/assert.h"
     1.6  #include "ns3/log.h"
     1.7 +#include "ns3/test.h"
     1.8 +#include <string>
     1.9 +#include <stdarg.h>
    1.10  
    1.11  NS_LOG_COMPONENT_DEFINE ("Packet");
    1.12  
    1.13 @@ -704,17 +707,9 @@
    1.14    return os;
    1.15  }
    1.16  
    1.17 -
    1.18 -} // namespace ns3
    1.19 -
    1.20 -#ifdef RUN_SELF_TESTS
    1.21 -
    1.22 -#include "ns3/test.h"
    1.23 -#include <string>
    1.24 -#include <stdarg.h>
    1.25 -
    1.26 -using namespace ns3;
    1.27 -
    1.28 +//-----------------------------------------------------------------------------
    1.29 +// Unit tests
    1.30 +//-----------------------------------------------------------------------------
    1.31  namespace {
    1.32  
    1.33  class ATestTagBase : public Tag
    1.34 @@ -888,28 +883,24 @@
    1.35  #define E(a,b,c) a,b,c
    1.36  
    1.37  #define CHECK(p, n, ...)                                \
    1.38 -  NS_TEST_ASSERT (DoCheck (p, __FILE__, __LINE__, n, __VA_ARGS__))
    1.39 +  DoCheck (p, __FILE__, __LINE__, n, __VA_ARGS__)
    1.40  
    1.41 -namespace ns3 {
    1.42 -
    1.43 -
    1.44 -static class PacketTest: public Test 
    1.45 +class PacketTest: public TestCase 
    1.46  {
    1.47  public:
    1.48    PacketTest ();
    1.49 -  virtual bool RunTests (void);
    1.50 +  virtual bool DoRun (void);
    1.51  private:
    1.52 -  bool DoCheck (Ptr<const Packet> p, const char *file, int line, uint32_t n, ...);
    1.53 -} g_packetTest;
    1.54 +  void DoCheck (Ptr<const Packet> p, const char *file, int line, uint32_t n, ...);
    1.55 +};
    1.56  
    1.57  
    1.58  PacketTest::PacketTest ()
    1.59 -  : Test ("Packet") {}
    1.60 +  : TestCase ("Packet") {}
    1.61  
    1.62 -bool
    1.63 +void
    1.64  PacketTest::DoCheck (Ptr<const Packet> p, const char *file, int line, uint32_t n, ...)
    1.65  {
    1.66 -  bool result = true;
    1.67    std::vector<struct Expected> expected;
    1.68    va_list ap;
    1.69    va_start (ap, n);
    1.70 @@ -930,37 +921,34 @@
    1.71        struct Expected e = expected[j];
    1.72        std::ostringstream oss;
    1.73        oss << "anon::ATestTag<" << e.n << ">";
    1.74 -      NS_TEST_ASSERT_EQUAL_FILELINE (item.GetTypeId ().GetName (), oss.str (), file, line);
    1.75 -      NS_TEST_ASSERT_EQUAL_FILELINE (item.GetStart (), e.start, file, line);
    1.76 -      NS_TEST_ASSERT_EQUAL_FILELINE (item.GetEnd (), e.end, file, line);
    1.77 +      NS_TEST_EXPECT_MSG_EQ_INTERNAL (item.GetTypeId ().GetName (), oss.str (), "trivial", file, line);
    1.78 +      NS_TEST_EXPECT_MSG_EQ_INTERNAL (item.GetStart (), e.start, "trivial", file, line);
    1.79 +      NS_TEST_EXPECT_MSG_EQ_INTERNAL (item.GetEnd (), e.end, "trivial", file, line);
    1.80        ATestTagBase *tag = dynamic_cast<ATestTagBase *> (item.GetTypeId ().GetConstructor () ());
    1.81 -      NS_TEST_ASSERT (tag != 0);
    1.82 +      NS_TEST_EXPECT_MSG_NE (tag, 0, "trivial");
    1.83        item.GetTag (*tag);
    1.84 -      NS_TEST_ASSERT (!tag->m_error);
    1.85 +      NS_TEST_EXPECT_MSG_EQ (tag->m_error, false, "trivial");
    1.86        delete tag;
    1.87        j++;
    1.88      }
    1.89 -  NS_TEST_ASSERT (!i.HasNext ());
    1.90 -  NS_TEST_ASSERT_EQUAL (j, expected.size ());
    1.91 -  return result;
    1.92 +  NS_TEST_EXPECT_MSG_EQ (i.HasNext (), false, "Nothing left");
    1.93 +  NS_TEST_EXPECT_MSG_EQ (j, expected.size (), "Size match");
    1.94  }
    1.95  
    1.96  bool
    1.97 -PacketTest::RunTests (void)
    1.98 +PacketTest::DoRun (void)
    1.99  {
   1.100 -  bool result = true;
   1.101 -
   1.102    Ptr<Packet> pkt1 = Create<Packet> (reinterpret_cast<const uint8_t*> ("hello"), 5);
   1.103    Ptr<Packet> pkt2 = Create<Packet> (reinterpret_cast<const uint8_t*> (" world"), 6);
   1.104    Ptr<Packet> packet = Create<Packet> ();
   1.105    packet->AddAtEnd (pkt1);
   1.106    packet->AddAtEnd (pkt2);
   1.107    
   1.108 -  NS_TEST_ASSERT_EQUAL (packet->GetSize (), 11);
   1.109 +  NS_TEST_EXPECT_MSG_EQ (packet->GetSize (), 11, "trivial");
   1.110  
   1.111    std::string msg = std::string (reinterpret_cast<const char *>(packet->PeekData ()),
   1.112                                   packet->GetSize ());
   1.113 -  NS_TEST_ASSERT_EQUAL (msg, "hello world");
   1.114 +  NS_TEST_EXPECT_MSG_EQ (msg, "hello world", "trivial");
   1.115  
   1.116  
   1.117    Ptr<const Packet> p = Create<Packet> (1000);
   1.118 @@ -1082,31 +1070,31 @@
   1.119      Packet p;
   1.120      ATestTag<10> a;
   1.121      p.AddPacketTag (a);
   1.122 -    NS_TEST_ASSERT (p.PeekPacketTag (a));
   1.123 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (a), true, "trivial");
   1.124      ATestTag<11> b;
   1.125      p.AddPacketTag (b);
   1.126 -    NS_TEST_ASSERT (p.PeekPacketTag (b));
   1.127 -    NS_TEST_ASSERT (p.PeekPacketTag (a));
   1.128 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (b), true, "trivial");
   1.129 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (a), true, "trivial");
   1.130      Packet copy = p;
   1.131 -    NS_TEST_ASSERT (copy.PeekPacketTag (b));
   1.132 -    NS_TEST_ASSERT (copy.PeekPacketTag (a));
   1.133 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (b), true, "trivial");
   1.134 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (a), true, "trivial");
   1.135      ATestTag<12> c;
   1.136 -    NS_TEST_ASSERT (!copy.PeekPacketTag (c));
   1.137 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (c), false, "trivial");
   1.138      copy.AddPacketTag (c);
   1.139 -    NS_TEST_ASSERT (copy.PeekPacketTag (c));
   1.140 -    NS_TEST_ASSERT (copy.PeekPacketTag (b));
   1.141 -    NS_TEST_ASSERT (copy.PeekPacketTag (a));
   1.142 -    NS_TEST_ASSERT (!p.PeekPacketTag (c));
   1.143 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (c), true, "trivial");
   1.144 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (b), true, "trivial");
   1.145 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (a), true, "trivial");
   1.146 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (c), false, "trivial");
   1.147      copy.RemovePacketTag (b);
   1.148 -    NS_TEST_ASSERT (!copy.PeekPacketTag (b));
   1.149 -    NS_TEST_ASSERT (p.PeekPacketTag (b));
   1.150 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (b), false, "trivial");
   1.151 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (b), true, "trivial");
   1.152      p.RemovePacketTag (a);
   1.153 -    NS_TEST_ASSERT (!p.PeekPacketTag (a));
   1.154 -    NS_TEST_ASSERT (copy.PeekPacketTag (a));
   1.155 -    NS_TEST_ASSERT (!p.PeekPacketTag (c));
   1.156 -    NS_TEST_ASSERT (copy.PeekPacketTag (c));
   1.157 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (a), false, "trivial");
   1.158 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (a), true, "trivial");
   1.159 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (c), false, "trivial");
   1.160 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (c), true, "trivial");
   1.161      p.RemoveAllPacketTags ();
   1.162 -    NS_TEST_ASSERT (!p.PeekPacketTag (b));
   1.163 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (b), false, "trivial");
   1.164    }
   1.165  
   1.166    {
   1.167 @@ -1122,9 +1110,22 @@
   1.168      CHECK (tmp, 1, E (20, 1, 1001));
   1.169    }
   1.170  
   1.171 -  return result;
   1.172 +  return GetErrorStatus ();
   1.173 +}
   1.174 +//-----------------------------------------------------------------------------
   1.175 +class PacketTestSuite : public TestSuite
   1.176 +{
   1.177 +public:
   1.178 +  PacketTestSuite ();
   1.179 +};
   1.180 +
   1.181 +PacketTestSuite::PacketTestSuite ()
   1.182 +  : TestSuite ("packet", UNIT)
   1.183 +{
   1.184 +  AddTestCase (new PacketTest);
   1.185  }
   1.186  
   1.187 +PacketTestSuite g_packetTestSuite;
   1.188 +
   1.189 +
   1.190  } // namespace ns3
   1.191 -
   1.192 -#endif /* RUN_SELF_TESTS */