| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "src/developer/debug/zxdb/expr/expr_value_source.h" |
| |
| #include <gtest/gtest.h> |
| |
| namespace zxdb { |
| |
| TEST(ExprValueSource, SetBits) { |
| // Masking with no shift. |
| ExprValueSource no_shift_8_bits(0x1000, 8, 0); |
| EXPECT_EQ(123u, no_shift_8_bits.SetBits(0, 123)); // Write random number |
| EXPECT_EQ(255u, no_shift_8_bits.SetBits(0, 0xfffffffffu)); // Set all bits |
| EXPECT_EQ(0xffffff00u, no_shift_8_bits.SetBits(0xffffffffu, 0)); // Clear all bits. |
| |
| // Masking with shift. |
| ExprValueSource shift_3_8_bits(0x1000, 8, 3); |
| EXPECT_EQ(123u << 3, shift_3_8_bits.SetBits(0, 123)); // Write random number. |
| EXPECT_EQ(0xffu << 3, shift_3_8_bits.SetBits(0, 0xff)); // Set all bits. |
| EXPECT_EQ(0xf807u, shift_3_8_bits.SetBits(0xffff, 0)); |
| } |
| |
| } // namespace zxdb |