diff options
author | Alex Deymo <deymo@chromium.org> | 2015-08-03 20:23:03 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-08-06 09:44:23 +0000 |
commit | b9e8e26f843bc66d862c8b1a86be4475cbecbc8c (patch) | |
tree | 8dd8dc96db12ae8a6dc1983c1b718764a8103e73 /filesystem_verifier_action_unittest.cc | |
parent | f6ee0163504eaf1a7cc136ba2c075d77ae2b4dd5 (diff) |
update_engine: Use FileStream in FilesystemVerifierAction.
Instead of dealing manually with the read from the partition while
verifying the filesystem, this patch uses chromeos::FileStream to do
that.
The base::MessageLoopForIO can't wait on regular files because libevent
will fail when trying to watch for such file descriptor. While
chromeos::Stream will still attempt to wait on the file descriptor in
such situation, that will be fixed in chromeos::Streams in a different
CL.
BUG=chromium:499886
TEST=Unittests still pass.
Change-Id: Icd6a031ac1137b1b5746a5c3413506ece79223cc
Reviewed-on: https://chromium-review.googlesource.com/290542
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Trybot-Ready: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Diffstat (limited to 'filesystem_verifier_action_unittest.cc')
-rw-r--r-- | filesystem_verifier_action_unittest.cc | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/filesystem_verifier_action_unittest.cc b/filesystem_verifier_action_unittest.cc index da0fd955..66f8571a 100644 --- a/filesystem_verifier_action_unittest.cc +++ b/filesystem_verifier_action_unittest.cc @@ -352,6 +352,8 @@ TEST_F(FilesystemVerifierActionTest, RunAsRootVerifyHashFailTest) { TEST_F(FilesystemVerifierActionTest, RunAsRootTerminateEarlyTest) { ASSERT_EQ(0, getuid()); EXPECT_TRUE(DoTest(true, false, PartitionType::kKernel)); + // TerminateEarlyTest may leak some null callbacks from the Stream class. + while (loop_.RunOnce(false)) {} } TEST_F(FilesystemVerifierActionTest, RunAsRootDetermineFilesystemSizeTest) { @@ -362,19 +364,18 @@ TEST_F(FilesystemVerifierActionTest, RunAsRootDetermineFilesystemSizeTest) { // Extend the "partition" holding the file system from 10MiB to 20MiB. EXPECT_EQ(0, truncate(img.c_str(), 20 * 1024 * 1024)); - for (int i = 0; i < 2; ++i) { - PartitionType fs_type = - i ? PartitionType::kSourceKernel : PartitionType::kSourceRootfs; - FilesystemVerifierAction action(&fake_system_state_, fs_type); + { + FilesystemVerifierAction action(&fake_system_state_, + PartitionType::kSourceKernel); EXPECT_EQ(kint64max, action.remaining_size_); - { - int fd = HANDLE_EINTR(open(img.c_str(), O_RDONLY)); - EXPECT_GT(fd, 0); - ScopedFdCloser fd_closer(&fd); - action.DetermineFilesystemSize(fd); - } - EXPECT_EQ(i ? kint64max : 10 * 1024 * 1024, - action.remaining_size_); + action.DetermineFilesystemSize(img); + EXPECT_EQ(kint64max, action.remaining_size_); + } + { + FilesystemVerifierAction action(&fake_system_state_, + PartitionType::kSourceRootfs); + action.DetermineFilesystemSize(img); + EXPECT_EQ(10 * 1024 * 1024, action.remaining_size_); } } |