1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ipc/ipdl/test/cxx/TestRacyReentry.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,84 @@ 1.4 +#include "TestRacyReentry.h" 1.5 + 1.6 +#include "IPDLUnitTests.h" // fail etc. 1.7 + 1.8 +namespace mozilla { 1.9 +namespace _ipdltest { 1.10 + 1.11 +//----------------------------------------------------------------------------- 1.12 +// parent 1.13 + 1.14 +TestRacyReentryParent::TestRacyReentryParent() : mRecvdE(false) 1.15 +{ 1.16 + MOZ_COUNT_CTOR(TestRacyReentryParent); 1.17 +} 1.18 + 1.19 +TestRacyReentryParent::~TestRacyReentryParent() 1.20 +{ 1.21 + MOZ_COUNT_DTOR(TestRacyReentryParent); 1.22 +} 1.23 + 1.24 +void 1.25 +TestRacyReentryParent::Main() 1.26 +{ 1.27 + if (!SendStart()) 1.28 + fail("sending Start"); 1.29 + 1.30 + if (!SendN()) 1.31 + fail("sending N"); 1.32 +} 1.33 + 1.34 +bool 1.35 +TestRacyReentryParent::AnswerE() 1.36 +{ 1.37 + if (!mRecvdE) { 1.38 + mRecvdE = true; 1.39 + return true; 1.40 + } 1.41 + 1.42 + if (!CallH()) 1.43 + fail("calling H"); 1.44 + 1.45 + return true; 1.46 +} 1.47 + 1.48 +//----------------------------------------------------------------------------- 1.49 +// child 1.50 + 1.51 +TestRacyReentryChild::TestRacyReentryChild() 1.52 +{ 1.53 + MOZ_COUNT_CTOR(TestRacyReentryChild); 1.54 +} 1.55 + 1.56 +TestRacyReentryChild::~TestRacyReentryChild() 1.57 +{ 1.58 + MOZ_COUNT_DTOR(TestRacyReentryChild); 1.59 +} 1.60 + 1.61 +bool 1.62 +TestRacyReentryChild::RecvStart() 1.63 +{ 1.64 + if (!CallE()) 1.65 + fail("calling E"); 1.66 + 1.67 + Close(); 1.68 + 1.69 + return true; 1.70 +} 1.71 + 1.72 +bool 1.73 +TestRacyReentryChild::RecvN() 1.74 +{ 1.75 + if (!CallE()) 1.76 + fail("calling E"); 1.77 + return true; 1.78 +} 1.79 + 1.80 +bool 1.81 +TestRacyReentryChild::AnswerH() 1.82 +{ 1.83 + return true; 1.84 +} 1.85 + 1.86 +} // namespace _ipdltest 1.87 +} // namespace mozilla