Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 #ifndef mozilla__ipdltest_TestRPC_h
2 #define mozilla__ipdltest_TestRPC_h 1
4 #include "mozilla/_ipdltest/IPDLUnitTests.h"
6 #include "mozilla/_ipdltest/PTestRPCParent.h"
7 #include "mozilla/_ipdltest/PTestRPCChild.h"
9 namespace mozilla {
10 namespace _ipdltest {
13 class TestRPCParent :
14 public PTestRPCParent
15 {
16 public:
17 TestRPCParent();
18 virtual ~TestRPCParent();
20 static bool RunTestInProcesses() { return true; }
21 static bool RunTestInThreads() { return true; }
23 void Main();
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;
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 }
46 private:
47 bool reentered_;
48 bool resolved_first_cpow_;
49 };
52 class TestRPCChild :
53 public PTestRPCChild
54 {
55 public:
56 TestRPCChild();
57 virtual ~TestRPCChild();
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;
67 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE
68 {
69 if (NormalShutdown != why)
70 fail("unexpected destruction!");
71 QuitChild();
72 }
73 };
76 } // namespace _ipdltest
77 } // namespace mozilla
80 #endif // ifndef mozilla__ipdltest_TestRPC_h