michael@0: #ifndef mozilla__ipdltest_TestMultiMgrs_h michael@0: #define mozilla__ipdltest_TestMultiMgrs_h 1 michael@0: michael@0: #include "mozilla/_ipdltest/IPDLUnitTests.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestMultiMgrsParent.h" michael@0: #include "mozilla/_ipdltest/PTestMultiMgrsChild.h" michael@0: #include "mozilla/_ipdltest/PTestMultiMgrsBottomParent.h" michael@0: #include "mozilla/_ipdltest/PTestMultiMgrsBottomChild.h" michael@0: #include "mozilla/_ipdltest/PTestMultiMgrsLeftParent.h" michael@0: #include "mozilla/_ipdltest/PTestMultiMgrsLeftChild.h" michael@0: #include "mozilla/_ipdltest/PTestMultiMgrsRightParent.h" michael@0: #include "mozilla/_ipdltest/PTestMultiMgrsRightChild.h" michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // Parent side michael@0: // michael@0: michael@0: class TestMultiMgrsBottomParent : michael@0: public PTestMultiMgrsBottomParent michael@0: { michael@0: public: michael@0: TestMultiMgrsBottomParent() { } michael@0: virtual ~TestMultiMgrsBottomParent() { } michael@0: }; michael@0: michael@0: class TestMultiMgrsLeftParent : michael@0: public PTestMultiMgrsLeftParent michael@0: { michael@0: public: michael@0: TestMultiMgrsLeftParent() { } michael@0: virtual ~TestMultiMgrsLeftParent() { } michael@0: michael@0: bool HasChild(TestMultiMgrsBottomParent* c) michael@0: { michael@0: return ManagedPTestMultiMgrsBottomParent().Contains(c); michael@0: } michael@0: michael@0: protected: michael@0: virtual PTestMultiMgrsBottomParent* AllocPTestMultiMgrsBottomParent() MOZ_OVERRIDE michael@0: { michael@0: return new TestMultiMgrsBottomParent(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestMultiMgrsBottomParent(PTestMultiMgrsBottomParent* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: }; michael@0: michael@0: class TestMultiMgrsRightParent : michael@0: public PTestMultiMgrsRightParent michael@0: { michael@0: public: michael@0: TestMultiMgrsRightParent() { } michael@0: virtual ~TestMultiMgrsRightParent() { } michael@0: michael@0: bool HasChild(TestMultiMgrsBottomParent* c) michael@0: { michael@0: return ManagedPTestMultiMgrsBottomParent().Contains(c); michael@0: } michael@0: michael@0: protected: michael@0: virtual PTestMultiMgrsBottomParent* AllocPTestMultiMgrsBottomParent() MOZ_OVERRIDE michael@0: { michael@0: return new TestMultiMgrsBottomParent(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestMultiMgrsBottomParent(PTestMultiMgrsBottomParent* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: }; michael@0: michael@0: class TestMultiMgrsParent : michael@0: public PTestMultiMgrsParent michael@0: { michael@0: public: michael@0: TestMultiMgrsParent() { } michael@0: virtual ~TestMultiMgrsParent() { } michael@0: michael@0: static bool RunTestInProcesses() { return true; } michael@0: static bool RunTestInThreads() { return true; } michael@0: michael@0: void Main(); michael@0: michael@0: protected: michael@0: virtual bool RecvOK() MOZ_OVERRIDE; michael@0: michael@0: virtual PTestMultiMgrsLeftParent* AllocPTestMultiMgrsLeftParent() MOZ_OVERRIDE michael@0: { michael@0: return new TestMultiMgrsLeftParent(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestMultiMgrsLeftParent(PTestMultiMgrsLeftParent* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: michael@0: virtual PTestMultiMgrsRightParent* AllocPTestMultiMgrsRightParent() MOZ_OVERRIDE michael@0: { michael@0: return new TestMultiMgrsRightParent(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestMultiMgrsRightParent(PTestMultiMgrsRightParent* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE michael@0: { michael@0: if (NormalShutdown != why) michael@0: fail("unexpected destruction!"); michael@0: passed("ok"); michael@0: QuitParent(); michael@0: } michael@0: }; michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // Child side michael@0: // michael@0: michael@0: class TestMultiMgrsBottomChild : michael@0: public PTestMultiMgrsBottomChild michael@0: { michael@0: public: michael@0: TestMultiMgrsBottomChild() { } michael@0: virtual ~TestMultiMgrsBottomChild() { } michael@0: }; michael@0: michael@0: class TestMultiMgrsLeftChild : michael@0: public PTestMultiMgrsLeftChild michael@0: { michael@0: public: michael@0: TestMultiMgrsLeftChild() { } michael@0: virtual ~TestMultiMgrsLeftChild() { } michael@0: michael@0: bool HasChild(PTestMultiMgrsBottomChild* c) michael@0: { michael@0: return ManagedPTestMultiMgrsBottomChild().Contains(c); michael@0: } michael@0: michael@0: protected: michael@0: virtual bool RecvPTestMultiMgrsBottomConstructor(PTestMultiMgrsBottomChild* actor) MOZ_OVERRIDE; michael@0: michael@0: virtual PTestMultiMgrsBottomChild* AllocPTestMultiMgrsBottomChild() MOZ_OVERRIDE michael@0: { michael@0: return new TestMultiMgrsBottomChild(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestMultiMgrsBottomChild(PTestMultiMgrsBottomChild* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: }; michael@0: michael@0: class TestMultiMgrsRightChild : michael@0: public PTestMultiMgrsRightChild michael@0: { michael@0: public: michael@0: TestMultiMgrsRightChild() { } michael@0: virtual ~TestMultiMgrsRightChild() { } michael@0: michael@0: bool HasChild(PTestMultiMgrsBottomChild* c) michael@0: { michael@0: return ManagedPTestMultiMgrsBottomChild().Contains(c); michael@0: } michael@0: michael@0: protected: michael@0: virtual bool RecvPTestMultiMgrsBottomConstructor(PTestMultiMgrsBottomChild* actor) MOZ_OVERRIDE; michael@0: michael@0: virtual PTestMultiMgrsBottomChild* AllocPTestMultiMgrsBottomChild() MOZ_OVERRIDE michael@0: { michael@0: return new TestMultiMgrsBottomChild(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestMultiMgrsBottomChild(PTestMultiMgrsBottomChild* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: }; michael@0: michael@0: class TestMultiMgrsChild : michael@0: public PTestMultiMgrsChild michael@0: { michael@0: public: michael@0: TestMultiMgrsChild() { } michael@0: virtual ~TestMultiMgrsChild() { } michael@0: michael@0: void Main(); michael@0: michael@0: PTestMultiMgrsBottomChild* mBottomL; michael@0: PTestMultiMgrsBottomChild* mBottomR; michael@0: michael@0: protected: michael@0: virtual bool RecvCheck() MOZ_OVERRIDE; michael@0: michael@0: virtual PTestMultiMgrsLeftChild* AllocPTestMultiMgrsLeftChild() MOZ_OVERRIDE michael@0: { michael@0: return new TestMultiMgrsLeftChild(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestMultiMgrsLeftChild(PTestMultiMgrsLeftChild* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: michael@0: virtual PTestMultiMgrsRightChild* AllocPTestMultiMgrsRightChild() MOZ_OVERRIDE michael@0: { michael@0: return new TestMultiMgrsRightChild(); michael@0: } michael@0: michael@0: virtual bool DeallocPTestMultiMgrsRightChild(PTestMultiMgrsRightChild* actor) MOZ_OVERRIDE michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE michael@0: { michael@0: if (NormalShutdown != why) michael@0: fail("unexpected destruction!"); michael@0: passed("ok"); michael@0: QuitChild(); michael@0: } michael@0: }; michael@0: michael@0: michael@0: } // namespace _ipdltest michael@0: } // namespace mozilla michael@0: michael@0: michael@0: #endif // ifndef mozilla__ipdltest_TestMultiMgrs_h