add extra test for object creation with multiple interfaces

Mathieu Lacage 2007-05-07 15:55:37 +02:00
parent 440479be65
commit 1808ad3c6d
1 changed files with 39 additions and 5 deletions

View File

@ -93,6 +93,21 @@ NsUnknownManager::Register (ClassId classId, CallbackBase *callback)
namespace { namespace {
class B : public ns3::NsUnknown
{
public:
static const ns3::Iid iid;
B ();
};
const ns3::Iid B::iid ("IB");
B::B ()
: NsUnknown (B::iid)
{}
class A : public ns3::NsUnknown class A : public ns3::NsUnknown
{ {
public: public:
@ -123,15 +138,23 @@ A::A ()
m_zeroInvoked (true), m_zeroInvoked (true),
m_oneBoolInvoked (false), m_oneBoolInvoked (false),
m_oneUi32Invoked (false) m_oneUi32Invoked (false)
{} {
B *b = new B ();
AddInterface (b);
b->Unref ();
}
A::A (bool b) A::A (bool bo)
: NsUnknown (A::iid), : NsUnknown (A::iid),
m_zeroInvoked (false), m_zeroInvoked (false),
m_oneBoolInvoked (true), m_oneBoolInvoked (true),
m_oneUi32Invoked (false), m_oneUi32Invoked (false),
m_bool (b) m_bool (bo)
{} {
B *b = new B ();
AddInterface (b);
b->Unref ();
}
A::A (uint32_t i) A::A (uint32_t i)
: NsUnknown (A::iid), : NsUnknown (A::iid),
@ -139,7 +162,11 @@ A::A (uint32_t i)
m_oneBoolInvoked (false), m_oneBoolInvoked (false),
m_oneUi32Invoked (true), m_oneUi32Invoked (true),
m_ui32 (i) m_ui32 (i)
{} {
B *b = new B ();
AddInterface (b);
b->Unref ();
}
} }
@ -205,6 +232,13 @@ NsUnknownManagerTest::RunTests (void)
} }
a->Unref (); a->Unref ();
B *b = NsUnknownManager::Create<B,uint32_t> (A::cidOneUi32, B::iid, 10);
if (b == 0)
{
ok = false;
}
b->Unref ();
return ok; return ok;
} }