SpiecsEngine
 
Loading...
Searching...
No Matches

◆ TEST_F() [33/72]

SpicesTest::TEST_F ( PageCache_test ,
NewSpan  )

Testing Spices::PageCache::NewSpan.

Definition at line 48 of file PageCache_test.h.

48 {
49
51
52 std::array<scl::span*, n> spans;
53
54 for (int i = 1; i < n; i++)
55 {
56 scl::span* s = pc.NewSpan(i);
57
58 EXPECT_EQ(s->m_FreeList, nullptr);
59 EXPECT_EQ(s->m_Next, nullptr);
60 EXPECT_EQ(s->m_Prev, nullptr);
61 EXPECT_EQ(s->m_BlockSize, i * (1 << Spices::MemoryPool::PAGE_SHIFT));
62 EXPECT_EQ(s->m_IsUse, false);
63 EXPECT_EQ(s->m_NPages, i);
64 EXPECT_EQ(s->m_UseCount, 0);
65
66 s->m_IsUse = true;
67
68 spans[i] = std::move(s);
69 }
70
71 for (int i = 1; i < n; i++)
72 {
73 pc.ReleaseSpanToPageCache(spans[i]);
74 }
75 }
#define SPICESTEST_PROFILE_FUNCTION()
static constexpr size_t PAGE_SHIFT
8KB in a page.
Definition MemoryPool.h:44
span * m_Next
next span.
Definition SpanList.h:41
span * m_Prev
previous span.
Definition SpanList.h:46
size_t m_BlockSize
page block size.
Definition SpanList.h:66
void * m_FreeList
current pointer.
Definition SpanList.h:51
size_t m_UseCount
In used memory block count.
Definition SpanList.h:56
size_t m_NPages
How much page it managed.
Definition SpanList.h:36
bool m_IsUse
True if in use.
Definition SpanList.h:61
Used for manage multiple page memory.
Definition SpanList.h:15