ipc/ipdl/test/cxx/TestFailedCtor.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

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

mercurial