merge with HEAD

This commit is contained in:
Mathieu Lacage
2009-10-01 11:24:55 +02:00
2 changed files with 61 additions and 59 deletions

View File

@@ -21,6 +21,9 @@
#include "ns3/assert.h"
#include "ns3/log.h"
#include "ns3/fatal-error.h"
#include "ns3/test.h"
#include "ns3/random-variable.h"
#include <iomanip>
#include <iostream>
NS_LOG_COMPONENT_DEFINE ("Buffer");
@@ -1197,29 +1200,20 @@ Buffer::Iterator::GetSize (void) const
return m_dataEnd - m_dataStart;
}
} // namespace ns3
#ifdef RUN_SELF_TESTS
#include "ns3/test.h"
#include "ns3/random-variable.h"
#include <iomanip>
namespace ns3 {
class BufferTest: public Test {
//-----------------------------------------------------------------------------
// Unit tests
//-----------------------------------------------------------------------------
class BufferTest: public TestCase {
private:
bool EnsureWrittenBytes (Buffer b, uint32_t n, uint8_t array[]);
public:
virtual bool RunTests (void);
virtual bool DoRun (void);
BufferTest ();
};
BufferTest::BufferTest ()
: Test ("Buffer") {}
: TestCase ("Buffer") {}
bool
BufferTest::EnsureWrittenBytes (Buffer b, uint32_t n, uint8_t array[])
@@ -1237,22 +1231,24 @@ BufferTest::EnsureWrittenBytes (Buffer b, uint32_t n, uint8_t array[])
}
if (!success)
{
Failure () << "Buffer -- ";
Failure () << "expected: n=";
Failure () << n << ", ";
Failure ().setf (std::ios::hex, std::ios::basefield);
std::ostringstream failure;
failure << "Buffer -- ";
failure << "expected: n=";
failure << n << ", ";
failure.setf (std::ios::hex, std::ios::basefield);
for (uint32_t j = 0; j < n; j++)
{
Failure () << (uint16_t)expected[j] << " ";
failure << (uint16_t)expected[j] << " ";
}
Failure ().setf (std::ios::dec, std::ios::basefield);
Failure () << "got: ";
Failure ().setf (std::ios::hex, std::ios::basefield);
failure.setf (std::ios::dec, std::ios::basefield);
failure << "got: ";
failure.setf (std::ios::hex, std::ios::basefield);
for (uint32_t j = 0; j < n; j++)
{
Failure () << (uint16_t)got[j] << " ";
failure << (uint16_t)got[j] << " ";
}
Failure () << std::endl;
failure << std::endl;
ReportTestFailure ("", "", "", failure.str(), __FILE__, __LINE__);
}
return success;
}
@@ -1266,14 +1262,13 @@ BufferTest::EnsureWrittenBytes (Buffer b, uint32_t n, uint8_t array[])
uint8_t bytes[] = {__VA_ARGS__}; \
if (!EnsureWrittenBytes (buffer, n , bytes)) \
{ \
result = false; \
SetErrorStatus (false); \
} \
}
bool
BufferTest::RunTests (void)
BufferTest::DoRun (void)
{
bool result = true;
Buffer buffer;
Buffer::Iterator i;
buffer.AddAtStart (6);
@@ -1320,7 +1315,7 @@ BufferTest::RunTests (void)
i.Prev (2);
if (i.ReadNtohU16 () != 0xff00)
{
result = false;
SetErrorStatus (false);
}
i.Prev (2);
i.WriteU16 (saved);
@@ -1347,7 +1342,7 @@ BufferTest::RunTests (void)
i = buff64.Begin();
if (i.ReadLsbtohU64() != 0x0123456789abcdefllu)
{
result = false;
SetErrorStatus (false);
}
i = buff64.Begin();
i.WriteHtolsbU64 (0x0123456789ABCDEFllu);
@@ -1355,7 +1350,7 @@ BufferTest::RunTests (void)
i = buff64.Begin();
if (i.ReadLsbtohU64() != 0x0123456789abcdefllu)
{
result = false;
SetErrorStatus (false);
}
i = buff64.Begin();
i.WriteHtonU64 (0x0123456789ABCDEFllu);
@@ -1363,7 +1358,7 @@ BufferTest::RunTests (void)
i = buff64.Begin();
if (i.ReadNtohU64() != 0x0123456789abcdefllu)
{
result = false;
SetErrorStatus (false);
}
// test self-assignment
@@ -1438,7 +1433,7 @@ BufferTest::RunTests (void)
buffer.RemoveAtEnd (8);
if (buffer.GetSize () != 0)
{
result = false;
SetErrorStatus (false);
}
buffer = Buffer (6);
@@ -1462,13 +1457,6 @@ BufferTest::RunTests (void)
i.Prev (100);
i.WriteU8 (1, 100);
#if 0
buffer = Buffer (10);
ENSURE_WRITTEN_BYTES (buffer, 10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
buffer.Begin ().WriteU8 (1);
ENSURE_WRITTEN_BYTES (buffer, 10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
#endif
// Bug #54
{
const uint32_t actualSize = 72602;
@@ -1490,7 +1478,7 @@ BufferTest::RunTests (void)
iter.Prev (chunkSize);
iter.Write (inputBuffer.PeekData (), chunkSize);
NS_TEST_ASSERT (memcmp (inputBuffer.PeekData (), outputBuffer.PeekData (), chunkSize) == 0);
NS_TEST_EXPECT_MSG_EQ (memcmp (inputBuffer.PeekData (), outputBuffer.PeekData (), chunkSize), 0, "memcp works");
}
buffer = Buffer (5);
@@ -1508,15 +1496,23 @@ BufferTest::RunTests (void)
ENSURE_WRITTEN_BYTES (buffer, 7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66);
ENSURE_WRITTEN_BYTES (frag0, 7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66);
return result;
return GetErrorStatus ();
}
//-----------------------------------------------------------------------------
class BufferTestSuite : public TestSuite
{
public:
BufferTestSuite ();
};
BufferTestSuite::BufferTestSuite ()
: TestSuite ("buffer", UNIT)
{
AddTestCase (new BufferTest);
}
static BufferTest gBufferTest;
BufferTestSuite g_bufferTestSuite;
} // namespace ns3
#endif /* RUN_SELF_TESTS */

View File

@@ -1,5 +1,3 @@
#ifdef RUN_SELF_TESTS
#include "ns3/test.h"
#include "ns3/drop-tail-queue.h"
#include "ns3/simulator.h"
@@ -8,19 +6,19 @@
namespace ns3 {
class PointToPointTest : public Test
class PointToPointTest : public TestCase
{
public:
PointToPointTest ();
virtual bool RunTests (void);
virtual bool DoRun (void);
private:
void SendOnePacket (Ptr<PointToPointNetDevice> device);
};
PointToPointTest::PointToPointTest ()
: Test ("PointToPoint")
: TestCase ("PointToPoint")
{}
void
@@ -32,10 +30,8 @@ PointToPointTest::SendOnePacket (Ptr<PointToPointNetDevice> device)
bool
PointToPointTest::RunTests (void)
PointToPointTest::DoRun (void)
{
bool result = true;
Ptr<Node> a = CreateObject<Node> ();
Ptr<Node> b = CreateObject<Node> ();
Ptr<PointToPointNetDevice> devA = CreateObject<PointToPointNetDevice> ();
@@ -58,11 +54,21 @@ PointToPointTest::RunTests (void)
Simulator::Destroy ();
return result;
return GetErrorStatus ();
}
//-----------------------------------------------------------------------------
class PointToPointTestSuite : public TestSuite
{
public:
PointToPointTestSuite ();
};
PointToPointTestSuite::PointToPointTestSuite ()
: TestSuite ("devices-point-to-point", UNIT)
{
AddTestCase (new PointToPointTest);
}
static PointToPointTest g_pointToPointTest;
PointToPointTestSuite g_pointToPointTestSuite;
} // namespace ns3
#endif /* RUN_SELF_TESTS */