diff options
Diffstat (limited to 'ipc/ipdl/test/cxx/TestBadActor.h')
-rw-r--r-- | ipc/ipdl/test/cxx/TestBadActor.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/ipc/ipdl/test/cxx/TestBadActor.h b/ipc/ipdl/test/cxx/TestBadActor.h new file mode 100644 index 000000000..9b1258ff6 --- /dev/null +++ b/ipc/ipdl/test/cxx/TestBadActor.h @@ -0,0 +1,91 @@ +#ifndef mozilla__ipdltest_TestBadActor_h +#define mozilla__ipdltest_TestBadActor_h + +#include "mozilla/_ipdltest/IPDLUnitTests.h" + +#include "mozilla/_ipdltest/PTestBadActorParent.h" +#include "mozilla/_ipdltest/PTestBadActorChild.h" + +#include "mozilla/_ipdltest/PTestBadActorSubParent.h" +#include "mozilla/_ipdltest/PTestBadActorSubChild.h" + +namespace mozilla { +namespace _ipdltest { + +class TestBadActorParent + : public PTestBadActorParent +{ +public: + TestBadActorParent() { } + virtual ~TestBadActorParent() { } + + static bool RunTestInProcesses() { return true; } + static bool RunTestInThreads() { return false; } + + void Main(); + +protected: + virtual void ActorDestroy(ActorDestroyReason why) override + { + if (AbnormalShutdown != why) + fail("unexpected destruction"); + passed("ok"); + QuitParent(); + } + + virtual PTestBadActorSubParent* + AllocPTestBadActorSubParent(); + + virtual bool + DeallocPTestBadActorSubParent(PTestBadActorSubParent* actor) { + delete actor; + return true; + } +}; + +class TestBadActorSubParent + : public PTestBadActorSubParent +{ +public: + TestBadActorSubParent() { } + virtual ~TestBadActorSubParent() { } + +protected: + virtual void ActorDestroy(ActorDestroyReason why) override {} + virtual bool RecvPing(); +}; + +class TestBadActorChild + : public PTestBadActorChild +{ +public: + TestBadActorChild() { } + virtual ~TestBadActorChild() { } + +protected: + virtual PTestBadActorSubChild* + AllocPTestBadActorSubChild(); + + virtual bool + DeallocPTestBadActorSubChild(PTestBadActorSubChild* actor) + { + delete actor; + return true; + } + + virtual bool + RecvPTestBadActorSubConstructor(PTestBadActorSubChild* actor); +}; + +class TestBadActorSubChild + : public PTestBadActorSubChild +{ +public: + TestBadActorSubChild() { } + virtual ~TestBadActorSubChild() { } +}; + +} // namespace _ipdltest +} // namespace mozilla + +#endif // mozilla__ipdltest_TestBadActor_h |