1 #ifndef mozilla__ipdltest_TestShmem_h 2 #define mozilla__ipdltest_TestShmem_h 3 4 #include "mozilla/_ipdltest/IPDLUnitTests.h" 5 6 #include "mozilla/_ipdltest/PTestShmemParent.h" 7 #include "mozilla/_ipdltest/PTestShmemChild.h" 8 9 namespace mozilla { 10 namespace _ipdltest { 11 12 13 class TestShmemParent : 14 public PTestShmemParent 15 { 16 public: TestShmemParent()17 TestShmemParent() { } ~TestShmemParent()18 virtual ~TestShmemParent() { } 19 RunTestInProcesses()20 static bool RunTestInProcesses() { return true; } RunTestInThreads()21 static bool RunTestInThreads() { return true; } 22 23 void Main(); 24 25 protected: 26 virtual mozilla::ipc::IPCResult RecvTake( 27 Shmem&& mem, 28 Shmem&& unsafe, 29 const size_t& expectedSize) override; 30 ActorDestroy(ActorDestroyReason why)31 virtual void ActorDestroy(ActorDestroyReason why) override 32 { 33 if (NormalShutdown != why) 34 fail("unexpected destruction!"); 35 passed("ok"); 36 QuitParent(); 37 } 38 }; 39 40 41 class TestShmemChild : 42 public PTestShmemChild 43 { 44 public: TestShmemChild()45 TestShmemChild() { } ~TestShmemChild()46 virtual ~TestShmemChild() { } 47 48 protected: 49 virtual mozilla::ipc::IPCResult RecvGive( 50 Shmem&& mem, 51 Shmem&& unsafe, 52 const size_t& expectedSize) override; 53 ActorDestroy(ActorDestroyReason why)54 virtual void ActorDestroy(ActorDestroyReason why) override 55 { 56 if (NormalShutdown != why) 57 fail("unexpected destruction!"); 58 QuitChild(); 59 } 60 }; 61 62 63 } // namespace _ipdltest 64 } // namespace mozilla 65 66 #endif // ifndef mozilla__ipdltest_TestShmem_h 67