summaryrefslogtreecommitdiffstats
path: root/ipc/ipdl/test/gtest/PTestCancel.ipdl
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/ipdl/test/gtest/PTestCancel.ipdl')
-rw-r--r--ipc/ipdl/test/gtest/PTestCancel.ipdl39
1 files changed, 39 insertions, 0 deletions
diff --git a/ipc/ipdl/test/gtest/PTestCancel.ipdl b/ipc/ipdl/test/gtest/PTestCancel.ipdl
new file mode 100644
index 0000000000..b0af04bae7
--- /dev/null
+++ b/ipc/ipdl/test/gtest/PTestCancel.ipdl
@@ -0,0 +1,39 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+namespace mozilla {
+namespace _ipdltest {
+
+[NestedUpTo=inside_sync, ChildProc=any, ChildImpl=virtual, ParentImpl=virtual]
+sync protocol PTestCancel
+{
+ // Immediate Cancel: child sync function cancels immediately, both ends check after cancellation.
+child:
+ [Nested=inside_sync] sync ImmediateCancel();
+
+
+ // Nested Cancel: child nested sync function cancels
+child:
+ async StartNestedCancel();
+ [Nested=inside_sync] sync NestedCancel();
+parent:
+ [Nested=inside_sync] sync CallNestedCancel();
+
+
+ // Nested Cancel Parent: parent nested sync function cancels
+child:
+ [Nested=inside_sync] sync StartNestedCancelParent();
+parent:
+ [Nested=inside_sync] sync NestedCancelParent();
+
+
+// Common functions to check that sync messages still work.
+child:
+ [Nested=inside_sync] sync CheckChild() returns (uint32_t reply);
+parent:
+ [Nested=inside_sync] sync CheckParent() returns (uint32_t reply);
+};
+
+} // namespace _ipdltest
+} // namespace mozilla