summaryrefslogtreecommitdiff
path: root/payload_consumer/filesystem_verifier_action_unittest.cc
diff options
context:
space:
mode:
authorAndroid Build Role Account android-build-prod <android-build-team-robot@google.com>2021-04-10 10:07:47 +0000
committerAndroid Build Role Account android-build-prod <android-build-team-robot@google.com>2021-04-10 10:07:47 +0000
commit8ff9e865836a6d307aa5c37f08318c5938a0bcc6 (patch)
tree8c26ca98b9e4e5bd1535df8a66df3371ec646080 /payload_consumer/filesystem_verifier_action_unittest.cc
parentaae41a1bf81c4141ebd5c61d1295d165bdc897a3 (diff)
parent3a4cdf5b5bee8d156df159f79b3effb36704a9c2 (diff)
Snap for 7273026 from 3a4cdf5b5bee8d156df159f79b3effb36704a9c2 to s-keystone-qcom-release
Change-Id: Icff2659f55944be0d878a59e26e3bc77a5c16e51
Diffstat (limited to 'payload_consumer/filesystem_verifier_action_unittest.cc')
-rw-r--r--payload_consumer/filesystem_verifier_action_unittest.cc24
1 files changed, 23 insertions, 1 deletions
diff --git a/payload_consumer/filesystem_verifier_action_unittest.cc b/payload_consumer/filesystem_verifier_action_unittest.cc
index 2cad5232..c1006842 100644
--- a/payload_consumer/filesystem_verifier_action_unittest.cc
+++ b/payload_consumer/filesystem_verifier_action_unittest.cc
@@ -26,8 +26,8 @@
#include <brillo/message_loops/message_loop_utils.h>
#include <brillo/secure_blob.h>
#include <gtest/gtest.h>
+#include <libsnapshot/snapshot_writer.h>
-#include "gmock/gmock-actions.h"
#include "update_engine/common/dynamic_partition_control_stub.h"
#include "update_engine/common/hash_calculator.h"
#include "update_engine/common/mock_dynamic_partition_control.h"
@@ -463,4 +463,26 @@ TEST_F(FilesystemVerifierActionTest, RunWithVABCNoVerity) {
ASSERT_EQ(actual_read_size, part.target_size);
}
+TEST_F(FilesystemVerifierActionTest, ReadAfterWrite) {
+ constexpr auto BLOCK_SIZE = 4096;
+ ScopedTempFile cow_device_file("cow_device.XXXXXX", true);
+ android::snapshot::CompressedSnapshotWriter snapshot_writer{
+ {.block_size = BLOCK_SIZE}};
+ snapshot_writer.SetCowDevice(android::base::unique_fd{cow_device_file.fd()});
+ snapshot_writer.Initialize();
+ std::vector<unsigned char> buffer;
+ buffer.resize(BLOCK_SIZE);
+ std::fill(buffer.begin(), buffer.end(), 123);
+
+ ASSERT_TRUE(snapshot_writer.AddRawBlocks(0, buffer.data(), buffer.size()));
+ ASSERT_TRUE(snapshot_writer.Finalize());
+ auto cow_reader = snapshot_writer.OpenReader();
+ ASSERT_NE(cow_reader, nullptr);
+ ASSERT_TRUE(snapshot_writer.AddRawBlocks(1, buffer.data(), buffer.size()));
+ ASSERT_TRUE(snapshot_writer.AddRawBlocks(2, buffer.data(), buffer.size()));
+ ASSERT_TRUE(snapshot_writer.Finalize());
+ cow_reader = snapshot_writer.OpenReader();
+ ASSERT_NE(cow_reader, nullptr);
+}
+
} // namespace chromeos_update_engine