From 71df0a408f715d42b834cc5beb6c9026bc8b87cb Mon Sep 17 00:00:00 2001 From: dongsenhao Date: Wed, 13 Sep 2023 11:14:30 +0800 Subject: [PATCH] add interface test case coverage Signed-off-by: dongsenhao --- libpurgeablemem/test/purgeable_cpp_test.cpp | 41 +++++++++++++++++++ libpurgeablemem/test/purgeableashmem_test.cpp | 14 ++++++- .../test/purgeableresourcemanager_test.cpp | 2 + 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/libpurgeablemem/test/purgeable_cpp_test.cpp b/libpurgeablemem/test/purgeable_cpp_test.cpp index 20fbcc5..e969f1a 100644 --- a/libpurgeablemem/test/purgeable_cpp_test.cpp +++ b/libpurgeablemem/test/purgeable_cpp_test.cpp @@ -13,12 +13,19 @@ * limitations under the License. */ +#include #include #include #include /* unique_ptr */ #include #include "gtest/gtest.h" +#include "pm_util.h" + +#define private public +#define protected public #include "purgeable_mem.h" +#undef private +#undef protected namespace OHOS { namespace PurgeableMem { @@ -447,6 +454,40 @@ HWTEST_F(PurgeableCppTest, InvalidInputBuilderTest, TestSize.Level1) EXPECT_EQ(ret, false); } +HWTEST_F(PurgeableCppTest, ResizeDataTest, TestSize.Level1) +{ + std::unique_ptr builder = std::make_unique('A', 'Z'); + PurgeableMem *pobj1 = new PurgeableMem(27, std::move(builder)); + PurgeableMem *pobj2 = new PurgeableMem(27, std::move(builder)); + std::function callback = std::bind(&PurgeableMem::IsDataValid, pobj1); + size_t pageSize = PAGE_SIZE; + LoopReclaimPurgeable(1); + + size_t newSize = 0; + int intdata = 12345; + void *data = &intdata; + pobj1->ResizeData(newSize); + newSize = 1; + pobj1->ResizeData(newSize); + size_t roundip = ((pobj2->dataSizeInput_ + pageSize) / pageSize) * pageSize; + munmap(pobj2->dataPtr_, roundip); + pobj2->ResizeData(newSize); + roundip = ((pobj2->dataSizeInput_ + pageSize) / pageSize) * pageSize; + munmap(pobj2->dataPtr_, roundip); + pobj2->dataPtr_ = data; + pobj2->ResizeData(newSize); + EXPECT_NE(pobj2->dataPtr_, nullptr); + pobj1->builder_->DoRebuildSuccessCallback(); + pobj1->builder_->SetRebuildSuccessCallback(callback); + pobj1->builder_->DoRebuildSuccessCallback(); + pobj1->builder_ = nullptr; + pobj1->SetRebuildSuccessCallback(callback); + delete pobj1; + delete pobj2; + pobj1 = nullptr; + pobj2 = nullptr; +} + void LoopPrintAlphabet(PurgeableMem *pdata, unsigned int loopCount) { std::cout << "inter " << __func__ << std::endl; diff --git a/libpurgeablemem/test/purgeableashmem_test.cpp b/libpurgeablemem/test/purgeableashmem_test.cpp index 121a3d7..a9afb02 100644 --- a/libpurgeablemem/test/purgeableashmem_test.cpp +++ b/libpurgeablemem/test/purgeableashmem_test.cpp @@ -26,6 +26,7 @@ #include "gtest/gtest.h" #include "ashmem.h" #include "securec.h" +#include "pm_util.h" #define private public #define protected public @@ -605,7 +606,7 @@ HWTEST_F(PurgeableAshmemTest, ChangeAshmemDataTest, TestSize.Level1) int fd = 5; int intdata = 12345; void *data = &intdata; - size_t pageSize = 1 << 12; + size_t pageSize = PAGE_SIZE; pobj1.ResizeData(newSize); newSize = 1; pobj1.ResizeData(newSize); @@ -624,6 +625,17 @@ HWTEST_F(PurgeableAshmemTest, ChangeAshmemDataTest, TestSize.Level1) EXPECT_EQ(pobj4.ChangeAshmemData(size, fd, data), true); } +HWTEST_F(PurgeableAshmemTest, GetContentSizeTest, TestSize.Level1) +{ + std::unique_ptr builder1 = std::make_unique('A', 'Z'); + PurgeableAshMem pobj(27, std::move(builder1)); + EXPECT_EQ(pobj.GetContentSize(), 27); + bool target = true; + pobj.SetDataValid(target); + EXPECT_EQ(pobj.IsDataValid(), target); + EXPECT_NE(pobj.GetAshmemFd(), -1); +} + void LoopPrintAlphabet(PurgeableAshMem *pdata, unsigned int loopCount) { std::cout << "inter " << __func__ << std::endl; diff --git a/libpurgeablemem/test/purgeableresourcemanager_test.cpp b/libpurgeablemem/test/purgeableresourcemanager_test.cpp index 17ec71e..f73a28c 100644 --- a/libpurgeablemem/test/purgeableresourcemanager_test.cpp +++ b/libpurgeablemem/test/purgeableresourcemanager_test.cpp @@ -191,6 +191,8 @@ HWTEST_F(PurgeableResourceManagerTest, RemoveLastResourceTest, TestSize.Level1) PurgeableResourceManager::GetInstance().RemoveLastResource(); PurgeableResourceManager::GetInstance().ShowLruCache(); EXPECT_EQ(PurgeableResourceManager::GetInstance().lruCache_.Size(), 0); + size_t newSize = 0; + key->ResizeData(newSize); } } } -- Gitee