# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D14595
84 lines
1.9 KiB
C++
84 lines
1.9 KiB
C++
#include "TestManyChildAllocs.h"
|
|
|
|
#include "IPDLUnitTests.h" // fail etc.
|
|
|
|
#define NALLOCS 10
|
|
|
|
namespace mozilla {
|
|
namespace _ipdltest {
|
|
|
|
// parent code
|
|
|
|
TestManyChildAllocsParent::TestManyChildAllocsParent() {
|
|
MOZ_COUNT_CTOR(TestManyChildAllocsParent);
|
|
}
|
|
|
|
TestManyChildAllocsParent::~TestManyChildAllocsParent() {
|
|
MOZ_COUNT_DTOR(TestManyChildAllocsParent);
|
|
}
|
|
|
|
void TestManyChildAllocsParent::Main() {
|
|
if (!SendGo()) fail("can't send Go()");
|
|
}
|
|
|
|
mozilla::ipc::IPCResult TestManyChildAllocsParent::RecvDone() {
|
|
// explicitly *not* cleaning up, so we can sanity-check IPDL's
|
|
// auto-shutdown/cleanup handling
|
|
Close();
|
|
|
|
return IPC_OK();
|
|
}
|
|
|
|
bool TestManyChildAllocsParent::DeallocPTestManyChildAllocsSubParent(
|
|
PTestManyChildAllocsSubParent* __a) {
|
|
delete __a;
|
|
return true;
|
|
}
|
|
|
|
PTestManyChildAllocsSubParent*
|
|
TestManyChildAllocsParent::AllocPTestManyChildAllocsSubParent() {
|
|
return new TestManyChildAllocsSubParent();
|
|
}
|
|
|
|
// child code
|
|
|
|
TestManyChildAllocsChild::TestManyChildAllocsChild() {
|
|
MOZ_COUNT_CTOR(TestManyChildAllocsChild);
|
|
}
|
|
|
|
TestManyChildAllocsChild::~TestManyChildAllocsChild() {
|
|
MOZ_COUNT_DTOR(TestManyChildAllocsChild);
|
|
}
|
|
|
|
mozilla::ipc::IPCResult TestManyChildAllocsChild::RecvGo() {
|
|
for (int i = 0; i < NALLOCS; ++i) {
|
|
PTestManyChildAllocsSubChild* child =
|
|
SendPTestManyChildAllocsSubConstructor();
|
|
|
|
if (!child) fail("can't send ctor()");
|
|
|
|
if (!child->SendHello()) fail("can't send Hello()");
|
|
}
|
|
|
|
size_t len = ManagedPTestManyChildAllocsSubChild().Count();
|
|
if (NALLOCS != len) fail("expected %lu kids, got %lu", NALLOCS, len);
|
|
|
|
if (!SendDone()) fail("can't send Done()");
|
|
|
|
return IPC_OK();
|
|
}
|
|
|
|
bool TestManyChildAllocsChild::DeallocPTestManyChildAllocsSubChild(
|
|
PTestManyChildAllocsSubChild* __a) {
|
|
delete __a;
|
|
return true;
|
|
}
|
|
|
|
PTestManyChildAllocsSubChild*
|
|
TestManyChildAllocsChild::AllocPTestManyChildAllocsSubChild() {
|
|
return new TestManyChildAllocsSubChild();
|
|
}
|
|
|
|
} // namespace _ipdltest
|
|
} // namespace mozilla
|