Chromium Code Reviews| Index: dm-bht_unittest.cc |
| diff --git a/dm-bht_unittest.cc b/dm-bht_unittest.cc |
| index 8976418f17edc69332098911dd19776fcd883a9f..f0c090ca72ff66714de9f4b7d22db507de2393d0 100644 |
| --- a/dm-bht_unittest.cc |
| +++ b/dm-bht_unittest.cc |
| @@ -29,12 +29,10 @@ void *my_memalign(size_t boundary, size_t size) { |
| return memptr; |
| } |
| - |
| - |
| TEST(DmBht, CreateFailOnOverflow) { |
| struct dm_bht bht; |
| // This should fail. |
| - EXPECT_EQ(-EINVAL, dm_bht_create(&bht, 32, 1, "sha256")); |
| + EXPECT_EQ(-EINVAL, dm_bht_create(&bht, UINT_MAX, "sha1")); |
| } |
| // Simple test to help valgrind/tcmalloc catch bad mem management |
| @@ -46,7 +44,7 @@ TEST(DmBht, CreateZeroPopulateDestroy) { |
| // Store all the block hashes of blocks of 0. |
| memset(reinterpret_cast<void *>(data), 0, sizeof(data)); |
| - EXPECT_EQ(0, dm_bht_create(&bht, 2, blocks, "sha256")); |
| + EXPECT_EQ(0, dm_bht_create(&bht, blocks, "sha256")); |
| dm_bht_set_read_cb(&bht, dm_bht_zeroread_callback); |
| do { |
| EXPECT_EQ(dm_bht_store_block(&bht, blocks - 1, data), 0); |
| @@ -101,11 +99,10 @@ class MemoryBhtTest : public ::testing::Test { |
| protected: |
| // Creates a new dm_bht and sets it in the existing MemoryBht. |
| - void NewBht(const unsigned int depth, |
| - const unsigned int total_blocks, |
| + void NewBht(const unsigned int total_blocks, |
| const char *digest_algorithm) { |
| bht_.reset(new dm_bht()); |
| - EXPECT_EQ(0, dm_bht_create(bht_.get(),depth, total_blocks, |
| + EXPECT_EQ(0, dm_bht_create(bht_.get(), total_blocks, |
| digest_algorithm)); |
| if (hash_data_.get() == NULL) { |
| sectors_ = dm_bht_sectors(bht_.get()); |
| @@ -114,10 +111,9 @@ class MemoryBhtTest : public ::testing::Test { |
| dm_bht_set_write_cb(bht_.get(), MemoryBhtTest::WriteCallback); |
| dm_bht_set_read_cb(bht_.get(), MemoryBhtTest::ReadCallback); |
| } |
| - void SetupBht(const unsigned int depth, |
| - const unsigned int total_blocks, |
| + void SetupBht(const unsigned int total_blocks, |
| const char *digest_algorithm) { |
| - NewBht(depth, total_blocks, digest_algorithm); |
| + NewBht(total_blocks, digest_algorithm); |
| u8 *data = (u8 *)my_memalign(PAGE_SIZE, PAGE_SIZE); |
| @@ -137,7 +133,7 @@ class MemoryBhtTest : public ::testing::Test { |
| EXPECT_EQ(0, dm_bht_destroy(bht_.get())); |
| // bht is now dead and mbht_ is a prepared hash image |
| - NewBht(depth, total_blocks, digest_algorithm); |
| + NewBht(total_blocks, digest_algorithm); |
| // Load the tree from the pre-populated hash data |
| for (blocks = 0; blocks < total_blocks; blocks += bht_->node_count) { |
| @@ -170,30 +166,7 @@ TEST_F(MemoryBhtTest, CreateThenVerifyOk) { |
| memset(zero_page, 0, PAGE_SIZE); |
| - SetupBht(2, total_blocks, "sha256"); |
| - dm_bht_set_root_hexdigest(bht_.get(), |
| - reinterpret_cast<const u8 *>(kRootDigest)); |
| - |
| - for (unsigned int blocks = 0; blocks < total_blocks; ++blocks) { |
| - DLOG(INFO) << "verifying block: " << blocks; |
| - EXPECT_EQ(0, dm_bht_verify_block(bht_.get(), blocks, zero_page)); |
| - } |
| - |
| - EXPECT_EQ(0, dm_bht_destroy(bht_.get())); |
| - free(zero_page); |
| -} |
| - |
| -TEST_F(MemoryBhtTest, CreateThenVerifyMultipleLevels) { |
| - static const unsigned int total_blocks = 16384; |
| - // Set the root hash for a 0-filled image |
| - static const char kRootDigest[] = |
| - "c86619624d3456f711dbb94d4ad79a4b029f6fd3b5a4a90b155c856bf5b3409b"; |
| - // A page of all zeros |
| - u8 *zero_page = (u8 *)my_memalign(PAGE_SIZE, PAGE_SIZE); |
| - |
| - memset(zero_page, 0, PAGE_SIZE); |
| - |
| - SetupBht(4, total_blocks, "sha256"); |
| + SetupBht(total_blocks, "sha256"); |
| dm_bht_set_root_hexdigest(bht_.get(), |
| reinterpret_cast<const u8 *>(kRootDigest)); |
| @@ -206,17 +179,17 @@ TEST_F(MemoryBhtTest, CreateThenVerifyMultipleLevels) { |
| free(zero_page); |
| } |
| -TEST_F(MemoryBhtTest, CreateThenVerifyZeroDepth) { |
| - static const unsigned int total_blocks = 16384; |
| +TEST_F(MemoryBhtTest, CreateThenVerifySingleLevel) { |
|
Will Drewry
2011/04/12 03:12:32
Nit: SingleBlock :) 32 blocks will all end up hash
|
| + static const unsigned int total_blocks = 32; |
| // Set the root hash for a 0-filled image |
| static const char kRootDigest[] = |
| - "45d65d6f9e5a962f4d80b5f1bd7a918152251c27bdad8c5f52b590c129833372"; |
| + "2d3a43008286f56536fa24dcdbf14d342f0548827e374210415c7be0b610d2ba"; |
|
Will Drewry
2011/04/12 03:12:32
FWIW, I did manually cross check this hash:
$ rm /
|
| // A page of all zeros |
| u8 *zero_page = (u8 *)my_memalign(PAGE_SIZE, PAGE_SIZE); |
| memset(zero_page, 0, PAGE_SIZE); |
| - SetupBht(0, total_blocks, "sha256"); |
| + SetupBht(total_blocks, "sha256"); |
| dm_bht_set_root_hexdigest(bht_.get(), |
| reinterpret_cast<const u8 *>(kRootDigest)); |
| @@ -239,7 +212,7 @@ TEST_F(MemoryBhtTest, CreateThenVerifyRealParameters) { |
| memset(zero_page, 0, PAGE_SIZE); |
| - SetupBht(3, total_blocks, "sha256"); |
| + SetupBht(total_blocks, "sha256"); |
| dm_bht_set_root_hexdigest(bht_.get(), |
| reinterpret_cast<const u8 *>(kRootDigest)); |
| @@ -256,13 +229,13 @@ TEST_F(MemoryBhtTest, CreateThenVerifyOddLeafCount) { |
| static const unsigned int total_blocks = 16383; |
| // Set the root hash for a 0-filled image |
| static const char kRootDigest[] = |
| - "c78d187c430465bd7831fe4908247b6ab5107e3a826d933b71e85aa9a932e03c"; |
| + "dc8cec4220d388b05ba75c853f858bb8cc25edfb1d5d2f3be6bdf9edfa66dc6a"; |
| // A page of all zeros |
| u8 *zero_page = (u8 *)my_memalign(PAGE_SIZE, PAGE_SIZE); |
| memset(zero_page, 0, PAGE_SIZE); |
| - SetupBht(4, total_blocks, "sha256"); |
| + SetupBht(total_blocks, "sha256"); |
| dm_bht_set_root_hexdigest(bht_.get(), |
| reinterpret_cast<const u8 *>(kRootDigest)); |
| @@ -279,13 +252,13 @@ TEST_F(MemoryBhtTest, CreateThenVerifyOddNodeCount) { |
| static const unsigned int total_blocks = 16000; |
| // Set the root hash for a 0-filled image |
| static const char kRootDigest[] = |
| - "13e04b6aa410187b900834aa23e45f3e5240b0c4d2fadb2d8836a357c33499f0"; |
| + "10832dd62c427bcf68c56c8de0d1f9c32b61d9e5ddf43c77c56a97b372ad4b07"; |
| // A page of all zeros |
| u8 *zero_page = (u8 *)my_memalign(PAGE_SIZE, PAGE_SIZE); |
| memset(zero_page, 0, PAGE_SIZE); |
| - SetupBht(4, total_blocks, "sha256"); |
| + SetupBht(total_blocks, "sha256"); |
| dm_bht_set_root_hexdigest(bht_.get(), |
| reinterpret_cast<const u8 *>(kRootDigest)); |
| @@ -308,7 +281,7 @@ TEST_F(MemoryBhtTest, CreateThenVerifyBadHashBlock) { |
| memset(zero_page, 0, PAGE_SIZE); |
| - SetupBht(2, total_blocks, "sha256"); |
| + SetupBht(total_blocks, "sha256"); |
| dm_bht_set_root_hexdigest(bht_.get(), |
| reinterpret_cast<const u8 *>(kRootDigest)); |
| @@ -347,7 +320,7 @@ TEST_F(MemoryBhtTest, CreateThenVerifyBadHashBlock) { |
| TEST_F(MemoryBhtTest, CreateThenVerifyBadDataBlock) { |
| static const unsigned int total_blocks = 384; |
| - SetupBht(2, total_blocks, "sha256"); |
| + SetupBht(total_blocks, "sha256"); |
| // Set the root hash for a 0-filled image |
| static const char kRootDigest[] = |
| "45d65d6f9e5a962f4d80b5f1bd7a918152251c27bdad8c5f52b590c129833372"; |