1
1
#include " memory_tracker.hpp"
2
2
#include " testing.hpp"
3
- #include " tests_common.hpp"
4
3
5
4
#include < algorithm>
6
5
#include < vector>
7
6
8
7
TEMPLATE_LIST_TEST_CASE (" observer expiring scope" , " [lifetime][owner][observer]" , owner_types) {
9
- memory_tracker mem_track;
8
+ volatile memory_tracker mem_track;
10
9
11
10
{
12
11
observer_ptr<TestType> optr;
@@ -25,11 +24,11 @@ TEMPLATE_LIST_TEST_CASE("observer expiring scope", "[lifetime][owner][observer]"
25
24
}
26
25
27
26
CHECK_NO_LEAKS;
28
- };
27
+ }
29
28
30
29
TEMPLATE_LIST_TEST_CASE (
31
30
" observer not expiring when owner moved" , " [lifetime][owner][observer]" , owner_types) {
32
- memory_tracker mem_track;
31
+ volatile memory_tracker mem_track;
33
32
34
33
{
35
34
TestType outer_ptr;
@@ -59,10 +58,10 @@ TEMPLATE_LIST_TEST_CASE(
59
58
}
60
59
61
60
CHECK_NO_LEAKS;
62
- };
61
+ }
63
62
64
63
TEMPLATE_LIST_TEST_CASE (" observer expiring reset" , " [lifetime][owner][observer]" , owner_types) {
65
- memory_tracker mem_track;
64
+ volatile memory_tracker mem_track;
66
65
67
66
{
68
67
observer_ptr<TestType> optr;
@@ -82,12 +81,12 @@ TEMPLATE_LIST_TEST_CASE("observer expiring reset", "[lifetime][owner][observer]"
82
81
}
83
82
84
83
CHECK_NO_LEAKS;
85
- };
84
+ }
86
85
87
86
TEMPLATE_LIST_TEST_CASE (
88
87
" release valid owner with observer" , " [lifetime][release][owner][observer]" , owner_types) {
89
88
if constexpr (!is_sealed<TestType>) {
90
- memory_tracker mem_track;
89
+ volatile memory_tracker mem_track;
91
90
92
91
{
93
92
observer_ptr<TestType> optr;
@@ -126,14 +125,14 @@ TEMPLATE_LIST_TEST_CASE(
126
125
127
126
CHECK_NO_LEAKS;
128
127
}
129
- };
128
+ }
130
129
131
130
TEMPLATE_LIST_TEST_CASE (
132
131
" release valid owner with observer subobject" ,
133
132
" [lifetime][release][owner][observer]" ,
134
133
owner_types) {
135
134
if constexpr (!is_sealed<TestType>) {
136
- memory_tracker mem_track;
135
+ volatile memory_tracker mem_track;
137
136
138
137
{
139
138
state_observer_ptr<TestType> optr;
@@ -170,11 +169,11 @@ TEMPLATE_LIST_TEST_CASE(
170
169
171
170
CHECK_NO_LEAKS;
172
171
}
173
- };
172
+ }
174
173
175
174
TEMPLATE_LIST_TEST_CASE (
176
175
" observer get and raw get" , " [lifetime][get][raw_get][owner][observer]" , owner_types) {
177
- memory_tracker mem_track;
176
+ volatile memory_tracker mem_track;
178
177
179
178
{
180
179
observer_ptr<TestType> optr;
@@ -196,14 +195,14 @@ TEMPLATE_LIST_TEST_CASE(
196
195
}
197
196
198
197
CHECK_NO_LEAKS;
199
- };
198
+ }
200
199
201
200
TEMPLATE_LIST_TEST_CASE (
202
201
" object owning observer pointer to itself" ,
203
202
" [lifetime][cycles][owner][observer]" ,
204
203
owner_types) {
205
204
if constexpr (is_cyclic<TestType>) {
206
- memory_tracker mem_track;
205
+ volatile memory_tracker mem_track;
207
206
208
207
{
209
208
TestType ptr = make_pointer_deleter_1<TestType>();
@@ -214,12 +213,12 @@ TEMPLATE_LIST_TEST_CASE(
214
213
215
214
CHECK_NO_LEAKS;
216
215
}
217
- };
216
+ }
218
217
219
218
TEMPLATE_LIST_TEST_CASE (
220
219
" object owning observer pointer to other" , " [lifetime][cycles][owner][observer]" , owner_types) {
221
220
if constexpr (is_cyclic<TestType>) {
222
- memory_tracker mem_track;
221
+ volatile memory_tracker mem_track;
223
222
224
223
{
225
224
TestType ptr1 = make_pointer_deleter_1<TestType>();
@@ -232,14 +231,14 @@ TEMPLATE_LIST_TEST_CASE(
232
231
233
232
CHECK_NO_LEAKS;
234
233
}
235
- };
234
+ }
236
235
237
236
TEMPLATE_LIST_TEST_CASE (
238
237
" object owning observer pointer open chain" ,
239
238
" [lifetime][cycles][owner][observer]" ,
240
239
owner_types) {
241
240
if constexpr (is_cyclic<TestType>) {
242
- memory_tracker mem_track;
241
+ volatile memory_tracker mem_track;
243
242
244
243
{
245
244
TestType ptr1 = make_pointer_deleter_1<TestType>();
@@ -253,14 +252,14 @@ TEMPLATE_LIST_TEST_CASE(
253
252
254
253
CHECK_NO_LEAKS;
255
254
}
256
- };
255
+ }
257
256
258
257
TEMPLATE_LIST_TEST_CASE (
259
258
" object owning observer pointer open chain reversed" ,
260
259
" [lifetime][cycles][owner][observer]" ,
261
260
owner_types) {
262
261
if constexpr (is_cyclic<TestType>) {
263
- memory_tracker mem_track;
262
+ volatile memory_tracker mem_track;
264
263
265
264
{
266
265
TestType ptr1 = make_pointer_deleter_1<TestType>();
@@ -274,14 +273,14 @@ TEMPLATE_LIST_TEST_CASE(
274
273
275
274
CHECK_NO_LEAKS;
276
275
}
277
- };
276
+ }
278
277
279
278
TEMPLATE_LIST_TEST_CASE (
280
279
" object owning observer pointer closed chain interleaved" ,
281
280
" [lifetime][cycles][owner][observer]" ,
282
281
owner_types) {
283
282
if constexpr (is_cyclic<TestType>) {
284
- memory_tracker mem_track;
283
+ volatile memory_tracker mem_track;
285
284
286
285
{
287
286
TestType ptr1 = make_pointer_deleter_1<TestType>();
@@ -298,10 +297,10 @@ TEMPLATE_LIST_TEST_CASE(
298
297
299
298
CHECK_NO_LEAKS;
300
299
}
301
- };
300
+ }
302
301
303
302
TEMPLATE_LIST_TEST_CASE (" pointers in vector" , " [lifetime][array][owner][observer]" , owner_types) {
304
- memory_tracker mem_track;
303
+ volatile memory_tracker mem_track;
305
304
306
305
{
307
306
std::vector<TestType> vec_own;
@@ -346,4 +345,4 @@ TEMPLATE_LIST_TEST_CASE("pointers in vector", "[lifetime][array][owner][observer
346
345
}
347
346
348
347
CHECK_NO_LEAKS;
349
- };
348
+ }
0 commit comments