MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / memAllocPtrScopeTest

Function memAllocPtrScopeTest

test/memory.cpp:124–180  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

122
123template<typename T>
124void memAllocPtrScopeTest(int elements) {
125 SUPPORTED_TYPE_CHECK(T);
126
127 size_t alloc_bytes, alloc_buffers;
128 size_t lock_bytes, lock_buffers;
129
130 cleanSlate(); // Clean up everything done so far
131 {
132#pragma GCC diagnostic push
133#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
134 T *ptr = alloc<T>(elements);
135
136 deviceMemInfo(&alloc_bytes, &alloc_buffers, &lock_bytes, &lock_buffers);
137
138 ASSERT_EQ(alloc_buffers, 1u);
139 ASSERT_EQ(lock_buffers, 1u);
140
141 ASSERT_EQ(alloc_bytes, roundUpToStep(elements * sizeof(T)));
142 ASSERT_EQ(lock_bytes, roundUpToStep(elements * sizeof(T)));
143
144 af::free(ptr);
145#pragma GCC diagnostic pop
146 }
147
148 deviceMemInfo(&alloc_bytes, &alloc_buffers, &lock_bytes, &lock_buffers);
149
150 ASSERT_EQ(alloc_buffers, 1u);
151 ASSERT_EQ(lock_buffers, 0u); // 0 because a is out of scope
152
153 ASSERT_EQ(alloc_bytes, roundUpToStep(elements * sizeof(T)));
154 ASSERT_EQ(lock_bytes, 0u);
155
156 // Do without using templated alloc
157 cleanSlate(); // Clean up everything done so far
158
159 {
160 void *ptr = allocV2(elements * sizeof(T));
161
162 deviceMemInfo(&alloc_bytes, &alloc_buffers, &lock_bytes, &lock_buffers);
163
164 ASSERT_EQ(alloc_buffers, 1u);
165 ASSERT_EQ(lock_buffers, 1u);
166
167 ASSERT_EQ(alloc_bytes, roundUpToStep(elements * sizeof(T)));
168 ASSERT_EQ(lock_bytes, roundUpToStep(elements * sizeof(T)));
169
170 af::freeV2(ptr);
171 }
172
173 deviceMemInfo(&alloc_bytes, &alloc_buffers, &lock_bytes, &lock_buffers);
174
175 ASSERT_EQ(alloc_buffers, 1u);
176 ASSERT_EQ(lock_buffers, 0u); // 0 because a is out of scope
177
178 ASSERT_EQ(alloc_bytes, roundUpToStep(elements * sizeof(T)));
179 ASSERT_EQ(lock_bytes, 0u);
180}
181

Callers

nothing calls this directly

Calls 6

cleanSlateFunction · 0.85
deviceMemInfoFunction · 0.85
roundUpToStepFunction · 0.85
freeFunction · 0.85
allocV2Function · 0.85
freeV2Function · 0.85

Tested by

no test coverage detected