michael@0: include protocol PTestShutdownSub; michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: intr protocol PTestShutdown { michael@0: manages PTestShutdownSub; michael@0: michael@0: child: michael@0: Start(); michael@0: michael@0: parent: michael@0: // NB: we test deletion and crashing only, not shutdown, because michael@0: // crashing is the same code path as shutdown, and other IPDL unit michael@0: // tests check shutdown semantics michael@0: PTestShutdownSub(bool expectCrash); michael@0: michael@0: // Used to synchronize between parent and child, to avoid races michael@0: // around flushing socket write queues michael@0: sync Sync(); michael@0: michael@0: __delete__(); michael@0: michael@0: michael@0: state START: michael@0: send Start goto TESTING; michael@0: michael@0: state TESTING: michael@0: recv PTestShutdownSub goto TESTING; michael@0: recv Sync goto DYING; michael@0: michael@0: state DYING: michael@0: recv __delete__; michael@0: }; michael@0: michael@0: } // namespace _ipdltest michael@0: } // namespace mozilla