blob: 5e09aa4d7e2e8536d2d0d36a190a3563eb5c37c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#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
|