From 96b47442ea66a3662127c93afcaa46e914ee4359 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Sun, 24 Feb 2008 20:18:02 +0100 Subject: [PATCH] test the ValueTraceSource with an arbitrary class. --- src/core/attribute-test.cc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/core/attribute-test.cc b/src/core/attribute-test.cc index 480fe13d7..7bcddc943 100644 --- a/src/core/attribute-test.cc +++ b/src/core/attribute-test.cc @@ -13,6 +13,29 @@ namespace ns3 { +class ValueClassTest +{ +public: + ValueClassTest () {} + VALUE_HELPER_HEADER_1 (ValueClassTest); +private: + int m_v; +}; +bool operator != (const ValueClassTest &a, const ValueClassTest &b) +{ + return true; +} +std::ostream & operator << (std::ostream &os, ValueClassTest v) +{ + return os; +} +std::istream & operator >> (std::istream &is, ValueClassTest &v) +{ + return is; +} +VALUE_HELPER_HEADER_2 (ValueClassTest); +VALUE_HELPER_CPP (ValueClassTest); + class AttributeTest : public Test { public: @@ -25,8 +48,12 @@ private: void NotifySource2 (double a, int b, float c) { m_got2 = a; } + void NotifySourceValue (ValueClassTest old, ValueClassTest n) { + m_gotValue = n; + } int64_t m_got1; double m_got2; + ValueClassTest m_gotValue; }; class Derived : public Object @@ -113,10 +140,16 @@ public: MakeIntegerAccessor (&AttributeObjectTest::DoSetIntSrc, &AttributeObjectTest::DoGetIntSrc), MakeIntegerChecker ()) + .AddAttribute ("ValueClassSource", "help text", + ValueClassTest (), + MakeValueClassTestAccessor (&AttributeObjectTest::m_valueSrc), + MakeValueClassTestChecker ()) .AddTraceSource ("Source1", "help test", MakeTraceSourceAccessor (&AttributeObjectTest::m_intSrc1)) .AddTraceSource ("Source2", "help text", MakeTraceSourceAccessor (&AttributeObjectTest::m_cb)) + .AddTraceSource ("ValueSource", "help text", + MakeTraceSourceAccessor (&AttributeObjectTest::m_valueSrc)) ; return tid; @@ -173,6 +206,7 @@ private: ValueTraceSource m_intSrc1; ValueTraceSource m_intSrc2; EventTraceSource m_cb; + ValueTraceSource m_valueSrc; }; @@ -422,6 +456,8 @@ AttributeTest::RunTests (void) NS_TEST_ASSERT (p->TraceSourceDisconnect ("Source2", MakeCallback (&AttributeTest::NotifySource2, this))); p->InvokeCb (-1.0, -5, 0.0); NS_TEST_ASSERT_EQUAL (m_got2, 1.0); + + NS_TEST_ASSERT (p->TraceSourceConnect ("ValueSource", MakeCallback (&AttributeTest::NotifySourceValue, this)));