michael@0: #ifndef mozilla_ipdltest_TestDesc_h michael@0: #define mozilla_ipdltest_TestDesc_h michael@0: michael@0: #include "mozilla/_ipdltest/IPDLUnitTests.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestDescParent.h" michael@0: #include "mozilla/_ipdltest/PTestDescChild.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestDescSubParent.h" michael@0: #include "mozilla/_ipdltest/PTestDescSubChild.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestDescSubsubParent.h" michael@0: #include "mozilla/_ipdltest/PTestDescSubsubChild.h" michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // Top-level michael@0: // michael@0: class TestDescParent : michael@0: public PTestDescParent michael@0: { michael@0: public: michael@0: TestDescParent() { } michael@0: virtual ~TestDescParent() { } 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: virtual bool RecvOk(PTestDescSubsubParent* a) MOZ_OVERRIDE; michael@0: michael@0: protected: michael@0: virtual PTestDescSubParent* AllocPTestDescSubParent(PTestDescSubsubParent*) MOZ_OVERRIDE; michael@0: virtual bool DeallocPTestDescSubParent(PTestDescSubParent* actor) MOZ_OVERRIDE; 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: class TestDescChild : michael@0: public PTestDescChild michael@0: { michael@0: public: michael@0: TestDescChild() { } michael@0: virtual ~TestDescChild() { } michael@0: michael@0: protected: michael@0: virtual PTestDescSubChild* AllocPTestDescSubChild(PTestDescSubsubChild*) MOZ_OVERRIDE; michael@0: michael@0: virtual bool DeallocPTestDescSubChild(PTestDescSubChild* actor) MOZ_OVERRIDE; michael@0: michael@0: virtual bool RecvTest(PTestDescSubsubChild* a) MOZ_OVERRIDE; 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: QuitChild(); michael@0: } michael@0: }; michael@0: michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // First descendent michael@0: // michael@0: class TestDescSubParent : michael@0: public PTestDescSubParent michael@0: { michael@0: public: michael@0: TestDescSubParent() { } michael@0: virtual ~TestDescSubParent() { } michael@0: michael@0: protected: michael@0: virtual PTestDescSubsubParent* AllocPTestDescSubsubParent() MOZ_OVERRIDE; michael@0: michael@0: virtual bool DeallocPTestDescSubsubParent(PTestDescSubsubParent* actor) MOZ_OVERRIDE; michael@0: }; michael@0: michael@0: michael@0: class TestDescSubChild : michael@0: public PTestDescSubChild michael@0: { michael@0: public: michael@0: TestDescSubChild() { } michael@0: virtual ~TestDescSubChild() { } michael@0: michael@0: protected: michael@0: virtual PTestDescSubsubChild* AllocPTestDescSubsubChild() MOZ_OVERRIDE; michael@0: virtual bool DeallocPTestDescSubsubChild(PTestDescSubsubChild* actor) MOZ_OVERRIDE; michael@0: }; michael@0: michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // Grand-descendent michael@0: // michael@0: class TestDescSubsubParent : michael@0: public PTestDescSubsubParent michael@0: { michael@0: public: michael@0: TestDescSubsubParent() { } michael@0: virtual ~TestDescSubsubParent() { } michael@0: }; michael@0: michael@0: class TestDescSubsubChild : michael@0: public PTestDescSubsubChild michael@0: { michael@0: public: michael@0: TestDescSubsubChild() { } michael@0: virtual ~TestDescSubsubChild() { } michael@0: }; michael@0: michael@0: michael@0: } michael@0: } michael@0: michael@0: #endif // ifndef mozilla_ipdltest_TestDesc_h