--- a/src/simulator/simulator.cc Wed Sep 30 10:50:03 2009 +0200
+++ b/src/simulator/simulator.cc Wed Sep 30 11:08:57 2009 +0200
@@ -316,11 +316,7 @@
} // namespace ns3
-
-#ifdef RUN_SELF_TESTS
-
#include "ns3/test.h"
-#include "ns3/ptr.h"
#include "list-scheduler.h"
#include "heap-scheduler.h"
#include "map-scheduler.h"
@@ -329,6 +325,190 @@
namespace ns3 {
+class SimulatorEventsTestCase : public TestCase
+{
+public:
+ SimulatorEventsTestCase (Ptr<Scheduler> scheduler);
+ virtual bool DoRun (void);
+ void A (int a);
+ void B (int b);
+ void C (int c);
+ void D (int d);
+ void foo0 (void);
+ uint64_t NowUs (void);
+ void destroy(void);
+ bool m_b;
+ bool m_a;
+ bool m_c;
+ bool m_d;
+ EventId m_idC;
+ bool m_destroy;
+ EventId m_destroyId;
+};
+
+SimulatorEventsTestCase::SimulatorEventsTestCase (Ptr<Scheduler> scheduler)
+ : TestCase ("Check that basic event handling is working with " + scheduler->GetInstanceTypeId ().GetName ())
+{}
+uint64_t
+SimulatorEventsTestCase::NowUs (void)
+{
+ uint64_t ns = Now ().GetNanoSeconds ();
+ return ns / 1000;
+}
+
+void
+SimulatorEventsTestCase::A (int a)
+{
+ m_a = false;
+}
+
+void
+SimulatorEventsTestCase::B (int b)
+{
+ if (b != 2 || NowUs () != 11)
+ {
+ m_b = false;
+ }
+ else
+ {
+ m_b = true;
+ }
+ Simulator::Remove (m_idC);
+ Simulator::Schedule (MicroSeconds (10), &SimulatorEventsTestCase::D, this, 4);
+}
+
+void
+SimulatorEventsTestCase::C (int c)
+{
+ m_c = false;
+}
+
+void
+SimulatorEventsTestCase::D (int d)
+{
+ if (d != 4 || NowUs () != (11+10))
+ {
+ m_d = false;
+ }
+ else
+ {
+ m_d = true;
+ }
+}
+
+void
+SimulatorEventsTestCase::foo0(void)
+{}
+
+void
+SimulatorEventsTestCase::destroy (void)
+{
+ if (m_destroyId.IsExpired ())
+ {
+ m_destroy = true;
+ }
+}
+bool
+SimulatorEventsTestCase::DoRun (void)
+{
+ m_a = true;
+ m_b = false;
+ m_c = true;
+ m_d = false;
+
+ EventId a = Simulator::Schedule (MicroSeconds (10), &SimulatorEventsTestCase::A, this, 1);
+ Simulator::Schedule (MicroSeconds (11), &SimulatorEventsTestCase::B, this, 2);
+ m_idC = Simulator::Schedule (MicroSeconds (12), &SimulatorEventsTestCase::C, this, 3);
+
+ NS_TEST_EXPECT_MSG_EQ (!m_idC.IsExpired (), true, "");
+ NS_TEST_EXPECT_MSG_EQ (!a.IsExpired (), true, "");
+ Simulator::Cancel (a);
+ NS_TEST_EXPECT_MSG_EQ (a.IsExpired (), true, "");
+ Simulator::Run ();
+ NS_TEST_EXPECT_MSG_EQ (m_a, true, "Event A did not run ?");
+ NS_TEST_EXPECT_MSG_EQ (m_b, true, "Event B did not run ?");
+ NS_TEST_EXPECT_MSG_EQ (m_c, true, "Event C did not run ?");
+ NS_TEST_EXPECT_MSG_EQ (m_d, true, "Event D did not run ?");
+
+ EventId anId = Simulator::ScheduleNow (&SimulatorEventsTestCase::foo0, this);
+ EventId anotherId = anId;
+ NS_TEST_EXPECT_MSG_EQ (!(anId.IsExpired () || anotherId.IsExpired ()), true, "Event should not have expired yet.");
+
+ Simulator::Remove (anId);
+ NS_TEST_EXPECT_MSG_EQ (anId.IsExpired (), true, "Event was removed: it is now expired");
+ NS_TEST_EXPECT_MSG_EQ (anotherId.IsExpired (), true, "Event was removed: it is now expired");
+
+ m_destroy = false;
+ m_destroyId = Simulator::ScheduleDestroy (&SimulatorEventsTestCase::destroy, this);
+ NS_TEST_EXPECT_MSG_EQ (!m_destroyId.IsExpired (), true, "Event should not have expired yet");
+ m_destroyId.Cancel ();
+ NS_TEST_EXPECT_MSG_EQ (m_destroyId.IsExpired (), true, "Event was canceled: should have expired now");
+
+ m_destroyId = Simulator::ScheduleDestroy (&SimulatorEventsTestCase::destroy, this);
+ NS_TEST_EXPECT_MSG_EQ (!m_destroyId.IsExpired (), true, "Event should not have expired yet");
+ Simulator::Remove (m_destroyId);
+ NS_TEST_EXPECT_MSG_EQ (m_destroyId.IsExpired (), true, "Event was canceled: should have expired now");
+
+ m_destroyId = Simulator::ScheduleDestroy (&SimulatorEventsTestCase::destroy, this);
+ NS_TEST_EXPECT_MSG_EQ (!m_destroyId.IsExpired (), true, "Event should not have expired yet");
+
+ Simulator::Run ();
+ NS_TEST_EXPECT_MSG_EQ (!m_destroyId.IsExpired (), true, "Event should not have expired yet");
+ NS_TEST_EXPECT_MSG_EQ (!m_destroy, true, "Event should not have run");
+
+ Simulator::Destroy ();
+ NS_TEST_EXPECT_MSG_EQ (m_destroyId.IsExpired (), true, "Event should have expired now");
+ NS_TEST_EXPECT_MSG_EQ (m_destroy, true, "Event should have run");
+
+ return false;
+}
+
+class SimulatorTemplateTestCase : public TestCase
+{
+public:
+ SimulatorTemplateTestCase ();
+ // only here for testing of Ptr<>
+ void Ref (void) const {}
+ void Unref (void) const {}
+private:
+ virtual bool DoRun (void);
+
+ void bar0 (void) {}
+ void bar1 (int) {}
+ void bar2 (int, int) {}
+ void bar3 (int, int, int) {}
+ void bar4 (int, int, int, int) {}
+ void bar5 (int, int, int, int, int) {}
+ void baz1 (int &) {}
+ void baz2 (int &, int &) {}
+ void baz3 (int &, int &, int &) {}
+ void baz4 (int &, int &, int &, int &) {}
+ void baz5 (int &, int &, int &, int &, int &) {}
+ void cbaz1 (const int &) {}
+ void cbaz2 (const int &, const int &) {}
+ void cbaz3 (const int &, const int &, const int &) {}
+ void cbaz4 (const int &, const int &, const int &, const int &) {}
+ void cbaz5 (const int &, const int &, const int &, const int &, const int &) {}
+
+ void bar0c (void) const {}
+ void bar1c (int) const {}
+ void bar2c (int, int) const {}
+ void bar3c (int, int, int) const {}
+ void bar4c (int, int, int, int) const {}
+ void bar5c (int, int, int, int, int) const {}
+ void baz1c (int &) const {}
+ void baz2c (int &, int &) const {}
+ void baz3c (int &, int &, int &) const {}
+ void baz4c (int &, int &, int &, int &) const {}
+ void baz5c (int &, int &, int &, int &, int &) const {}
+ void cbaz1c (const int &) const {}
+ void cbaz2c (const int &, const int &) const {}
+ void cbaz3c (const int &, const int &, const int &) const {}
+ void cbaz4c (const int &, const int &, const int &, const int &) const {}
+ void cbaz5c (const int &, const int &, const int &, const int &, const int &) const {}
+
+};
+
static void foo0 (void)
{}
static void foo1 (int)
@@ -341,8 +521,6 @@
{}
static void foo5 (int, int, int, int, int)
{}
-
-#if 1
static void ber1 (int &)
{}
static void ber2 (int &, int &)
@@ -353,8 +531,6 @@
{}
static void ber5 (int &, int &, int &, int &, int &)
{}
-#endif
-
static void cber1 (const int &)
{}
static void cber2 (const int &, const int &)
@@ -365,407 +541,85 @@
{}
static void cber5 (const int &, const int &, const int &, const int &, const int &)
{}
-
-
-class SimulatorTests : public Test
-{
-public:
- SimulatorTests ();
- // only here for testing of Ptr<>
- void Ref (void) const;
- void Unref (void) const;
- virtual ~SimulatorTests ();
- virtual bool RunTests (void);
-private:
- uint64_t NowUs ();
- bool RunOneTest (void);
- void RunTestsConst (void) const;
- void A (int a);
- void B (int b);
- void C (int c);
- void D (int d);
- void bar0 (void);
- void bar1 (int);
- void bar2 (int, int);
- void bar3 (int, int, int);
- void bar4 (int, int, int, int);
- void bar5 (int, int, int, int, int);
- void baz1 (int &);
- void baz2 (int &, int &);
- void baz3 (int &, int &, int &);
- void baz4 (int &, int &, int &, int &);
- void baz5 (int &, int &, int &, int &, int &);
- void cbaz1 (const int &);
- void cbaz2 (const int &, const int &);
- void cbaz3 (const int &, const int &, const int &);
- void cbaz4 (const int &, const int &, const int &, const int &);
- void cbaz5 (const int &, const int &, const int &, const int &, const int &);
-
- void bar0c (void) const;
- void bar1c (int) const;
- void bar2c (int, int) const;
- void bar3c (int, int, int) const;
- void bar4c (int, int, int, int) const;
- void bar5c (int, int, int, int, int) const;
- void baz1c (int &) const;
- void baz2c (int &, int &) const;
- void baz3c (int &, int &, int &) const;
- void baz4c (int &, int &, int &, int &) const;
- void baz5c (int &, int &, int &, int &, int &) const;
- void cbaz1c (const int &) const;
- void cbaz2c (const int &, const int &) const;
- void cbaz3c (const int &, const int &, const int &) const;
- void cbaz4c (const int &, const int &, const int &, const int &) const;
- void cbaz5c (const int &, const int &, const int &, const int &, const int &) const;
-
- void destroy (void);
-
- bool m_b;
- bool m_a;
- bool m_c;
- bool m_d;
- EventId m_idC;
- bool m_destroy;
- EventId m_destroyId;
-};
-
-SimulatorTests::SimulatorTests ()
- : Test ("Simulator")
-{}
-
-SimulatorTests::~SimulatorTests ()
-{}
-
-void
-SimulatorTests::Ref (void) const
-{}
-
-void
-SimulatorTests::Unref (void) const
-{}
-
-uint64_t
-SimulatorTests::NowUs (void)
-{
- uint64_t ns = Now ().GetNanoSeconds ();
- return ns / 1000;
-}
-
-void
-SimulatorTests::A (int a)
-{
- m_a = false;
-}
-
-void
-SimulatorTests::B (int b)
-{
- if (b != 2 || NowUs () != 11)
- {
- m_b = false;
- }
- else
- {
- m_b = true;
- }
- Simulator::Remove (m_idC);
- Simulator::Schedule (MicroSeconds (10), &SimulatorTests::D, this, 4);
-}
-
-void
-SimulatorTests::C (int c)
-{
- m_c = false;
-}
-
-void
-SimulatorTests::D (int d)
-{
- if (d != 4 || NowUs () != (11+10))
- {
- m_d = false;
- }
- else
- {
- m_d = true;
- }
-}
-
-void
-SimulatorTests::destroy (void)
-{
- if (m_destroyId.IsExpired ())
- {
- m_destroy = true;
- }
-}
-
-void
-SimulatorTests::bar0 (void)
-{}
-
-void
-SimulatorTests::bar1 (int)
-{}
-
-void
-SimulatorTests::bar2 (int, int)
-{}
-
-void
-SimulatorTests::bar3 (int, int, int)
-{}
-
-void
-SimulatorTests::bar4 (int, int, int, int)
-{}
-
-void
-SimulatorTests::bar5 (int, int, int, int, int)
-{}
-
-void
-SimulatorTests::baz1 (int &)
-{}
-
-void
-SimulatorTests::baz2 (int &, int &)
-{}
-
-void
-SimulatorTests::baz3 (int &, int &, int &)
-{}
-
-void
-SimulatorTests::baz4 (int &, int &, int &, int &)
-{}
-
-void
-SimulatorTests::baz5 (int &, int &, int &, int &, int &)
-{}
-
-void
-SimulatorTests::cbaz1 (const int &)
-{}
-
-void
-SimulatorTests::cbaz2 (const int &, const int &)
-{}
-
-void
-SimulatorTests::cbaz3 (const int &, const int &, const int &)
-{}
-
-void
-SimulatorTests::cbaz4 (const int &, const int &, const int &, const int &)
-{}
-
-void
-SimulatorTests::cbaz5 (const int &, const int &, const int &, const int &, const int &)
-{}
-void
-SimulatorTests::bar0c (void) const
-{}
-
-void
-SimulatorTests::bar1c (int) const
-{}
-
-void
-SimulatorTests::bar2c (int, int) const
-{}
-
-void
-SimulatorTests::bar3c (int, int, int) const
-{}
-
-void
-SimulatorTests::bar4c (int, int, int, int) const
-{}
-
-void
-SimulatorTests::bar5c (int, int, int, int, int) const
-{}
-
-void
-SimulatorTests::baz1c (int &) const
-{}
-
-void
-SimulatorTests::baz2c (int &, int &) const
-{}
-
-void
-SimulatorTests::baz3c (int &, int &, int &) const
-{}
-
-void
-SimulatorTests::baz4c (int &, int &, int &, int &) const
-{}
-
-void
-SimulatorTests::baz5c (int &, int &, int &, int &, int &) const
+SimulatorTemplateTestCase::SimulatorTemplateTestCase ()
+ : TestCase ("Check that all templates are instanciated correctly. This is a compilation test, it cannot fail at runtime.")
{}
-
-void
-SimulatorTests::cbaz1c (const int &) const
-{}
-
-void
-SimulatorTests::cbaz2c (const int &, const int &) const
-{}
-
-void
-SimulatorTests::cbaz3c (const int &, const int &, const int &) const
-{}
-
-void
-SimulatorTests::cbaz4c (const int &, const int &, const int &, const int &) const
-{}
-
-void
-SimulatorTests::cbaz5c (const int &, const int &, const int &, const int &, const int &) const
-{}
-
-bool
-SimulatorTests::RunOneTest (void)
-{
- bool result = true;
- m_a = true;
- m_b = false;
- m_c = true;
- m_d = false;
-
- EventId a = Simulator::Schedule (MicroSeconds (10), &SimulatorTests::A, this, 1);
- Simulator::Schedule (MicroSeconds (11), &SimulatorTests::B, this, 2);
- m_idC = Simulator::Schedule (MicroSeconds (12), &SimulatorTests::C, this, 3);
-
- NS_TEST_ASSERT (!m_idC.IsExpired ());
- NS_TEST_ASSERT (!a.IsExpired ());
- Simulator::Cancel (a);
- NS_TEST_ASSERT (a.IsExpired ());
- Simulator::Run ();
- NS_TEST_ASSERT (m_a);
- NS_TEST_ASSERT (m_b);
- NS_TEST_ASSERT (m_c);
- NS_TEST_ASSERT (m_d);
- return result;
-}
-
-void
-SimulatorTests::RunTestsConst (void) const
+bool
+SimulatorTemplateTestCase::DoRun (void)
{
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0c, this);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1c, this, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2c, this, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3c, this, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4c, this, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5c, this, 0, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0c, Ptr<const SimulatorTests> (this));
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1c, Ptr<const SimulatorTests> (this), 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2c, Ptr<const SimulatorTests> (this), 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3c, Ptr<const SimulatorTests> (this), 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz1c, this, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz2c, this, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz3c, this, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz4c, this, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz5c, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar0c, this);
- Simulator::ScheduleNow (&SimulatorTests::bar1c, this, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar2c, this, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar3c, this, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar4c, this, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar5c, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz1c, this, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz2c, this, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz3c, this, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz4c, this, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz5c, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar0c, Ptr<const SimulatorTests> (this));
- Simulator::ScheduleNow (&SimulatorTests::bar1c, Ptr<const SimulatorTests> (this), 0);
- Simulator::ScheduleNow (&SimulatorTests::bar2c, Ptr<const SimulatorTests> (this), 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar3c, Ptr<const SimulatorTests> (this), 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar4c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar5c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar0c, this);
- Simulator::ScheduleDestroy (&SimulatorTests::bar1c, this, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar2c, this, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar3c, this, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar4c, this, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar5c, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz1c, this, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz2c, this, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz3c, this, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz4c, this, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz5c, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar0c, Ptr<const SimulatorTests> (this));
- Simulator::ScheduleDestroy (&SimulatorTests::bar1c, Ptr<const SimulatorTests> (this), 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar2c, Ptr<const SimulatorTests> (this), 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar3c, Ptr<const SimulatorTests> (this), 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar4c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar5c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz1c, this, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz2c, this, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz3c, this, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz4c, this, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz5c, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz1c, this, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz2c, this, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz3c, this, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz4c, this, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz5c, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz1c, this, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz2c, this, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz3c, this, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz4c, this, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz5c, this, 0, 0, 0, 0, 0);
+ // Test schedule of const methods
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar0c, this);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar1c, this, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar2c, this, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar3c, this, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar4c, this, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar5c, this, 0, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz1c, this, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz2c, this, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz3c, this, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz4c, this, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz5c, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar0c, this);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar1c, this, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar2c, this, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar3c, this, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar4c, this, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar5c, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz1c, this, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz2c, this, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz3c, this, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz4c, this, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz5c, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar0c, this);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar1c, this, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar2c, this, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar3c, this, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar4c, this, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar5c, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz1c, this, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz2c, this, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz3c, this, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz4c, this, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz5c, this, 0, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz1c, this, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz2c, this, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz3c, this, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz4c, this, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz5c, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz1c, this, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz2c, this, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz3c, this, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz4c, this, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz5c, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz1c, this, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz2c, this, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz3c, this, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz4c, this, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz5c, this, 0, 0, 0, 0, 0);
- Simulator::Run ();
- Simulator::Destroy ();
-}
-
-bool
-SimulatorTests::RunTests (void)
-{
- bool result = true;
+ // Test of schedule const methods with Ptr<> pointers
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar0c, Ptr<const SimulatorTemplateTestCase> (this));
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar1c, Ptr<const SimulatorTemplateTestCase> (this), 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar2c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar3c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar4c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar5c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar0c, Ptr<const SimulatorTemplateTestCase> (this));
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar1c, Ptr<const SimulatorTemplateTestCase> (this), 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar2c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar3c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar4c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar5c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar0c, Ptr<const SimulatorTemplateTestCase> (this));
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar1c, Ptr<const SimulatorTemplateTestCase> (this), 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar2c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar3c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar4c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar5c, Ptr<const SimulatorTemplateTestCase> (this), 0, 0, 0, 0, 0);
- Simulator::Destroy ();
- Simulator::SetScheduler (CreateObject<ListScheduler> ());
- if (!RunOneTest ())
- {
- result = false;
- }
- Simulator::Destroy ();
- Simulator::SetScheduler (CreateObject<HeapScheduler> ());
- if (!RunOneTest ())
- {
- result = false;
- }
- Simulator::Destroy ();
- Simulator::SetScheduler (CreateObject<MapScheduler> ());
- if (!RunOneTest ())
- {
- result = false;
- }
- Simulator::Destroy ();
- Simulator::SetScheduler (CreateObject<CalendarScheduler> ());
- if (!RunOneTest ())
- {
- result = false;
- }
- Simulator::Destroy ();
-
- Simulator::SetScheduler (CreateObject<Ns2CalendarScheduler> ());
- if (!RunOneTest ())
- {
- result = false;
- }
- Simulator::Destroy ();
-
+ // Test schedule of raw functions
Simulator::Schedule (Seconds (0.0), &foo0);
Simulator::Schedule (Seconds (0.0), &foo1, 0);
Simulator::Schedule (Seconds (0.0), &foo2, 0, 0);
@@ -777,23 +631,6 @@
Simulator::Schedule (Seconds (0.0), &cber3, 0, 0, 0);
Simulator::Schedule (Seconds (0.0), &cber4, 0, 0, 0, 0);
Simulator::Schedule (Seconds (0.0), &cber5, 0, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0, this);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1, this, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2, this, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3, this, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4, this, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5, this, 0, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0, Ptr<SimulatorTests> (this));
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz1, this, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz2, this, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz3, this, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz4, this, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz5, this, 0, 0, 0, 0, 0);
Simulator::ScheduleNow (&foo0);
Simulator::ScheduleNow (&foo1, 0);
Simulator::ScheduleNow (&foo2, 0, 0);
@@ -805,23 +642,6 @@
Simulator::ScheduleNow (&cber3, 0, 0, 0);
Simulator::ScheduleNow (&cber4, 0, 0, 0, 0);
Simulator::ScheduleNow (&cber5, 0, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar0, this);
- Simulator::ScheduleNow (&SimulatorTests::bar1, this, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar2, this, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar3, this, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar4, this, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar5, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz1, this, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz2, this, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz3, this, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz4, this, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::cbaz5, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar0, Ptr<SimulatorTests> (this));
- Simulator::ScheduleNow (&SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0);
- Simulator::ScheduleNow (&SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0);
Simulator::ScheduleDestroy (&foo0);
Simulator::ScheduleDestroy (&foo1, 0);
Simulator::ScheduleDestroy (&foo2, 0, 0);
@@ -833,96 +653,120 @@
Simulator::ScheduleDestroy (&cber3, 0, 0, 0);
Simulator::ScheduleDestroy (&cber4, 0, 0, 0, 0);
Simulator::ScheduleDestroy (&cber5, 0, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar0, this);
- Simulator::ScheduleDestroy (&SimulatorTests::bar1, this, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar2, this, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar3, this, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar4, this, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar5, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz1, this, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz2, this, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz3, this, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz4, this, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::cbaz5, this, 0, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar0, Ptr<SimulatorTests> (this));
- Simulator::ScheduleDestroy (&SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0);
+
+
+ // Test schedule of normal member methods
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar0, this);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar1, this, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar2, this, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar3, this, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar4, this, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar5, this, 0, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz1, this, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz2, this, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz3, this, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz4, this, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::cbaz5, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar0, this);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar1, this, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar2, this, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar3, this, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar4, this, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar5, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz1, this, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz2, this, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz3, this, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz4, this, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::cbaz5, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar0, this);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar1, this, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar2, this, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar3, this, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar4, this, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar5, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz1, this, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz2, this, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz3, this, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz4, this, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::cbaz5, this, 0, 0, 0, 0, 0);
+
+
+ // test schedule of normal methods with Ptr<> pointers
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar0, Ptr<SimulatorTemplateTestCase> (this));
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar1, Ptr<SimulatorTemplateTestCase> (this), 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar2, Ptr<SimulatorTemplateTestCase> (this), 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar3, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar4, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::bar5, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar0, Ptr<SimulatorTemplateTestCase> (this));
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar1, Ptr<SimulatorTemplateTestCase> (this), 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar2, Ptr<SimulatorTemplateTestCase> (this), 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar3, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar4, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::bar5, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar0, Ptr<SimulatorTemplateTestCase> (this));
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar1, Ptr<SimulatorTemplateTestCase> (this), 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar2, Ptr<SimulatorTemplateTestCase> (this), 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar3, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar4, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::bar5, Ptr<SimulatorTemplateTestCase> (this), 0, 0, 0, 0, 0);
// the code below does not compile, as expected.
//Simulator::Schedule (Seconds (0.0), &cber1, 0.0);
-#if 1
+
+ // This code appears to be duplicate test code.
Simulator::Schedule (Seconds (0.0), &ber1, 0);
Simulator::Schedule (Seconds (0.0), &ber2, 0, 0);
Simulator::Schedule (Seconds (0.0), &ber3, 0, 0, 0);
Simulator::Schedule (Seconds (0.0), &ber4, 0, 0, 0, 0);
Simulator::Schedule (Seconds (0.0), &ber5, 0, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz1, this, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz2, this, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz3, this, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz4, this, 0, 0, 0, 0);
- Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz5, this, 0, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz1, this, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz2, this, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz3, this, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz4, this, 0, 0, 0, 0);
+ Simulator::Schedule (Seconds (0.0), &SimulatorTemplateTestCase::baz5, this, 0, 0, 0, 0, 0);
Simulator::ScheduleNow (&ber1, 0);
Simulator::ScheduleNow (&ber2, 0, 0);
Simulator::ScheduleNow (&ber3, 0, 0, 0);
Simulator::ScheduleNow (&ber4, 0, 0, 0, 0);
Simulator::ScheduleNow (&ber5, 0, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz1, this, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz2, this, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz3, this, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz4, this, 0, 0, 0, 0);
- Simulator::ScheduleNow (&SimulatorTests::baz5, this, 0, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz1, this, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz2, this, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz3, this, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz4, this, 0, 0, 0, 0);
+ Simulator::ScheduleNow (&SimulatorTemplateTestCase::baz5, this, 0, 0, 0, 0, 0);
Simulator::ScheduleDestroy (&ber1, 0);
Simulator::ScheduleDestroy (&ber2, 0, 0);
Simulator::ScheduleDestroy (&ber3, 0, 0, 0);
Simulator::ScheduleDestroy (&ber4, 0, 0, 0, 0);
Simulator::ScheduleDestroy (&ber5, 0, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz1, this, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz2, this, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz3, this, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz4, this, 0, 0, 0, 0);
- Simulator::ScheduleDestroy (&SimulatorTests::baz5, this, 0, 0, 0, 0, 0);
-#endif
-
- RunTestsConst ();
-
- EventId nowId = Simulator::ScheduleNow (&foo0);
- m_destroyId = Simulator::ScheduleDestroy (&SimulatorTests::destroy, this);
- NS_TEST_ASSERT (!m_destroyId.IsExpired ());
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz1, this, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz2, this, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz3, this, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz4, this, 0, 0, 0, 0);
+ Simulator::ScheduleDestroy (&SimulatorTemplateTestCase::baz5, this, 0, 0, 0, 0, 0);
- Simulator::Run ();
- m_destroy = false;
- Simulator::Destroy ();
- NS_TEST_ASSERT (m_destroy);
-
- EventId anId = Simulator::ScheduleNow (&foo0);
- EventId anotherId = anId;
- NS_TEST_ASSERT (!(anId.IsExpired () || anotherId.IsExpired ()));
-
- Simulator::Remove (anId);
- NS_TEST_ASSERT (anId.IsExpired ());
- NS_TEST_ASSERT (anotherId.IsExpired ());
Simulator::Run ();
Simulator::Destroy ();
- Simulator::Schedule (Seconds (10.0), &SimulatorTests::baz1, this, 0);
- Simulator::Stop (Seconds (1.0));
- Simulator::Run ();
- Simulator::Destroy ();
-
- return result;
+ return false;
}
-SimulatorTests gSimulatorTests;
-
-}; // namespace ns3
+class SimulatorTestSuite : public TestSuite
+{
+public:
+ SimulatorTestSuite ()
+ : TestSuite ("simulator")
+ {
+ AddTestCase (new SimulatorEventsTestCase (CreateObject<ListScheduler> ()));
+ AddTestCase (new SimulatorEventsTestCase (CreateObject<MapScheduler> ()));
+ AddTestCase (new SimulatorEventsTestCase (CreateObject<HeapScheduler> ()));
+ AddTestCase (new SimulatorEventsTestCase (CreateObject<CalendarScheduler> ()));
+ AddTestCase (new SimulatorEventsTestCase (CreateObject<Ns2CalendarScheduler> ()));
+ }
+} g_simulatorTestSuite;
-#endif /* RUN_SELF_TESTS */
-
-
-
+} // namespace ns3