ipc/ipdl/test/cxx/TestFailedCtor.h

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:58651749fff1
1 #ifndef mozilla_ipdltest_TestFailedCtor_h
2 #define mozilla_ipdltest_TestFailedCtor_h
3
4 #include "mozilla/_ipdltest/IPDLUnitTests.h"
5
6 #include "mozilla/_ipdltest/PTestFailedCtorParent.h"
7 #include "mozilla/_ipdltest/PTestFailedCtorChild.h"
8
9 #include "mozilla/_ipdltest/PTestFailedCtorSubParent.h"
10 #include "mozilla/_ipdltest/PTestFailedCtorSubChild.h"
11
12 #include "mozilla/_ipdltest/PTestFailedCtorSubsubParent.h"
13 #include "mozilla/_ipdltest/PTestFailedCtorSubsubChild.h"
14
15 namespace mozilla {
16 namespace _ipdltest {
17
18 //-----------------------------------------------------------------------------
19 // Top-level
20 //
21 class TestFailedCtorParent :
22 public PTestFailedCtorParent
23 {
24 public:
25 TestFailedCtorParent() { }
26 virtual ~TestFailedCtorParent() { }
27
28 static bool RunTestInProcesses() { return true; }
29
30 // FIXME/bug 703322 Disabled because child calls exit() to end
31 // test, not clear how to handle failed ctor in
32 // threaded mode.
33 static bool RunTestInThreads() { return false; }
34
35 void Main();
36
37 protected:
38 virtual PTestFailedCtorSubParent* AllocPTestFailedCtorSubParent() MOZ_OVERRIDE;
39 virtual bool DeallocPTestFailedCtorSubParent(PTestFailedCtorSubParent* actor) MOZ_OVERRIDE;
40
41 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE
42 {
43 if (AbnormalShutdown != why)
44 fail("unexpected destruction!");
45 passed("ok");
46 QuitParent();
47 }
48 };
49
50
51 class TestFailedCtorChild :
52 public PTestFailedCtorChild
53 {
54 public:
55 TestFailedCtorChild() { }
56 virtual ~TestFailedCtorChild() { }
57
58 protected:
59 virtual PTestFailedCtorSubChild* AllocPTestFailedCtorSubChild() MOZ_OVERRIDE;
60
61 virtual bool AnswerPTestFailedCtorSubConstructor(PTestFailedCtorSubChild* actor) MOZ_OVERRIDE;
62
63 virtual bool DeallocPTestFailedCtorSubChild(PTestFailedCtorSubChild* actor) MOZ_OVERRIDE;
64
65 virtual void ProcessingError(Result what) MOZ_OVERRIDE;
66
67 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE
68 {
69 fail("should have _exit()ed");
70 }
71 };
72
73
74 //-----------------------------------------------------------------------------
75 // First descendent
76 //
77 class TestFailedCtorSubsub;
78
79 class TestFailedCtorSubParent :
80 public PTestFailedCtorSubParent
81 {
82 public:
83 TestFailedCtorSubParent() : mOne(nullptr), mTwo(nullptr), mThree(nullptr) { }
84 virtual ~TestFailedCtorSubParent();
85
86 protected:
87 virtual PTestFailedCtorSubsubParent* AllocPTestFailedCtorSubsubParent() MOZ_OVERRIDE;
88
89 virtual bool DeallocPTestFailedCtorSubsubParent(PTestFailedCtorSubsubParent* actor) MOZ_OVERRIDE;
90 virtual bool RecvSync() MOZ_OVERRIDE { return true; }
91
92 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE;
93
94 TestFailedCtorSubsub* mOne;
95 TestFailedCtorSubsub* mTwo;
96 TestFailedCtorSubsub* mThree;
97 };
98
99
100 class TestFailedCtorSubChild :
101 public PTestFailedCtorSubChild
102 {
103 public:
104 TestFailedCtorSubChild() { }
105 virtual ~TestFailedCtorSubChild() { }
106
107 protected:
108 virtual PTestFailedCtorSubsubChild* AllocPTestFailedCtorSubsubChild() MOZ_OVERRIDE;
109 virtual bool DeallocPTestFailedCtorSubsubChild(PTestFailedCtorSubsubChild* actor) MOZ_OVERRIDE;
110
111 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE;
112 };
113
114
115 //-----------------------------------------------------------------------------
116 // Grand-descendent
117 //
118 class TestFailedCtorSubsub :
119 public PTestFailedCtorSubsubParent,
120 public PTestFailedCtorSubsubChild
121 {
122 public:
123 TestFailedCtorSubsub() : mWhy(ActorDestroyReason(-1)), mDealloced(false) {}
124 virtual ~TestFailedCtorSubsub() {}
125
126 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE { mWhy = why; }
127
128 ActorDestroyReason mWhy;
129 bool mDealloced;
130 };
131
132
133 }
134 }
135
136 #endif // ifndef mozilla_ipdltest_TestFailedCtor_h

mercurial