diff options
Diffstat (limited to 'ipc/ipdl/test/cxx/TestDesc.h')
-rw-r--r-- | ipc/ipdl/test/cxx/TestDesc.h | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/ipc/ipdl/test/cxx/TestDesc.h b/ipc/ipdl/test/cxx/TestDesc.h new file mode 100644 index 000000000..876de7201 --- /dev/null +++ b/ipc/ipdl/test/cxx/TestDesc.h @@ -0,0 +1,128 @@ +#ifndef mozilla_ipdltest_TestDesc_h +#define mozilla_ipdltest_TestDesc_h + +#include "mozilla/_ipdltest/IPDLUnitTests.h" + +#include "mozilla/_ipdltest/PTestDescParent.h" +#include "mozilla/_ipdltest/PTestDescChild.h" + +#include "mozilla/_ipdltest/PTestDescSubParent.h" +#include "mozilla/_ipdltest/PTestDescSubChild.h" + +#include "mozilla/_ipdltest/PTestDescSubsubParent.h" +#include "mozilla/_ipdltest/PTestDescSubsubChild.h" + +namespace mozilla { +namespace _ipdltest { + +//----------------------------------------------------------------------------- +// Top-level +// +class TestDescParent : + public PTestDescParent +{ +public: + TestDescParent() { } + virtual ~TestDescParent() { } + + static bool RunTestInProcesses() { return true; } + static bool RunTestInThreads() { return true; } + + void Main(); + + virtual bool RecvOk(PTestDescSubsubParent* a) override; + +protected: + virtual PTestDescSubParent* AllocPTestDescSubParent(PTestDescSubsubParent*) override; + virtual bool DeallocPTestDescSubParent(PTestDescSubParent* actor) override; + + virtual void ActorDestroy(ActorDestroyReason why) override + { + if (NormalShutdown != why) + fail("unexpected destruction!"); + passed("ok"); + QuitParent(); + } +}; + + +class TestDescChild : + public PTestDescChild +{ +public: + TestDescChild() { } + virtual ~TestDescChild() { } + +protected: + virtual PTestDescSubChild* AllocPTestDescSubChild(PTestDescSubsubChild*) override; + + virtual bool DeallocPTestDescSubChild(PTestDescSubChild* actor) override; + + virtual bool RecvTest(PTestDescSubsubChild* a) override; + + virtual void ActorDestroy(ActorDestroyReason why) override + { + if (NormalShutdown != why) + fail("unexpected destruction!"); + QuitChild(); + } +}; + + +//----------------------------------------------------------------------------- +// First descendent +// +class TestDescSubParent : + public PTestDescSubParent +{ +public: + TestDescSubParent() { } + virtual ~TestDescSubParent() { } + +protected: + virtual void ActorDestroy(ActorDestroyReason why) override {} + virtual PTestDescSubsubParent* AllocPTestDescSubsubParent() override; + virtual bool DeallocPTestDescSubsubParent(PTestDescSubsubParent* actor) override; +}; + + +class TestDescSubChild : + public PTestDescSubChild +{ +public: + TestDescSubChild() { } + virtual ~TestDescSubChild() { } + +protected: + virtual PTestDescSubsubChild* AllocPTestDescSubsubChild() override; + virtual bool DeallocPTestDescSubsubChild(PTestDescSubsubChild* actor) override; +}; + + +//----------------------------------------------------------------------------- +// Grand-descendent +// +class TestDescSubsubParent : + public PTestDescSubsubParent +{ +public: + TestDescSubsubParent() { } + virtual ~TestDescSubsubParent() { } + +protected: + virtual void ActorDestroy(ActorDestroyReason why) override {} +}; + +class TestDescSubsubChild : + public PTestDescSubsubChild +{ +public: + TestDescSubsubChild() { } + virtual ~TestDescSubsubChild() { } +}; + + +} +} + +#endif // ifndef mozilla_ipdltest_TestDesc_h |