summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/cxx/TestDesc.h
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/ipdl/test/cxx/TestDesc.h')
-rw-r--r--ipc/ipdl/test/cxx/TestDesc.h128
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