michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: michael@0: intr protocol PTestStackHooks { michael@0: child: michael@0: async Start(); michael@0: michael@0: // These tests are more fruitful running child->parent, because michael@0: // children can send |sync| messages michael@0: parent: michael@0: async Async(); michael@0: sync Sync(); michael@0: intr Rpc(); michael@0: michael@0: both: michael@0: intr StackFrame(); michael@0: michael@0: parent: michael@0: __delete__(); michael@0: michael@0: michael@0: state START: michael@0: send Start goto TEST1; michael@0: michael@0: state TEST1: michael@0: recv Async goto TEST2; michael@0: michael@0: state TEST2: michael@0: recv Sync goto TEST3; michael@0: michael@0: state TEST3: michael@0: answer Rpc goto TEST4; michael@0: michael@0: state TEST4: michael@0: answer StackFrame goto TEST4_2; michael@0: state TEST4_2: michael@0: call StackFrame goto TEST4_3; michael@0: state TEST4_3: michael@0: recv Async goto TEST5; michael@0: michael@0: state TEST5: michael@0: answer StackFrame goto TEST5_2; michael@0: state TEST5_2: michael@0: call StackFrame goto TEST5_3; michael@0: state TEST5_3: michael@0: recv Sync goto DEAD; michael@0: michael@0: state DEAD: michael@0: recv __delete__; michael@0: }; michael@0: michael@0: michael@0: } // namespace mozilla michael@0: } // namespace _ipdltest