summaryrefslogtreecommitdiff
path: root/filesystem_verifier_action_unittest.cc
diff options
context:
space:
mode:
authorAlex Deymo <deymo@chromium.org>2015-08-03 20:23:03 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-08-06 09:44:23 +0000
commitb9e8e26f843bc66d862c8b1a86be4475cbecbc8c (patch)
tree8dd8dc96db12ae8a6dc1983c1b718764a8103e73 /filesystem_verifier_action_unittest.cc
parentf6ee0163504eaf1a7cc136ba2c075d77ae2b4dd5 (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.cc25
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_);
}
}