| Index: net/quic/test_tools/quic_test_utils.cc
|
| ===================================================================
|
| --- net/quic/test_tools/quic_test_utils.cc (revision 162262)
|
| +++ net/quic/test_tools/quic_test_utils.cc (working copy)
|
| @@ -1,140 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium 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 "net/quic/test_tools/quic_test_utils.h"
|
| -#include "net/quic/crypto/crypto_framer.h"
|
| -
|
| -using std::max;
|
| -using std::min;
|
| -using std::string;
|
| -
|
| -namespace net {
|
| -namespace test {
|
| -
|
| -MockFramerVisitor::MockFramerVisitor() {
|
| - // By default, we want to accept packets.
|
| - ON_CALL(*this, OnPacketHeader(testing::_))
|
| - .WillByDefault(testing::Return(true));
|
| -}
|
| -
|
| -MockFramerVisitor::~MockFramerVisitor() {}
|
| -
|
| -bool NoOpFramerVisitor::OnPacketHeader(const QuicPacketHeader& header) {
|
| - return true;
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -string HexDumpWithMarks(const char* data, int length,
|
| - const bool* marks, int mark_length) {
|
| - static const char kHexChars[] = "0123456789abcdef";
|
| - static const int kColumns = 4;
|
| -
|
| - const int kSizeLimit = 1024;
|
| - if (length > kSizeLimit || mark_length > kSizeLimit) {
|
| - LOG(ERROR) << "Only dumping first " << kSizeLimit << " bytes.";
|
| - length = min(length, kSizeLimit);
|
| - mark_length = min(mark_length, kSizeLimit);
|
| - }
|
| -
|
| - string hex;
|
| - for (const char* row = data; length > 0;
|
| - row += kColumns, length -= kColumns) {
|
| - for (const char *p = row; p < row + 4; ++p) {
|
| - if (p < row + length) {
|
| - const bool mark =
|
| - (marks && (p - data) < mark_length && marks[p - data]);
|
| - hex += mark ? '*' : ' ';
|
| - hex += kHexChars[(*p & 0xf0) >> 4];
|
| - hex += kHexChars[*p & 0x0f];
|
| - hex += mark ? '*' : ' ';
|
| - } else {
|
| - hex += " ";
|
| - }
|
| - }
|
| - hex = hex + " ";
|
| -
|
| - for (const char *p = row; p < row + 4 && p < row + length; ++p)
|
| - hex += (*p >= 0x20 && *p <= 0x7f) ? (*p) : '.';
|
| -
|
| - hex = hex + '\n';
|
| - }
|
| - return hex;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -void CompareCharArraysWithHexError(
|
| - const string& description,
|
| - const char* actual,
|
| - const int actual_len,
|
| - const char* expected,
|
| - const int expected_len) {
|
| - const int min_len = min(actual_len, expected_len);
|
| - const int max_len = max(actual_len, expected_len);
|
| - scoped_array<bool> marks(new bool[max_len]);
|
| - bool identical = (actual_len == expected_len);
|
| - for (int i = 0; i < min_len; ++i) {
|
| - if (actual[i] != expected[i]) {
|
| - marks[i] = true;
|
| - identical = false;
|
| - } else {
|
| - marks[i] = false;
|
| - }
|
| - }
|
| - for (int i = min_len; i < max_len; ++i) {
|
| - marks[i] = true;
|
| - }
|
| - if (identical) return;
|
| - ADD_FAILURE()
|
| - << "Description:\n"
|
| - << description
|
| - << "\n\nExpected:\n"
|
| - << HexDumpWithMarks(expected, expected_len, marks.get(), max_len)
|
| - << "\nActual:\n"
|
| - << HexDumpWithMarks(actual, actual_len, marks.get(), max_len);
|
| -}
|
| -
|
| -void CompareQuicDataWithHexError(
|
| - const string& description,
|
| - QuicData* actual,
|
| - QuicData* expected) {
|
| - CompareCharArraysWithHexError(
|
| - description,
|
| - actual->data(), actual->length(),
|
| - expected->data(), expected->length());
|
| -}
|
| -
|
| -QuicPacket* ConstructHandshakePacket(QuicGuid guid, CryptoTag tag) {
|
| - CryptoHandshakeMessage message;
|
| - message.tag = tag;
|
| - CryptoFramer crypto_framer;
|
| - QuicData* data;
|
| - crypto_framer.ConstructHandshakeMessage(message, &data);
|
| - QuicFramer quic_framer(QuicDecrypter::Create(kNULL),
|
| - QuicEncrypter::Create(kNULL));
|
| -
|
| - QuicPacketHeader header;
|
| - header.guid = guid;
|
| - header.retransmission_count = 0;
|
| - header.packet_sequence_number = 1;
|
| - header.transmission_time = 0;
|
| - header.flags = PACKET_FLAGS_NONE;
|
| - header.fec_group = 0;
|
| -
|
| - QuicStreamFragment stream_fragment(kCryptoStreamId, false, 0,
|
| - data->AsStringPiece());
|
| -
|
| - QuicFragment fragment(&stream_fragment);
|
| - QuicFragments fragments;
|
| - fragments.push_back(fragment);
|
| - QuicPacket* packet;
|
| - quic_framer.ConstructFragementDataPacket(header, fragments, &packet);
|
| - delete data;
|
| - return packet;
|
| -}
|
| -
|
| -} // namespace test
|
| -
|
| -} // namespace net
|
|
|