Index: src/libchcore/Tests/TReadBufferQueueWrapperTests.cpp =================================================================== diff -u -N -r518d1a3484cde91ff17c071211df5e40cb3487e3 -rd99302fce795dbb5139659016a5da7948f141fb4 --- src/libchcore/Tests/TReadBufferQueueWrapperTests.cpp (.../TReadBufferQueueWrapperTests.cpp) (revision 518d1a3484cde91ff17c071211df5e40cb3487e3) +++ src/libchcore/Tests/TReadBufferQueueWrapperTests.cpp (.../TReadBufferQueueWrapperTests.cpp) (revision d99302fce795dbb5139659016a5da7948f141fb4) @@ -12,15 +12,17 @@ { TBufferListPtr spList(std::make_shared()); - EXPECT_THROW(TReadBufferQueueWrapper(spList, 0, 0), TCoreException); + EXPECT_THROW(TReadBufferQueueWrapper(spList, 0, 0, 0, 0, nullptr, nullptr), TCoreException); } TEST(TReadBufferQueueWrapperTests, Constructor) { TBufferListPtr spList(std::make_shared()); - TReadBufferQueueWrapper queue(spList, 0, 1024); - EXPECT_EQ(0, queue.GetCount()); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); EXPECT_TIMEOUT(queue.GetHasBuffersEvent()); EXPECT_EQ(false, queue.IsDataSourceFinished()); } @@ -29,8 +31,11 @@ { TBufferListPtr spList(std::make_shared()); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); + EXPECT_EQ(nullptr, queue.Pop()); } @@ -46,8 +51,11 @@ spList->Push(&buffer3); spList->Push(&buffer4); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); + EXPECT_EQ(&buffer4, queue.Pop()); EXPECT_EQ(0, buffer4.GetFilePosition()); EXPECT_EQ(1024, buffer4.GetRequestedDataSize()); @@ -70,8 +78,11 @@ TEST(TReadBufferQueueWrapperTests, PushPop_ClaimedBuffers) { TBufferListPtr spList(std::make_shared()); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); + TOverlappedDataBuffer buffer1(1024, nullptr); TOverlappedDataBuffer buffer2(1024, nullptr); TOverlappedDataBuffer buffer3(1024, nullptr); @@ -113,8 +124,11 @@ spList->Push(&buffer1); spList->Push(&buffer2); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); + TOverlappedDataBuffer buffer3(1024, nullptr); TOverlappedDataBuffer buffer4(1024, nullptr); queue.PushEmpty(&buffer3); @@ -156,7 +170,10 @@ spList->Push(&buffer1); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); queue.SetDataSourceFinished(&buffer1); EXPECT_EQ(true, queue.IsDataSourceFinished()); @@ -170,16 +187,22 @@ TOverlappedDataBuffer buffer1(1024, nullptr); spList->Push(&buffer1); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); + EXPECT_THROW(queue.SetDataSourceFinished(&buffer1), TCoreException); } TEST(TReadBufferQueueWrapperTests, PushPop_DataSourceFinished_CheckBufferMaintenance) { TBufferListPtr spList(std::make_shared()); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); + TOverlappedDataBuffer buffer1(1024, nullptr); buffer1.SetFilePosition(0); buffer1.SetLastPart(true); @@ -191,7 +214,6 @@ queue.SetDataSourceFinished(&buffer1); - EXPECT_EQ(2, queue.GetCount()); EXPECT_EQ(&buffer1, queue.Pop()); EXPECT_EQ(0, spList->GetCount()); @@ -201,22 +223,23 @@ TEST(TReadBufferQueueWrapperTests, PushPop_DataSourceFinished_ValidPushAfterFinished) { TBufferListPtr spList(std::make_shared()); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); + TOverlappedDataBuffer buffer1(1024, nullptr); buffer1.SetLastPart(true); queue.Push(&buffer1); queue.SetDataSourceFinished(&buffer1); - EXPECT_EQ(1, queue.GetCount()); EXPECT_EQ(0, spList->GetCount()); TOverlappedDataBuffer buffer2(1024, nullptr); buffer2.SetLastPart(true); queue.Push(&buffer2); - EXPECT_EQ(1, queue.GetCount()); EXPECT_EQ(&buffer1, queue.Pop()); EXPECT_EQ(1, spList->GetCount()); EXPECT_EQ(&buffer2, spList->Pop()); @@ -225,16 +248,18 @@ TEST(TReadBufferQueueWrapperTests, PushPop_DataSourceFinished_InvalidPushAfterFinished) { TBufferListPtr spList(std::make_shared()); - TReadBufferQueueWrapper queue(spList, 0, 1024); + TSharedCountPtr spOtfBufferCount(std::make_shared>()); + TSharedCountMTPtr spReadAheadBufferCount(std::make_shared>()); + TReadBufferQueueWrapper queue(spList, 0, 1024, 1, 1, spOtfBufferCount, spReadAheadBufferCount); + TOverlappedDataBuffer buffer1(1024, nullptr); buffer1.SetLastPart(true); buffer1.SetFilePosition(0); queue.Push(&buffer1); queue.SetDataSourceFinished(&buffer1); - EXPECT_EQ(1, queue.GetCount()); EXPECT_EQ(&buffer1, queue.Pop()); EXPECT_EQ(0, spList->GetCount());