michael@0: #include "TestRacyReentry.h" michael@0: michael@0: #include "IPDLUnitTests.h" // fail etc. michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // parent michael@0: michael@0: TestRacyReentryParent::TestRacyReentryParent() : mRecvdE(false) michael@0: { michael@0: MOZ_COUNT_CTOR(TestRacyReentryParent); michael@0: } michael@0: michael@0: TestRacyReentryParent::~TestRacyReentryParent() michael@0: { michael@0: MOZ_COUNT_DTOR(TestRacyReentryParent); michael@0: } michael@0: michael@0: void michael@0: TestRacyReentryParent::Main() michael@0: { michael@0: if (!SendStart()) michael@0: fail("sending Start"); michael@0: michael@0: if (!SendN()) michael@0: fail("sending N"); michael@0: } michael@0: michael@0: bool michael@0: TestRacyReentryParent::AnswerE() michael@0: { michael@0: if (!mRecvdE) { michael@0: mRecvdE = true; michael@0: return true; michael@0: } michael@0: michael@0: if (!CallH()) michael@0: fail("calling H"); michael@0: michael@0: return true; michael@0: } michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // child michael@0: michael@0: TestRacyReentryChild::TestRacyReentryChild() michael@0: { michael@0: MOZ_COUNT_CTOR(TestRacyReentryChild); michael@0: } michael@0: michael@0: TestRacyReentryChild::~TestRacyReentryChild() michael@0: { michael@0: MOZ_COUNT_DTOR(TestRacyReentryChild); michael@0: } michael@0: michael@0: bool michael@0: TestRacyReentryChild::RecvStart() michael@0: { michael@0: if (!CallE()) michael@0: fail("calling E"); michael@0: michael@0: Close(); michael@0: michael@0: return true; michael@0: } michael@0: michael@0: bool michael@0: TestRacyReentryChild::RecvN() michael@0: { michael@0: if (!CallE()) michael@0: fail("calling E"); michael@0: return true; michael@0: } michael@0: michael@0: bool michael@0: TestRacyReentryChild::AnswerH() michael@0: { michael@0: return true; michael@0: } michael@0: michael@0: } // namespace _ipdltest michael@0: } // namespace mozilla