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

Function test_two_pages

autotest/cpp/testvirtualmem.cpp:99–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97}
98
99static void test_two_pages(CPLVirtualMem *ctxt)
100{
101 volatile char *addr;
102 CPLJoinableThread *hThread;
103
104 printf("test_two_pages()\n");
105
106 addr = (char *)CPLVirtualMemGetAddr(ctxt);
107 ASSERT_EQ(CPLVirtualMemGetPageSize(ctxt), MINIMUM_PAGE_SIZE);
108 ASSERT_TRUE(CPLVirtualMemIsAccessThreadSafe(ctxt));
109 /*fprintfstderr("main thread is %X, addr=%p\n", pthread_self(), addr);*/
110 hThread = CPLCreateJoinableThread(test_two_pages_thread, ctxt);
111 CPLVirtualMemDeclareThread(ctxt);
112 {
113 int i = 0;
114 for (i = 0; i < 50 * 1000; i++)
115 {
116 char val = addr[MINIMUM_PAGE_SIZE * (i % 3)];
117 /*fprintfstderr("T1: val[%d] = %d\n", MINIMUM_PAGE_SIZE * (i % 2),
118 * val);*/
119 ASSERT_EQ(val, (((i % 3) == 0) ? 0x3F
120 : ((i % 3) == 1) ? 0x5F
121 : 0x7F));
122 }
123 }
124 CPLVirtualMemUnDeclareThread(ctxt);
125 CPLJoinThread(hThread);
126 CPLVirtualMemFree(ctxt);
127}
128
129static void test_raw_auto(const char *pszFormat, int bFileMapping)
130{

Callers 1

TESTFunction · 0.85

Calls 9

CPLVirtualMemGetAddrFunction · 0.85
ASSERT_EQFunction · 0.85
CPLVirtualMemGetPageSizeFunction · 0.85
CPLCreateJoinableThreadFunction · 0.85
CPLJoinThreadFunction · 0.85
CPLVirtualMemFreeFunction · 0.85

Tested by

no test coverage detected