MCPcopy Create free account
hub / github.com/OSGeo/gdal / TEST

Function TEST

autotest/cpp/testvirtualmem.cpp:215–262  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

213}
214
215TEST(testvirtualmem, test)
216{
217 if (getenv("SKIP_TESTVIRTUALMEM") != nullptr)
218 {
219 fprintf(stderr, "Skipping testvitualmem\n"); // ok
220 return;
221 }
222
223 /*printf("test_huge_mapping\n");
224 test_huge_mapping();*/
225
226 printf("Physical memory : " CPL_FRMT_GIB " bytes\n", CPLGetPhysicalRAM());
227
228 if (CPLIsVirtualMemFileMapAvailable())
229 {
230 printf("Testing CPLVirtualMemFileMapNew()\n");
231 VSILFILE *fp = VSIFOpenL(GCORE_DATA_DIR "byte.tif", "rb");
232 ASSERT_TRUE(fp != nullptr);
233 VSIFSeekL(fp, 0, SEEK_END);
234 size_t nSize = (size_t)VSIFTellL(fp);
235 VSIFSeekL(fp, 0, SEEK_SET);
236 void *pRefBuf = CPLMalloc(nSize);
237 VSIFReadL(pRefBuf, 1, nSize, fp);
238 CPLVirtualMem *psMem = CPLVirtualMemFileMapNew(
239 fp, 0, nSize, VIRTUALMEM_READONLY, nullptr, nullptr);
240 ASSERT_TRUE(psMem != nullptr);
241 void *pMemBuf = CPLVirtualMemGetAddr(psMem);
242 ASSERT_TRUE(memcmp(pRefBuf, pMemBuf, nSize) == 0);
243 CPLFree(pRefBuf);
244 CPLVirtualMemFree(psMem);
245 VSIFCloseL(fp);
246 }
247
248 auto ctxt = CPLVirtualMemNew(3 * MINIMUM_PAGE_SIZE, MINIMUM_PAGE_SIZE,
249 MINIMUM_PAGE_SIZE, FALSE, VIRTUALMEM_READONLY,
250 test_two_pages_cbk, nullptr, nullptr, nullptr);
251 if (ctxt)
252 {
253 test_two_pages(ctxt);
254 test_raw_auto("EHDR", TRUE);
255 test_raw_auto("EHDR", FALSE);
256 test_raw_auto("GTIFF", TRUE);
257 test_raw_auto("GTIFF", FALSE);
258 }
259
260 CPLVirtualMemManagerTerminate();
261 GDALDestroyDriverManager();
262}
263
264} // namespace

Callers

nothing calls this directly

Calls 15

CPLGetPhysicalRAMFunction · 0.85
VSIFOpenLFunction · 0.85
VSIFTellLFunction · 0.85
CPLMallocFunction · 0.85
VSIFReadLFunction · 0.85
CPLVirtualMemFileMapNewFunction · 0.85
CPLVirtualMemGetAddrFunction · 0.85
CPLVirtualMemFreeFunction · 0.85
VSIFCloseLFunction · 0.85
CPLVirtualMemNewFunction · 0.85
test_two_pagesFunction · 0.85

Tested by

no test coverage detected