michael@0: #ifndef mozilla__ipdltest_TestBadActor_h michael@0: #define mozilla__ipdltest_TestBadActor_h michael@0: michael@0: #include "mozilla/_ipdltest/IPDLUnitTests.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestBadActorParent.h" michael@0: #include "mozilla/_ipdltest/PTestBadActorChild.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestBadActorSubParent.h" michael@0: #include "mozilla/_ipdltest/PTestBadActorSubChild.h" michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: class TestBadActorParent michael@0: : public PTestBadActorParent michael@0: { michael@0: public: michael@0: TestBadActorParent() { } michael@0: virtual ~TestBadActorParent() { } michael@0: michael@0: static bool RunTestInProcesses() { return true; } michael@0: static bool RunTestInThreads() { return false; } michael@0: michael@0: void Main(); michael@0: michael@0: protected: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE michael@0: { michael@0: if (AbnormalShutdown != why) michael@0: fail("unexpected destruction"); michael@0: passed("ok"); michael@0: QuitParent(); michael@0: } michael@0: michael@0: virtual PTestBadActorSubParent* michael@0: AllocPTestBadActorSubParent(); michael@0: michael@0: virtual bool michael@0: DeallocPTestBadActorSubParent(PTestBadActorSubParent* actor) { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: }; michael@0: michael@0: class TestBadActorSubParent michael@0: : public PTestBadActorSubParent michael@0: { michael@0: public: michael@0: TestBadActorSubParent() { } michael@0: virtual ~TestBadActorSubParent() { } michael@0: michael@0: protected: michael@0: virtual bool RecvPing(); michael@0: }; michael@0: michael@0: class TestBadActorChild michael@0: : public PTestBadActorChild michael@0: { michael@0: public: michael@0: TestBadActorChild() { } michael@0: virtual ~TestBadActorChild() { } michael@0: michael@0: protected: michael@0: virtual PTestBadActorSubChild* michael@0: AllocPTestBadActorSubChild(); michael@0: michael@0: virtual bool michael@0: DeallocPTestBadActorSubChild(PTestBadActorSubChild* actor) michael@0: { michael@0: delete actor; michael@0: return true; michael@0: } michael@0: michael@0: virtual bool michael@0: RecvPTestBadActorSubConstructor(PTestBadActorSubChild* actor); michael@0: }; michael@0: michael@0: class TestBadActorSubChild michael@0: : public PTestBadActorSubChild michael@0: { michael@0: public: michael@0: TestBadActorSubChild() { } michael@0: virtual ~TestBadActorSubChild() { } michael@0: }; michael@0: michael@0: } // namespace _ipdltest michael@0: } // namespace mozilla michael@0: michael@0: #endif // mozilla__ipdltest_TestBadActor_h