summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/cxx/TestDesc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/ipdl/test/cxx/TestDesc.cpp')
-rw-r--r--ipc/ipdl/test/cxx/TestDesc.cpp105
1 files changed, 105 insertions, 0 deletions
diff --git a/ipc/ipdl/test/cxx/TestDesc.cpp b/ipc/ipdl/test/cxx/TestDesc.cpp
new file mode 100644
index 000000000..696e5a4c5
--- /dev/null
+++ b/ipc/ipdl/test/cxx/TestDesc.cpp
@@ -0,0 +1,105 @@
+#include "TestDesc.h"
+
+#include "IPDLUnitTests.h" // fail etc.
+
+namespace mozilla {
+namespace _ipdltest {
+
+//-----------------------------------------------------------------------------
+// parent
+void
+TestDescParent::Main()
+{
+ PTestDescSubParent* p = CallPTestDescSubConstructor(0);
+ if (!p)
+ fail("can't allocate Sub");
+
+ PTestDescSubsubParent* pp = p->CallPTestDescSubsubConstructor();
+ if (!pp)
+ fail("can't allocate Subsub");
+
+ if (!SendTest(pp))
+ fail("can't send Subsub");
+}
+
+bool
+TestDescParent::RecvOk(PTestDescSubsubParent* a)
+{
+ if (!a)
+ fail("didn't receive Subsub");
+
+ if (!PTestDescSubsubParent::Call__delete__(a))
+ fail("deleting Subsub");
+
+ Close();
+
+ return true;
+}
+
+
+PTestDescSubParent*
+TestDescParent::AllocPTestDescSubParent(PTestDescSubsubParent* dummy) {
+ if (dummy)
+ fail("actor supposed to be null");
+ return new TestDescSubParent();
+}
+bool
+TestDescParent::DeallocPTestDescSubParent(PTestDescSubParent* actor)
+{
+ delete actor;
+ return true;
+}
+
+PTestDescSubsubParent*
+TestDescSubParent::AllocPTestDescSubsubParent()
+{
+ return new TestDescSubsubParent();
+}
+bool
+TestDescSubParent::DeallocPTestDescSubsubParent(PTestDescSubsubParent* actor)
+{
+ delete actor;
+ return true;
+}
+
+
+//-----------------------------------------------------------------------------
+// child
+
+bool
+TestDescChild::RecvTest(PTestDescSubsubChild* a)
+{
+ if (!a)
+ fail("didn't receive Subsub");
+ if (!SendOk(a))
+ fail("couldn't send Ok()");
+ return true;
+}
+
+PTestDescSubChild*
+TestDescChild::AllocPTestDescSubChild(PTestDescSubsubChild* dummy) {
+ if (dummy)
+ fail("actor supposed to be null");
+ return new TestDescSubChild();
+}
+bool
+TestDescChild::DeallocPTestDescSubChild(PTestDescSubChild* actor)
+{
+ delete actor;
+ return true;
+}
+
+PTestDescSubsubChild*
+TestDescSubChild::AllocPTestDescSubsubChild()
+{
+ return new TestDescSubsubChild();
+}
+bool
+TestDescSubChild::DeallocPTestDescSubsubChild(PTestDescSubsubChild* actor)
+{
+ delete actor;
+ return true;
+}
+
+} // namespace _ipdltest
+} // namespace mozilla