aboutsummaryrefslogtreecommitdiff
path: root/buffer_view_unittest.cc
diff options
context:
space:
mode:
authorEtienne Pierre-Doray <etiennep@chromium.org>2018-07-25 20:16:02 +0000
committerCopybara-Service <copybara-worker@google.com>2021-07-25 20:33:17 -0700
commita88cad0485f1c73d63ba0a1bcfccc8a68bd300c6 (patch)
treea1e2e0302064526dd50280e84651979b656f0ad2 /buffer_view_unittest.cc
parentae27d8ed0116c53fb530b141e96df91e90c3671c (diff)
downloadzucchini-a88cad0485f1c73d63ba0a1bcfccc8a68bd300c6.tar.gz
[Zucchini] Create elf types and utils.
Creates types and utility class to manipulate ELF header format and relocation references. BufferView: :modify() was also added. Change-Id: Iacec212a2fb2f8a6c85d551eed4b8e0a84926d89 Reviewed-on: https://chromium-review.googlesource.com/1136846 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Greg Thompson <grt@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#578034} NOKEYCHECK=True GitOrigin-RevId: 320f7d9d2cff9702e632af296867bf6ce7b14f8b
Diffstat (limited to 'buffer_view_unittest.cc')
-rw-r--r--buffer_view_unittest.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/buffer_view_unittest.cc b/buffer_view_unittest.cc
index 7df34b2..30170d7 100644
--- a/buffer_view_unittest.cc
+++ b/buffer_view_unittest.cc
@@ -130,6 +130,26 @@ TEST_F(BufferViewTest, Write) {
EXPECT_DEATH(buffer.write<uint32_t>(7, 0xFFFFFFFF), "");
}
+TEST_F(BufferViewTest, Modify) {
+ struct TestStruct {
+ uint32_t a;
+ uint32_t b;
+ };
+
+ MutableBufferView buffer(bytes_.data(), bytes_.size());
+
+ buffer.modify<TestStruct>(0).a = 0x01234567;
+ buffer.modify<TestStruct>(0).b = 0x89ABCDEF;
+ EXPECT_EQ(ParseHexString("67 45 23 01 EF CD AB 89 10 00"),
+ std::vector<uint8_t>(buffer.begin(), buffer.end()));
+
+ buffer.modify<uint8_t>(9);
+ EXPECT_DEATH(buffer.modify<uint8_t>(10), "");
+
+ buffer.modify<uint32_t>(6);
+ EXPECT_DEATH(buffer.modify<uint32_t>(7), "");
+}
+
TEST_F(BufferViewTest, CanAccess) {
MutableBufferView buffer(bytes_.data(), bytes_.size());
EXPECT_TRUE(buffer.can_access<uint32_t>(0));