]>
git.saurik.com Git - apple/xnu.git/blob - tests/intrusive_shared_ptr_src/dtor.cpp
3 // ~intrusive_shared_ptr();
6 #include <libkern/c++/intrusive_shared_ptr.h>
7 #include <darwintest.h>
8 #include <darwintest_utils.h>
9 #include "test_policy.h"
13 T_DECL(dtor
, "intrusive_shared_ptr.dtor") {
14 // Destroy a non-null shared pointer
17 test_policy::retain_count
= 3;
20 libkern::intrusive_shared_ptr
<T
, test_policy
> ptr(&obj
, libkern::no_retain
);
21 CHECK(test_policy::retain_count
== 3);
24 CHECK(test_policy::retain_count
== 2);
27 // Destroy a null shared pointer
29 test_policy::retain_count
= 3;
32 libkern::intrusive_shared_ptr
<T
, test_policy
> ptr
= nullptr;
33 CHECK(test_policy::retain_count
== 3);
36 CHECK(test_policy::retain_count
== 3); // not decremented