| 773 | /// array |
| 774 | template <typename Int> |
| 775 | void TestLEB128Encode(Int input_value, const std::vector<uint8_t>& expected_data, |
| 776 | std::size_t buffer_size) { |
| 777 | std::vector<uint8_t> buffer(buffer_size); |
| 778 | auto bytes_written = bit_util::WriteLEB128(input_value, buffer.data(), |
| 779 | static_cast<int32_t>(buffer.size())); |
| 780 | |
| 781 | EXPECT_EQ(bytes_written, expected_data.size()); |
| 782 | // Encoded data |
| 783 | for (std::size_t i = 0; i < expected_data.size(); ++i) { |
| 784 | EXPECT_EQ(buffer.at(i), expected_data.at(i)); |
| 785 | } |
| 786 | |
| 787 | // When the value is successfully encoded, the remaining of the buffer is untouched |
| 788 | if (bytes_written > 0) { |
| 789 | for (std::size_t i = bytes_written; i < buffer.size(); ++i) { |
| 790 | EXPECT_EQ(buffer.at(i), 0); |
| 791 | } |
| 792 | } |
| 793 | } |
| 794 | |
| 795 | /// Test encoding to known LEB128 byte sequences with edge cases parameters. |
| 796 | /// \see LEB128.KnownSuccessfulValues for other known values tested. |
no test coverage detected