summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/cxx/TestDesc.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ipc/ipdl/test/cxx/TestDesc.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/ipc/ipdl/test/cxx/TestDesc.cpp b/ipc/ipdl/test/cxx/TestDesc.cpp
new file mode 100644
index 0000000000..2ae199457d
--- /dev/null
+++ b/ipc/ipdl/test/cxx/TestDesc.cpp
@@ -0,0 +1,78 @@
+#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");
+}
+
+mozilla::ipc::IPCResult TestDescParent::RecvOk(PTestDescSubsubParent* a) {
+ if (!a) fail("didn't receive Subsub");
+
+ if (!PTestDescSubsubParent::Call__delete__(a)) fail("deleting Subsub");
+
+ Close();
+
+ return IPC_OK();
+}
+
+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
+
+mozilla::ipc::IPCResult TestDescChild::RecvTest(PTestDescSubsubChild* a) {
+ if (!a) fail("didn't receive Subsub");
+ if (!SendOk(a)) fail("couldn't send Ok()");
+ return IPC_OK();
+}
+
+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