11#include " memory_tracker.hpp"
22#include " testing.hpp"
3- #include " tests_common.hpp"
43
54#include < algorithm>
65#include < vector>
76
87TEMPLATE_LIST_TEST_CASE (" observer expiring scope" , " [lifetime][owner][observer]" , owner_types) {
9- memory_tracker mem_track;
8+ volatile memory_tracker mem_track;
109
1110 {
1211 observer_ptr<TestType> optr;
@@ -25,11 +24,11 @@ TEMPLATE_LIST_TEST_CASE("observer expiring scope", "[lifetime][owner][observer]"
2524 }
2625
2726 CHECK_NO_LEAKS;
28- };
27+ }
2928
3029TEMPLATE_LIST_TEST_CASE (
3130 " observer not expiring when owner moved" , " [lifetime][owner][observer]" , owner_types) {
32- memory_tracker mem_track;
31+ volatile memory_tracker mem_track;
3332
3433 {
3534 TestType outer_ptr;
@@ -59,10 +58,10 @@ TEMPLATE_LIST_TEST_CASE(
5958 }
6059
6160 CHECK_NO_LEAKS;
62- };
61+ }
6362
6463TEMPLATE_LIST_TEST_CASE (" observer expiring reset" , " [lifetime][owner][observer]" , owner_types) {
65- memory_tracker mem_track;
64+ volatile memory_tracker mem_track;
6665
6766 {
6867 observer_ptr<TestType> optr;
@@ -82,12 +81,12 @@ TEMPLATE_LIST_TEST_CASE("observer expiring reset", "[lifetime][owner][observer]"
8281 }
8382
8483 CHECK_NO_LEAKS;
85- };
84+ }
8685
8786TEMPLATE_LIST_TEST_CASE (
8887 " release valid owner with observer" , " [lifetime][release][owner][observer]" , owner_types) {
8988 if constexpr (!is_sealed<TestType>) {
90- memory_tracker mem_track;
89+ volatile memory_tracker mem_track;
9190
9291 {
9392 observer_ptr<TestType> optr;
@@ -126,14 +125,14 @@ TEMPLATE_LIST_TEST_CASE(
126125
127126 CHECK_NO_LEAKS;
128127 }
129- };
128+ }
130129
131130TEMPLATE_LIST_TEST_CASE (
132131 " release valid owner with observer subobject" ,
133132 " [lifetime][release][owner][observer]" ,
134133 owner_types) {
135134 if constexpr (!is_sealed<TestType>) {
136- memory_tracker mem_track;
135+ volatile memory_tracker mem_track;
137136
138137 {
139138 state_observer_ptr<TestType> optr;
@@ -170,11 +169,11 @@ TEMPLATE_LIST_TEST_CASE(
170169
171170 CHECK_NO_LEAKS;
172171 }
173- };
172+ }
174173
175174TEMPLATE_LIST_TEST_CASE (
176175 " observer get and raw get" , " [lifetime][get][raw_get][owner][observer]" , owner_types) {
177- memory_tracker mem_track;
176+ volatile memory_tracker mem_track;
178177
179178 {
180179 observer_ptr<TestType> optr;
@@ -196,14 +195,14 @@ TEMPLATE_LIST_TEST_CASE(
196195 }
197196
198197 CHECK_NO_LEAKS;
199- };
198+ }
200199
201200TEMPLATE_LIST_TEST_CASE (
202201 " object owning observer pointer to itself" ,
203202 " [lifetime][cycles][owner][observer]" ,
204203 owner_types) {
205204 if constexpr (is_cyclic<TestType>) {
206- memory_tracker mem_track;
205+ volatile memory_tracker mem_track;
207206
208207 {
209208 TestType ptr = make_pointer_deleter_1<TestType>();
@@ -214,12 +213,12 @@ TEMPLATE_LIST_TEST_CASE(
214213
215214 CHECK_NO_LEAKS;
216215 }
217- };
216+ }
218217
219218TEMPLATE_LIST_TEST_CASE (
220219 " object owning observer pointer to other" , " [lifetime][cycles][owner][observer]" , owner_types) {
221220 if constexpr (is_cyclic<TestType>) {
222- memory_tracker mem_track;
221+ volatile memory_tracker mem_track;
223222
224223 {
225224 TestType ptr1 = make_pointer_deleter_1<TestType>();
@@ -232,14 +231,14 @@ TEMPLATE_LIST_TEST_CASE(
232231
233232 CHECK_NO_LEAKS;
234233 }
235- };
234+ }
236235
237236TEMPLATE_LIST_TEST_CASE (
238237 " object owning observer pointer open chain" ,
239238 " [lifetime][cycles][owner][observer]" ,
240239 owner_types) {
241240 if constexpr (is_cyclic<TestType>) {
242- memory_tracker mem_track;
241+ volatile memory_tracker mem_track;
243242
244243 {
245244 TestType ptr1 = make_pointer_deleter_1<TestType>();
@@ -253,14 +252,14 @@ TEMPLATE_LIST_TEST_CASE(
253252
254253 CHECK_NO_LEAKS;
255254 }
256- };
255+ }
257256
258257TEMPLATE_LIST_TEST_CASE (
259258 " object owning observer pointer open chain reversed" ,
260259 " [lifetime][cycles][owner][observer]" ,
261260 owner_types) {
262261 if constexpr (is_cyclic<TestType>) {
263- memory_tracker mem_track;
262+ volatile memory_tracker mem_track;
264263
265264 {
266265 TestType ptr1 = make_pointer_deleter_1<TestType>();
@@ -274,14 +273,14 @@ TEMPLATE_LIST_TEST_CASE(
274273
275274 CHECK_NO_LEAKS;
276275 }
277- };
276+ }
278277
279278TEMPLATE_LIST_TEST_CASE (
280279 " object owning observer pointer closed chain interleaved" ,
281280 " [lifetime][cycles][owner][observer]" ,
282281 owner_types) {
283282 if constexpr (is_cyclic<TestType>) {
284- memory_tracker mem_track;
283+ volatile memory_tracker mem_track;
285284
286285 {
287286 TestType ptr1 = make_pointer_deleter_1<TestType>();
@@ -298,10 +297,10 @@ TEMPLATE_LIST_TEST_CASE(
298297
299298 CHECK_NO_LEAKS;
300299 }
301- };
300+ }
302301
303302TEMPLATE_LIST_TEST_CASE (" pointers in vector" , " [lifetime][array][owner][observer]" , owner_types) {
304- memory_tracker mem_track;
303+ volatile memory_tracker mem_track;
305304
306305 {
307306 std::vector<TestType> vec_own;
@@ -346,4 +345,4 @@ TEMPLATE_LIST_TEST_CASE("pointers in vector", "[lifetime][array][owner][observer
346345 }
347346
348347 CHECK_NO_LEAKS;
349- };
348+ }
0 commit comments