merge with HEAD
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu Oct 01 12:06:03 2009 +0200 (5 months ago)
changeset 5337adf71e696e17
parent 5336 aad784d6a91e
parent 5335 a2972c6648c7
child 5338 edf753f423d1
merge with HEAD
     1.1 --- a/src/common/packet-metadata-test.cc	Thu Oct 01 12:05:20 2009 +0200
     1.2 +++ b/src/common/packet-metadata-test.cc	Thu Oct 01 12:06:03 2009 +0200
     1.3 @@ -17,8 +17,6 @@
     1.4   *
     1.5   * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
     1.6   */
     1.7 -#ifdef RUN_SELF_TESTS
     1.8 -
     1.9  #include <stdarg.h>
    1.10  #include <iostream>
    1.11  #include <sstream>
    1.12 @@ -250,20 +248,18 @@
    1.13  
    1.14  namespace ns3 {
    1.15  
    1.16 -
    1.17 -
    1.18 -class PacketMetadataTest : public Test {
    1.19 +class PacketMetadataTest : public TestCase {
    1.20  public:
    1.21    PacketMetadataTest ();
    1.22    virtual ~PacketMetadataTest ();
    1.23    bool CheckHistory (Ptr<Packet> p, const char *file, int line, uint32_t n, ...);
    1.24 -  virtual bool RunTests (void);
    1.25 +  virtual bool DoRun (void);
    1.26  private:
    1.27    Ptr<Packet> DoAddHeader (Ptr<Packet> p);
    1.28  };
    1.29  
    1.30  PacketMetadataTest::PacketMetadataTest ()
    1.31 -  : Test ("PacketMetadata")
    1.32 +  : TestCase ("Packet metadata")
    1.33  {}
    1.34  
    1.35  PacketMetadataTest::~PacketMetadataTest ()
    1.36 @@ -339,20 +335,21 @@
    1.37      }
    1.38    return true;
    1.39   error:
    1.40 -  Failure () << "PacketMetadata error. file="<< file 
    1.41 -            << ", line=" << line << ", got:\"";
    1.42 +  std::ostringstream failure;
    1.43 +  failure << "PacketMetadata error. Got:\"";
    1.44    for (std::list<int>::iterator i = got.begin (); 
    1.45         i != got.end (); i++)
    1.46      {
    1.47 -      Failure () << *i << ", ";
    1.48 +      failure << *i << ", ";
    1.49      }
    1.50 -  Failure () << "\", expected: \"";
    1.51 +  failure << "\", expected: \"";
    1.52    for (std::list<int>::iterator j = expected.begin ();
    1.53         j != expected.end (); j++)
    1.54      {
    1.55 -      Failure () << *j << ", ";
    1.56 +      failure << *j << ", ";
    1.57      }
    1.58 -  Failure () << "\"" << std::endl;
    1.59 +  failure << "\"" << std::endl;
    1.60 +  ReportTestFailure ("", "", "", failure.str(), file, line);
    1.61    return false;
    1.62  }
    1.63  
    1.64 @@ -403,7 +400,7 @@
    1.65  }
    1.66  
    1.67  bool
    1.68 -PacketMetadataTest::RunTests (void)
    1.69 +PacketMetadataTest::DoRun (void)
    1.70  {
    1.71    bool result = true;
    1.72  
    1.73 @@ -722,7 +719,7 @@
    1.74    ADD_HEADER (p1, 20);
    1.75    REM_HEADER (p1, 20);
    1.76    REM_TRAILER (p1, 5);
    1.77 -  NS_TEST_ASSERT_EQUAL (p->GetSize (), 1015);
    1.78 +  NS_TEST_EXPECT_MSG_EQ (p->GetSize (), 1015, "Correct size");
    1.79  
    1.80    
    1.81    p = Create<Packet> (1510);
    1.82 @@ -733,7 +730,7 @@
    1.83    p1 = p->CreateFragment (0, 1500);
    1.84    p2 = p1->Copy ();
    1.85    ADD_HEADER (p2, 24);
    1.86 -  NS_TEST_ASSERT_EQUAL (p->GetSize (), 1519);
    1.87 +  NS_TEST_EXPECT_MSG_EQ (p->GetSize (), 1519, "Correct size");
    1.88  
    1.89    p = Create<Packet> (1000);
    1.90    ADD_HEADER (p, 2);
    1.91 @@ -776,12 +773,20 @@
    1.92    p->RemoveAtStart (10);
    1.93    CHECK_HISTORY (p, 1, 490);
    1.94    
    1.95 +  return !result;
    1.96 +}
    1.97 +//-----------------------------------------------------------------------------
    1.98 +class PacketMetadataTestSuite : public TestSuite
    1.99 +{
   1.100 +public:
   1.101 +  PacketMetadataTestSuite ();
   1.102 +};
   1.103  
   1.104 -  return result;
   1.105 +PacketMetadataTestSuite::PacketMetadataTestSuite ()
   1.106 +  : TestSuite ("packet-metadata", UNIT)
   1.107 +{
   1.108 +  AddTestCase (new PacketMetadataTest);
   1.109  }
   1.110  
   1.111 -static PacketMetadataTest g_packetHistoryTest;
   1.112 -
   1.113 +PacketMetadataTestSuite g_packetMetadataTest;
   1.114  }//namespace ns3
   1.115 -
   1.116 -#endif /* RUN_SELF_TESTS */
     2.1 --- a/src/common/packet.cc	Thu Oct 01 12:05:20 2009 +0200
     2.2 +++ b/src/common/packet.cc	Thu Oct 01 12:06:03 2009 +0200
     2.3 @@ -20,6 +20,9 @@
     2.4  #include "packet.h"
     2.5  #include "ns3/assert.h"
     2.6  #include "ns3/log.h"
     2.7 +#include "ns3/test.h"
     2.8 +#include <string>
     2.9 +#include <stdarg.h>
    2.10  
    2.11  NS_LOG_COMPONENT_DEFINE ("Packet");
    2.12  
    2.13 @@ -704,17 +707,9 @@
    2.14    return os;
    2.15  }
    2.16  
    2.17 -
    2.18 -} // namespace ns3
    2.19 -
    2.20 -#ifdef RUN_SELF_TESTS
    2.21 -
    2.22 -#include "ns3/test.h"
    2.23 -#include <string>
    2.24 -#include <stdarg.h>
    2.25 -
    2.26 -using namespace ns3;
    2.27 -
    2.28 +//-----------------------------------------------------------------------------
    2.29 +// Unit tests
    2.30 +//-----------------------------------------------------------------------------
    2.31  namespace {
    2.32  
    2.33  class ATestTagBase : public Tag
    2.34 @@ -888,28 +883,24 @@
    2.35  #define E(a,b,c) a,b,c
    2.36  
    2.37  #define CHECK(p, n, ...)                                \
    2.38 -  NS_TEST_ASSERT (DoCheck (p, __FILE__, __LINE__, n, __VA_ARGS__))
    2.39 +  DoCheck (p, __FILE__, __LINE__, n, __VA_ARGS__)
    2.40  
    2.41 -namespace ns3 {
    2.42 -
    2.43 -
    2.44 -static class PacketTest: public Test 
    2.45 +class PacketTest: public TestCase 
    2.46  {
    2.47  public:
    2.48    PacketTest ();
    2.49 -  virtual bool RunTests (void);
    2.50 +  virtual bool DoRun (void);
    2.51  private:
    2.52 -  bool DoCheck (Ptr<const Packet> p, const char *file, int line, uint32_t n, ...);
    2.53 -} g_packetTest;
    2.54 +  void DoCheck (Ptr<const Packet> p, const char *file, int line, uint32_t n, ...);
    2.55 +};
    2.56  
    2.57  
    2.58  PacketTest::PacketTest ()
    2.59 -  : Test ("Packet") {}
    2.60 +  : TestCase ("Packet") {}
    2.61  
    2.62 -bool
    2.63 +void
    2.64  PacketTest::DoCheck (Ptr<const Packet> p, const char *file, int line, uint32_t n, ...)
    2.65  {
    2.66 -  bool result = true;
    2.67    std::vector<struct Expected> expected;
    2.68    va_list ap;
    2.69    va_start (ap, n);
    2.70 @@ -930,37 +921,34 @@
    2.71        struct Expected e = expected[j];
    2.72        std::ostringstream oss;
    2.73        oss << "anon::ATestTag<" << e.n << ">";
    2.74 -      NS_TEST_ASSERT_EQUAL_FILELINE (item.GetTypeId ().GetName (), oss.str (), file, line);
    2.75 -      NS_TEST_ASSERT_EQUAL_FILELINE (item.GetStart (), e.start, file, line);
    2.76 -      NS_TEST_ASSERT_EQUAL_FILELINE (item.GetEnd (), e.end, file, line);
    2.77 +      NS_TEST_EXPECT_MSG_EQ_INTERNAL (item.GetTypeId ().GetName (), oss.str (), "trivial", file, line);
    2.78 +      NS_TEST_EXPECT_MSG_EQ_INTERNAL (item.GetStart (), e.start, "trivial", file, line);
    2.79 +      NS_TEST_EXPECT_MSG_EQ_INTERNAL (item.GetEnd (), e.end, "trivial", file, line);
    2.80        ATestTagBase *tag = dynamic_cast<ATestTagBase *> (item.GetTypeId ().GetConstructor () ());
    2.81 -      NS_TEST_ASSERT (tag != 0);
    2.82 +      NS_TEST_EXPECT_MSG_NE (tag, 0, "trivial");
    2.83        item.GetTag (*tag);
    2.84 -      NS_TEST_ASSERT (!tag->m_error);
    2.85 +      NS_TEST_EXPECT_MSG_EQ (tag->m_error, false, "trivial");
    2.86        delete tag;
    2.87        j++;
    2.88      }
    2.89 -  NS_TEST_ASSERT (!i.HasNext ());
    2.90 -  NS_TEST_ASSERT_EQUAL (j, expected.size ());
    2.91 -  return result;
    2.92 +  NS_TEST_EXPECT_MSG_EQ (i.HasNext (), false, "Nothing left");
    2.93 +  NS_TEST_EXPECT_MSG_EQ (j, expected.size (), "Size match");
    2.94  }
    2.95  
    2.96  bool
    2.97 -PacketTest::RunTests (void)
    2.98 +PacketTest::DoRun (void)
    2.99  {
   2.100 -  bool result = true;
   2.101 -
   2.102    Ptr<Packet> pkt1 = Create<Packet> (reinterpret_cast<const uint8_t*> ("hello"), 5);
   2.103    Ptr<Packet> pkt2 = Create<Packet> (reinterpret_cast<const uint8_t*> (" world"), 6);
   2.104    Ptr<Packet> packet = Create<Packet> ();
   2.105    packet->AddAtEnd (pkt1);
   2.106    packet->AddAtEnd (pkt2);
   2.107    
   2.108 -  NS_TEST_ASSERT_EQUAL (packet->GetSize (), 11);
   2.109 +  NS_TEST_EXPECT_MSG_EQ (packet->GetSize (), 11, "trivial");
   2.110  
   2.111    std::string msg = std::string (reinterpret_cast<const char *>(packet->PeekData ()),
   2.112                                   packet->GetSize ());
   2.113 -  NS_TEST_ASSERT_EQUAL (msg, "hello world");
   2.114 +  NS_TEST_EXPECT_MSG_EQ (msg, "hello world", "trivial");
   2.115  
   2.116  
   2.117    Ptr<const Packet> p = Create<Packet> (1000);
   2.118 @@ -1082,31 +1070,31 @@
   2.119      Packet p;
   2.120      ATestTag<10> a;
   2.121      p.AddPacketTag (a);
   2.122 -    NS_TEST_ASSERT (p.PeekPacketTag (a));
   2.123 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (a), true, "trivial");
   2.124      ATestTag<11> b;
   2.125      p.AddPacketTag (b);
   2.126 -    NS_TEST_ASSERT (p.PeekPacketTag (b));
   2.127 -    NS_TEST_ASSERT (p.PeekPacketTag (a));
   2.128 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (b), true, "trivial");
   2.129 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (a), true, "trivial");
   2.130      Packet copy = p;
   2.131 -    NS_TEST_ASSERT (copy.PeekPacketTag (b));
   2.132 -    NS_TEST_ASSERT (copy.PeekPacketTag (a));
   2.133 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (b), true, "trivial");
   2.134 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (a), true, "trivial");
   2.135      ATestTag<12> c;
   2.136 -    NS_TEST_ASSERT (!copy.PeekPacketTag (c));
   2.137 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (c), false, "trivial");
   2.138      copy.AddPacketTag (c);
   2.139 -    NS_TEST_ASSERT (copy.PeekPacketTag (c));
   2.140 -    NS_TEST_ASSERT (copy.PeekPacketTag (b));
   2.141 -    NS_TEST_ASSERT (copy.PeekPacketTag (a));
   2.142 -    NS_TEST_ASSERT (!p.PeekPacketTag (c));
   2.143 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (c), true, "trivial");
   2.144 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (b), true, "trivial");
   2.145 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (a), true, "trivial");
   2.146 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (c), false, "trivial");
   2.147      copy.RemovePacketTag (b);
   2.148 -    NS_TEST_ASSERT (!copy.PeekPacketTag (b));
   2.149 -    NS_TEST_ASSERT (p.PeekPacketTag (b));
   2.150 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (b), false, "trivial");
   2.151 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (b), true, "trivial");
   2.152      p.RemovePacketTag (a);
   2.153 -    NS_TEST_ASSERT (!p.PeekPacketTag (a));
   2.154 -    NS_TEST_ASSERT (copy.PeekPacketTag (a));
   2.155 -    NS_TEST_ASSERT (!p.PeekPacketTag (c));
   2.156 -    NS_TEST_ASSERT (copy.PeekPacketTag (c));
   2.157 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (a), false, "trivial");
   2.158 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (a), true, "trivial");
   2.159 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (c), false, "trivial");
   2.160 +    NS_TEST_EXPECT_MSG_EQ (copy.PeekPacketTag (c), true, "trivial");
   2.161      p.RemoveAllPacketTags ();
   2.162 -    NS_TEST_ASSERT (!p.PeekPacketTag (b));
   2.163 +    NS_TEST_EXPECT_MSG_EQ (p.PeekPacketTag (b), false, "trivial");
   2.164    }
   2.165  
   2.166    {
   2.167 @@ -1122,9 +1110,22 @@
   2.168      CHECK (tmp, 1, E (20, 1, 1001));
   2.169    }
   2.170  
   2.171 -  return result;
   2.172 +  return GetErrorStatus ();
   2.173 +}
   2.174 +//-----------------------------------------------------------------------------
   2.175 +class PacketTestSuite : public TestSuite
   2.176 +{
   2.177 +public:
   2.178 +  PacketTestSuite ();
   2.179 +};
   2.180 +
   2.181 +PacketTestSuite::PacketTestSuite ()
   2.182 +  : TestSuite ("packet", UNIT)
   2.183 +{
   2.184 +  AddTestCase (new PacketTest);
   2.185  }
   2.186  
   2.187 +PacketTestSuite g_packetTestSuite;
   2.188 +
   2.189 +
   2.190  } // namespace ns3
   2.191 -
   2.192 -#endif /* RUN_SELF_TESTS */