# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D14595
55 lines
1.6 KiB
C++
55 lines
1.6 KiB
C++
#include "TestSelfManageRoot.h"
|
|
|
|
#include "IPDLUnitTests.h" // fail etc.
|
|
|
|
#define ASSERT(c) \
|
|
do { \
|
|
if (!(c)) fail(#c); \
|
|
} while (0)
|
|
|
|
namespace mozilla {
|
|
namespace _ipdltest {
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// parent
|
|
|
|
void TestSelfManageRootParent::Main() {
|
|
TestSelfManageParent* a =
|
|
static_cast<TestSelfManageParent*>(SendPTestSelfManageConstructor());
|
|
if (!a) fail("constructing PTestSelfManage");
|
|
|
|
ASSERT(1 == ManagedPTestSelfManageParent().Count());
|
|
|
|
TestSelfManageParent* aa =
|
|
static_cast<TestSelfManageParent*>(a->SendPTestSelfManageConstructor());
|
|
if (!aa) fail("constructing PTestSelfManage");
|
|
|
|
ASSERT(1 == ManagedPTestSelfManageParent().Count() &&
|
|
1 == a->ManagedPTestSelfManageParent().Count());
|
|
|
|
if (!PTestSelfManageParent::Send__delete__(aa))
|
|
fail("destroying PTestSelfManage");
|
|
ASSERT(Deletion == aa->mWhy && 1 == ManagedPTestSelfManageParent().Count() &&
|
|
0 == a->ManagedPTestSelfManageParent().Count());
|
|
delete aa;
|
|
|
|
aa = static_cast<TestSelfManageParent*>(a->SendPTestSelfManageConstructor());
|
|
if (!aa) fail("constructing PTestSelfManage");
|
|
|
|
ASSERT(1 == ManagedPTestSelfManageParent().Count() &&
|
|
1 == a->ManagedPTestSelfManageParent().Count());
|
|
|
|
if (!PTestSelfManageParent::Send__delete__(a))
|
|
fail("destroying PTestSelfManage");
|
|
ASSERT(Deletion == a->mWhy && AncestorDeletion == aa->mWhy &&
|
|
0 == ManagedPTestSelfManageParent().Count() &&
|
|
0 == a->ManagedPTestSelfManageParent().Count());
|
|
delete a;
|
|
delete aa;
|
|
|
|
Close();
|
|
}
|
|
|
|
} // namespace _ipdltest
|
|
} // namespace mozilla
|