diff options
author | Alex Buynytskyy <alexbuy@google.com> | 2020-08-25 12:45:22 -0700 |
---|---|---|
committer | Alex Buynytskyy <alexbuy@google.com> | 2020-08-27 10:33:46 -0700 |
commit | bc0a7e6cbf4a56c1451e8e03040974b1cc0a782d (patch) | |
tree | eddfd43620f7c3aadb6ff7428b46f61fe9c0ce25 /services/incremental/test/IncrementalServiceTest.cpp | |
parent | edbf3411d2c91f38a1a5d93b9e5b3380524b3ed8 (diff) |
Wait for APK to be fully downloaded for full APK digests.
Bug: 160605420
Test: atest ChecksumsTest
Change-Id: Ib9fd591c67290786268b6dcdc57c7db153612e01
Diffstat (limited to 'services/incremental/test/IncrementalServiceTest.cpp')
-rw-r--r-- | services/incremental/test/IncrementalServiceTest.cpp | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/services/incremental/test/IncrementalServiceTest.cpp b/services/incremental/test/IncrementalServiceTest.cpp index d1000e56e5ee..a290a1791481 100644 --- a/services/incremental/test/IncrementalServiceTest.cpp +++ b/services/incremental/test/IncrementalServiceTest.cpp @@ -289,7 +289,7 @@ public: ErrorCode(const Control& control, std::string_view from, std::string_view to)); MOCK_CONST_METHOD2(unlink, ErrorCode(const Control& control, std::string_view path)); - MOCK_CONST_METHOD2(openForSpecialOps, base::unique_fd(const Control& control, FileId id)); + MOCK_CONST_METHOD2(openForSpecialOps, UniqueFd(const Control& control, FileId id)); MOCK_CONST_METHOD1(writeBlocks, ErrorCode(std::span<const DataBlock> blocks)); MOCK_CONST_METHOD3(waitForPendingReads, WaitResult(const Control& control, std::chrono::milliseconds timeout, @@ -304,6 +304,10 @@ public: ON_CALL(*this, countFilledBlocks(_, _)).WillByDefault(Return(std::make_pair(1, 2))); } + void countFilledBlocksFullyLoaded() { + ON_CALL(*this, countFilledBlocks(_, _)).WillByDefault(Return(std::make_pair(10000, 10000))); + } + void countFilledBlocksFails() { ON_CALL(*this, countFilledBlocks(_, _)).WillByDefault(Return(std::make_pair(-1, -1))); } @@ -1069,6 +1073,53 @@ TEST_F(IncrementalServiceTest, testMakeDirectories) { ASSERT_EQ(res, 0); } +TEST_F(IncrementalServiceTest, testIsFileFullyLoadedFailsWithNoFile) { + mIncFs->countFilledBlocksFails(); + mFs->hasNoFile(); + + TemporaryDir tempDir; + int storageId = mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), + IncrementalService::CreateOptions::CreateNew, + {}, {}, {}); + ASSERT_EQ(-1, mIncrementalService->isFileFullyLoaded(storageId, "base.apk")); +} + +TEST_F(IncrementalServiceTest, testIsFileFullyLoadedFailsWithFailedRanges) { + mIncFs->countFilledBlocksFails(); + mFs->hasFiles(); + + TemporaryDir tempDir; + int storageId = mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), + IncrementalService::CreateOptions::CreateNew, + {}, {}, {}); + EXPECT_CALL(*mIncFs, countFilledBlocks(_, _)).Times(1); + ASSERT_EQ(-1, mIncrementalService->isFileFullyLoaded(storageId, "base.apk")); +} + +TEST_F(IncrementalServiceTest, testIsFileFullyLoadedSuccessWithEmptyRanges) { + mIncFs->countFilledBlocksEmpty(); + mFs->hasFiles(); + + TemporaryDir tempDir; + int storageId = mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), + IncrementalService::CreateOptions::CreateNew, + {}, {}, {}); + EXPECT_CALL(*mIncFs, countFilledBlocks(_, _)).Times(1); + ASSERT_EQ(0, mIncrementalService->isFileFullyLoaded(storageId, "base.apk")); +} + +TEST_F(IncrementalServiceTest, testIsFileFullyLoadedSuccess) { + mIncFs->countFilledBlocksFullyLoaded(); + mFs->hasFiles(); + + TemporaryDir tempDir; + int storageId = mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel), + IncrementalService::CreateOptions::CreateNew, + {}, {}, {}); + EXPECT_CALL(*mIncFs, countFilledBlocks(_, _)).Times(1); + ASSERT_EQ(0, mIncrementalService->isFileFullyLoaded(storageId, "base.apk")); +} + TEST_F(IncrementalServiceTest, testGetLoadingProgressSuccessWithNoFile) { mIncFs->countFilledBlocksSuccess(); mFs->hasNoFile(); |