Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2184)

Unified Diff: net/quic/quic_fec_group_test.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_fec_group.cc ('k') | net/quic/quic_flags.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_fec_group_test.cc
diff --git a/net/quic/quic_fec_group_test.cc b/net/quic/quic_fec_group_test.cc
deleted file mode 100644
index a918aeb2ba8b47b5af480db41799bd056a7b8aee..0000000000000000000000000000000000000000
--- a/net/quic/quic_fec_group_test.cc
+++ /dev/null
@@ -1,242 +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/quic_fec_group.h"
-
-#include <algorithm>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
-#include "testing/gmock/include/gmock/gmock.h"
-
-using ::testing::_;
-using base::StringPiece;
-
-namespace net {
-
-namespace {
-
-const char* const kData[] = {
- "abc12345678",
- "987defg",
- "ghi12345",
- "987jlkmno",
- "mno4567890",
- "789pqrstuvw",
-};
-
-const bool kEntropyFlag[] = {
- false,
- true,
- true,
- false,
- true,
- true,
-};
-
-} // namespace
-
-class QuicFecGroupTest : public ::testing::Test {
- protected:
- void RunTest(size_t num_packets, size_t lost_packet, bool out_of_order) {
- size_t max_len = strlen(kData[0]);
- scoped_ptr<char[]> redundancy(new char[max_len]);
- for (size_t packet = 0; packet < num_packets; ++packet) {
- for (size_t i = 0; i < max_len; i++) {
- if (packet == 0) {
- // Initialize to the first packet.
- redundancy[i] = kData[0][i];
- continue;
- }
- // XOR in the remaining packets.
- uint8 byte = i > strlen(kData[packet]) ? 0x00 : kData[packet][i];
- redundancy[i] = redundancy[i] ^ byte;
- }
- }
-
- QuicFecGroup group;
-
- // If we're out of order, send the FEC packet in the position of the
- // lost packet. Otherwise send all (non-missing) packets, then FEC.
- if (out_of_order) {
- // Update the FEC state for each non-lost packet.
- for (size_t packet = 0; packet < num_packets; packet++) {
- if (packet == lost_packet) {
- ASSERT_FALSE(group.IsFinished());
- QuicFecData fec;
- fec.fec_group = 0;
- fec.redundancy = StringPiece(redundancy.get(), strlen(kData[0]));
- ASSERT_TRUE(group.UpdateFec(ENCRYPTION_FORWARD_SECURE, num_packets,
- fec));
- } else {
- QuicPacketHeader header;
- header.packet_sequence_number = packet;
- header.entropy_flag = kEntropyFlag[packet];
- ASSERT_TRUE(group.Update(ENCRYPTION_FORWARD_SECURE, header,
- kData[packet]));
- }
- ASSERT_TRUE(group.CanRevive() == (packet == num_packets - 1));
- }
- } else {
- // Update the FEC state for each non-lost packet.
- for (size_t packet = 0; packet < num_packets; packet++) {
- if (packet == lost_packet) {
- continue;
- }
-
- QuicPacketHeader header;
- header.packet_sequence_number = packet;
- header.entropy_flag = kEntropyFlag[packet];
- ASSERT_TRUE(group.Update(ENCRYPTION_FORWARD_SECURE, header,
- kData[packet]));
- ASSERT_FALSE(group.CanRevive());
- }
-
- ASSERT_FALSE(group.IsFinished());
- // Attempt to revive the missing packet.
- QuicFecData fec;
- fec.fec_group = 0;
- fec.redundancy = StringPiece(redundancy.get(), strlen(kData[0]));
-
- ASSERT_TRUE(group.UpdateFec(ENCRYPTION_FORWARD_SECURE, num_packets,
- fec));
- }
- QuicPacketHeader header;
- char recovered[kMaxPacketSize];
- ASSERT_TRUE(group.CanRevive());
- size_t len = group.Revive(&header, recovered, arraysize(recovered));
- ASSERT_NE(0u, len)
- << "Failed to revive packet " << lost_packet << " out of "
- << num_packets;
- EXPECT_EQ(lost_packet, header.packet_sequence_number)
- << "Failed to revive packet " << lost_packet << " out of "
- << num_packets;
- // Revived packets have an unknown entropy.
- EXPECT_FALSE(header.entropy_flag);
- ASSERT_GE(len, strlen(kData[lost_packet])) << "Incorrect length";
- for (size_t i = 0; i < strlen(kData[lost_packet]); i++) {
- EXPECT_EQ(kData[lost_packet][i], recovered[i]);
- }
- ASSERT_TRUE(group.IsFinished());
- }
-};
-
-TEST_F(QuicFecGroupTest, UpdateAndRevive) {
- RunTest(2, 0, false);
- RunTest(2, 1, false);
-
- RunTest(3, 0, false);
- RunTest(3, 1, false);
- RunTest(3, 2, false);
-}
-
-TEST_F(QuicFecGroupTest, UpdateAndReviveOutOfOrder) {
- RunTest(2, 0, true);
- RunTest(2, 1, true);
-
- RunTest(3, 0, true);
- RunTest(3, 1, true);
- RunTest(3, 2, true);
-}
-
-TEST_F(QuicFecGroupTest, UpdateFecIfReceivedPacketIsNotCovered) {
- char data1[] = "abc123";
- char redundancy[arraysize(data1)];
- for (size_t i = 0; i < arraysize(data1); i++) {
- redundancy[i] = data1[i];
- }
-
- QuicFecGroup group;
-
- QuicPacketHeader header;
- header.packet_sequence_number = 3;
- group.Update(ENCRYPTION_FORWARD_SECURE, header, data1);
-
- QuicFecData fec;
- fec.fec_group = 1;
- fec.redundancy = redundancy;
-
- header.packet_sequence_number = 2;
- ASSERT_FALSE(group.UpdateFec(ENCRYPTION_FORWARD_SECURE, 2, fec));
-}
-
-TEST_F(QuicFecGroupTest, ProtectsPacketsBefore) {
- QuicPacketHeader header;
- header.packet_sequence_number = 3;
-
- QuicFecGroup group;
- ASSERT_TRUE(group.Update(ENCRYPTION_FORWARD_SECURE, header, kData[0]));
-
- EXPECT_FALSE(group.ProtectsPacketsBefore(1));
- EXPECT_FALSE(group.ProtectsPacketsBefore(2));
- EXPECT_FALSE(group.ProtectsPacketsBefore(3));
- EXPECT_TRUE(group.ProtectsPacketsBefore(4));
- EXPECT_TRUE(group.ProtectsPacketsBefore(5));
- EXPECT_TRUE(group.ProtectsPacketsBefore(50));
-}
-
-TEST_F(QuicFecGroupTest, ProtectsPacketsBeforeWithSeveralPackets) {
- QuicPacketHeader header;
- header.packet_sequence_number = 3;
-
- QuicFecGroup group;
- ASSERT_TRUE(group.Update(ENCRYPTION_FORWARD_SECURE, header, kData[0]));
-
- header.packet_sequence_number = 7;
- ASSERT_TRUE(group.Update(ENCRYPTION_FORWARD_SECURE, header, kData[0]));
-
- header.packet_sequence_number = 5;
- ASSERT_TRUE(group.Update(ENCRYPTION_FORWARD_SECURE, header, kData[0]));
-
- EXPECT_FALSE(group.ProtectsPacketsBefore(1));
- EXPECT_FALSE(group.ProtectsPacketsBefore(2));
- EXPECT_FALSE(group.ProtectsPacketsBefore(3));
- EXPECT_TRUE(group.ProtectsPacketsBefore(4));
- EXPECT_TRUE(group.ProtectsPacketsBefore(5));
- EXPECT_TRUE(group.ProtectsPacketsBefore(6));
- EXPECT_TRUE(group.ProtectsPacketsBefore(7));
- EXPECT_TRUE(group.ProtectsPacketsBefore(8));
- EXPECT_TRUE(group.ProtectsPacketsBefore(9));
- EXPECT_TRUE(group.ProtectsPacketsBefore(50));
-}
-
-TEST_F(QuicFecGroupTest, ProtectsPacketsBeforeWithFecData) {
- QuicFecData fec;
- fec.fec_group = 2;
- fec.redundancy = kData[0];
-
- QuicFecGroup group;
- ASSERT_TRUE(group.UpdateFec(ENCRYPTION_FORWARD_SECURE, 3, fec));
-
- EXPECT_FALSE(group.ProtectsPacketsBefore(1));
- EXPECT_FALSE(group.ProtectsPacketsBefore(2));
- EXPECT_TRUE(group.ProtectsPacketsBefore(3));
- EXPECT_TRUE(group.ProtectsPacketsBefore(4));
- EXPECT_TRUE(group.ProtectsPacketsBefore(5));
- EXPECT_TRUE(group.ProtectsPacketsBefore(50));
-}
-
-TEST_F(QuicFecGroupTest, EffectiveEncryptionLevel) {
- QuicFecGroup group;
- EXPECT_EQ(NUM_ENCRYPTION_LEVELS, group.effective_encryption_level());
-
- QuicPacketHeader header;
- header.packet_sequence_number = 5;
- ASSERT_TRUE(group.Update(ENCRYPTION_INITIAL, header, kData[0]));
- EXPECT_EQ(ENCRYPTION_INITIAL, group.effective_encryption_level());
-
- QuicFecData fec;
- fec.fec_group = 0;
- fec.redundancy = kData[0];
- ASSERT_TRUE(group.UpdateFec(ENCRYPTION_FORWARD_SECURE, 7, fec));
- EXPECT_EQ(ENCRYPTION_INITIAL, group.effective_encryption_level());
-
- header.packet_sequence_number = 3;
- ASSERT_TRUE(group.Update(ENCRYPTION_NONE, header, kData[0]));
- EXPECT_EQ(ENCRYPTION_NONE, group.effective_encryption_level());
-}
-
-} // namespace net
« no previous file with comments | « net/quic/quic_fec_group.cc ('k') | net/quic/quic_flags.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698