| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/tracing/test/fake_scattered_buffer.h" | 5 #include "components/tracing/test/fake_scattered_buffer.h" |
| 6 | 6 |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 uint8_t* begin = chunk.get(); | 22 uint8_t* begin = chunk.get(); |
| 23 memset(begin, 0, chunk_size_); | 23 memset(begin, 0, chunk_size_); |
| 24 chunks_.push_back(std::move(chunk)); | 24 chunks_.push_back(std::move(chunk)); |
| 25 return {begin, begin + chunk_size_}; | 25 return {begin, begin + chunk_size_}; |
| 26 } | 26 } |
| 27 | 27 |
| 28 std::string FakeScatteredBuffer::GetChunkAsString(int chunk_index) { | 28 std::string FakeScatteredBuffer::GetChunkAsString(int chunk_index) { |
| 29 return base::HexEncode(chunks_[chunk_index].get(), chunk_size_); | 29 return base::HexEncode(chunks_[chunk_index].get(), chunk_size_); |
| 30 } | 30 } |
| 31 | 31 |
| 32 void FakeScatteredBuffer::GetBytes(size_t start, size_t length, uint8_t* buf) { |
| 33 ASSERT_LE(start + length, chunks_.size() * chunk_size_); |
| 34 for (size_t pos = 0; pos < length; ++pos) { |
| 35 size_t chunk_index = (start + pos) / chunk_size_; |
| 36 size_t chunk_offset = (start + pos) % chunk_size_; |
| 37 buf[pos] = chunks_[chunk_index].get()[chunk_offset]; |
| 38 } |
| 39 } |
| 40 |
| 32 std::string FakeScatteredBuffer::GetBytesAsString(size_t start, size_t length) { | 41 std::string FakeScatteredBuffer::GetBytesAsString(size_t start, size_t length) { |
| 33 std::string hexstr; | 42 std::string hexstr; |
| 34 EXPECT_LE(start + length, chunks_.size() * chunk_size_); | 43 EXPECT_LE(start + length, chunks_.size() * chunk_size_); |
| 35 for (size_t pos = start; pos < start + length; ++pos) { | 44 for (size_t pos = start; pos < start + length; ++pos) { |
| 36 const size_t chunk_idx = pos / chunk_size_; | 45 const size_t chunk_idx = pos / chunk_size_; |
| 37 const size_t chunk_off = pos % chunk_size_; | 46 const size_t chunk_off = pos % chunk_size_; |
| 38 if (chunk_idx >= chunks_.size()) { | 47 if (chunk_idx >= chunks_.size()) { |
| 39 hexstr += " <OUT OF BOUND @ pos=" + base::SizeTToString(pos) + ">"; | 48 hexstr += " <OUT OF BOUND @ pos=" + base::SizeTToString(pos) + ">"; |
| 40 return hexstr; | 49 return hexstr; |
| 41 } | 50 } |
| 42 hexstr += base::HexEncode(&chunks_[chunk_idx].get()[chunk_off], 1); | 51 hexstr += base::HexEncode(&chunks_[chunk_idx].get()[chunk_off], 1); |
| 43 } | 52 } |
| 44 return hexstr; | 53 return hexstr; |
| 45 } | 54 } |
| 46 | 55 |
| 47 } // namespace v2 | 56 } // namespace v2 |
| 48 } // namespace tracing | 57 } // namespace tracing |
| OLD | NEW |