Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 #ifndef mozilla_ipdltest_TestFailedCtor_h
2 #define mozilla_ipdltest_TestFailedCtor_h
4 #include "mozilla/_ipdltest/IPDLUnitTests.h"
6 #include "mozilla/_ipdltest/PTestFailedCtorParent.h"
7 #include "mozilla/_ipdltest/PTestFailedCtorChild.h"
9 #include "mozilla/_ipdltest/PTestFailedCtorSubParent.h"
10 #include "mozilla/_ipdltest/PTestFailedCtorSubChild.h"
12 #include "mozilla/_ipdltest/PTestFailedCtorSubsubParent.h"
13 #include "mozilla/_ipdltest/PTestFailedCtorSubsubChild.h"
15 namespace mozilla {
16 namespace _ipdltest {
18 //-----------------------------------------------------------------------------
19 // Top-level
20 //
21 class TestFailedCtorParent :
22 public PTestFailedCtorParent
23 {
24 public:
25 TestFailedCtorParent() { }
26 virtual ~TestFailedCtorParent() { }
28 static bool RunTestInProcesses() { return true; }
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; }
35 void Main();
37 protected:
38 virtual PTestFailedCtorSubParent* AllocPTestFailedCtorSubParent() MOZ_OVERRIDE;
39 virtual bool DeallocPTestFailedCtorSubParent(PTestFailedCtorSubParent* actor) MOZ_OVERRIDE;
41 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE
42 {
43 if (AbnormalShutdown != why)
44 fail("unexpected destruction!");
45 passed("ok");
46 QuitParent();
47 }
48 };
51 class TestFailedCtorChild :
52 public PTestFailedCtorChild
53 {
54 public:
55 TestFailedCtorChild() { }
56 virtual ~TestFailedCtorChild() { }
58 protected:
59 virtual PTestFailedCtorSubChild* AllocPTestFailedCtorSubChild() MOZ_OVERRIDE;
61 virtual bool AnswerPTestFailedCtorSubConstructor(PTestFailedCtorSubChild* actor) MOZ_OVERRIDE;
63 virtual bool DeallocPTestFailedCtorSubChild(PTestFailedCtorSubChild* actor) MOZ_OVERRIDE;
65 virtual void ProcessingError(Result what) MOZ_OVERRIDE;
67 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE
68 {
69 fail("should have _exit()ed");
70 }
71 };
74 //-----------------------------------------------------------------------------
75 // First descendent
76 //
77 class TestFailedCtorSubsub;
79 class TestFailedCtorSubParent :
80 public PTestFailedCtorSubParent
81 {
82 public:
83 TestFailedCtorSubParent() : mOne(nullptr), mTwo(nullptr), mThree(nullptr) { }
84 virtual ~TestFailedCtorSubParent();
86 protected:
87 virtual PTestFailedCtorSubsubParent* AllocPTestFailedCtorSubsubParent() MOZ_OVERRIDE;
89 virtual bool DeallocPTestFailedCtorSubsubParent(PTestFailedCtorSubsubParent* actor) MOZ_OVERRIDE;
90 virtual bool RecvSync() MOZ_OVERRIDE { return true; }
92 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE;
94 TestFailedCtorSubsub* mOne;
95 TestFailedCtorSubsub* mTwo;
96 TestFailedCtorSubsub* mThree;
97 };
100 class TestFailedCtorSubChild :
101 public PTestFailedCtorSubChild
102 {
103 public:
104 TestFailedCtorSubChild() { }
105 virtual ~TestFailedCtorSubChild() { }
107 protected:
108 virtual PTestFailedCtorSubsubChild* AllocPTestFailedCtorSubsubChild() MOZ_OVERRIDE;
109 virtual bool DeallocPTestFailedCtorSubsubChild(PTestFailedCtorSubsubChild* actor) MOZ_OVERRIDE;
111 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE;
112 };
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() {}
126 virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE { mWhy = why; }
128 ActorDestroyReason mWhy;
129 bool mDealloced;
130 };
133 }
134 }
136 #endif // ifndef mozilla_ipdltest_TestFailedCtor_h