|
1 #ifndef mozilla__ipdltest_TestRPC_h |
|
2 #define mozilla__ipdltest_TestRPC_h 1 |
|
3 |
|
4 #include "mozilla/_ipdltest/IPDLUnitTests.h" |
|
5 |
|
6 #include "mozilla/_ipdltest/PTestRPCParent.h" |
|
7 #include "mozilla/_ipdltest/PTestRPCChild.h" |
|
8 |
|
9 namespace mozilla { |
|
10 namespace _ipdltest { |
|
11 |
|
12 |
|
13 class TestRPCParent : |
|
14 public PTestRPCParent |
|
15 { |
|
16 public: |
|
17 TestRPCParent(); |
|
18 virtual ~TestRPCParent(); |
|
19 |
|
20 static bool RunTestInProcesses() { return true; } |
|
21 static bool RunTestInThreads() { return true; } |
|
22 |
|
23 void Main(); |
|
24 |
|
25 bool AnswerTest1_Start(uint32_t* aResult) MOZ_OVERRIDE; |
|
26 bool AnswerTest1_InnerEvent(uint32_t* aResult) MOZ_OVERRIDE; |
|
27 bool RecvTest2_Start() MOZ_OVERRIDE; |
|
28 bool AnswerTest2_OutOfOrder() MOZ_OVERRIDE; |
|
29 bool RecvTest3_Start(uint32_t* aResult) MOZ_OVERRIDE; |
|
30 bool AnswerTest3_InnerEvent(uint32_t* aResult) MOZ_OVERRIDE; |
|
31 bool AnswerTest4_Start(uint32_t* aResult) MOZ_OVERRIDE; |
|
32 bool AnswerTest4_Inner(uint32_t* aResult) MOZ_OVERRIDE; |
|
33 |
|
34 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE |
|
35 { |
|
36 if (NormalShutdown != why) |
|
37 fail("unexpected destruction!"); |
|
38 if (!reentered_) |
|
39 fail("never processed raced RPC call!"); |
|
40 if (!resolved_first_cpow_) |
|
41 fail("never resolved first CPOW!"); |
|
42 passed("ok"); |
|
43 QuitParent(); |
|
44 } |
|
45 |
|
46 private: |
|
47 bool reentered_; |
|
48 bool resolved_first_cpow_; |
|
49 }; |
|
50 |
|
51 |
|
52 class TestRPCChild : |
|
53 public PTestRPCChild |
|
54 { |
|
55 public: |
|
56 TestRPCChild(); |
|
57 virtual ~TestRPCChild(); |
|
58 |
|
59 bool RecvStart() MOZ_OVERRIDE; |
|
60 bool AnswerTest1_InnerQuery(uint32_t* aResult) MOZ_OVERRIDE; |
|
61 bool AnswerTest1_NoReenter(uint32_t* aResult) MOZ_OVERRIDE; |
|
62 bool AnswerTest2_FirstUrgent() MOZ_OVERRIDE; |
|
63 bool AnswerTest2_SecondUrgent() MOZ_OVERRIDE; |
|
64 bool AnswerTest3_WakeUp(uint32_t* aResult) MOZ_OVERRIDE; |
|
65 bool AnswerTest4_WakeUp(uint32_t* aResult) MOZ_OVERRIDE; |
|
66 |
|
67 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE |
|
68 { |
|
69 if (NormalShutdown != why) |
|
70 fail("unexpected destruction!"); |
|
71 QuitChild(); |
|
72 } |
|
73 }; |
|
74 |
|
75 |
|
76 } // namespace _ipdltest |
|
77 } // namespace mozilla |
|
78 |
|
79 |
|
80 #endif // ifndef mozilla__ipdltest_TestRPC_h |