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

Side by Side Diff: net/quic/quic_multipath_transmissions_map_test.cc

Issue 2193073003: Move shared files in net/quic/ into net/quic/core/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: io_thread_unittest.cc Created 4 years, 4 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 unified diff | Download patch
« no previous file with comments | « net/quic/quic_multipath_transmissions_map.cc ('k') | net/quic/quic_one_block_arena.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "net/quic/quic_multipath_transmissions_map.h"
6 #include "testing/gtest/include/gtest/gtest.h"
7
8 namespace net {
9 namespace test {
10 namespace {
11
12 TEST(QuicAcrossPathsTransmissionMapTest, OnPacketRetransmittedOnDifferentPath) {
13 QuicMultipathTransmissionsMap transmission_map;
14 // Packet0's original transmission sent on path 1 with packet number 1.
15 QuicPathIdPacketNumber packet0_0(1, 1);
16 // Packet0's retransmission sent on path 2 with packet number 1.
17 QuicPathIdPacketNumber packet0_1(2, 1);
18 // packet0's 2nd retransmission sent on path 3 with packet number 1.
19 QuicPathIdPacketNumber packet0_2(3, 1);
20
21 transmission_map.OnPacketRetransmittedOnDifferentPath(packet0_0, packet0_1);
22 const QuicMultipathTransmissionsMap::MultipathTransmissionsList*
23 transmission_list1 =
24 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet0_0);
25 EXPECT_EQ(packet0_0, (*transmission_list1)[0]);
26 EXPECT_EQ(packet0_1, (*transmission_list1)[1]);
27
28 transmission_map.OnPacketRetransmittedOnDifferentPath(packet0_1, packet0_2);
29 const QuicMultipathTransmissionsMap::MultipathTransmissionsList*
30 transmission_list2 =
31 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet0_0);
32 EXPECT_EQ(packet0_0, (*transmission_list2)[0]);
33 EXPECT_EQ(packet0_1, (*transmission_list2)[1]);
34 EXPECT_EQ(packet0_2, (*transmission_list2)[2]);
35 // Make sure there is no memory leakage.
36 }
37
38 TEST(QuicAcrossPathsTransmissionMapTest, MaybeGetTransmissionsOnOtherPaths) {
39 QuicMultipathTransmissionsMap transmission_map;
40 // Packet0's original transmission sent on path 1 with packet number 1.
41 QuicPathIdPacketNumber packet0_0(1, 1);
42 // Packet0's retransmission sent on path 2 with packet number 1.
43 QuicPathIdPacketNumber packet0_1(2, 1);
44 // packet0's 2nd retransmission sent on path 3 with packet number 1.
45 QuicPathIdPacketNumber packet0_2(3, 1);
46
47 transmission_map.OnPacketRetransmittedOnDifferentPath(packet0_0, packet0_1);
48 transmission_map.OnPacketRetransmittedOnDifferentPath(packet0_1, packet0_2);
49
50 const QuicMultipathTransmissionsMap::MultipathTransmissionsList*
51 transmission_list1 =
52 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet0_0);
53 const QuicMultipathTransmissionsMap::MultipathTransmissionsList*
54 transmission_list2 =
55 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet0_1);
56 const QuicMultipathTransmissionsMap::MultipathTransmissionsList*
57 transmission_list3 =
58 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet0_2);
59 // Make sure all three pointers point to the same list.
60 EXPECT_EQ(transmission_list1, transmission_list2);
61 EXPECT_EQ(transmission_list2, transmission_list3);
62 EXPECT_EQ(packet0_0, (*transmission_list1)[0]);
63 EXPECT_EQ(packet0_1, (*transmission_list1)[1]);
64 EXPECT_EQ(packet0_2, (*transmission_list1)[2]);
65
66 // Packet1 which is not transmitted across path.
67 QuicPathIdPacketNumber packet1_0(1, 2);
68 EXPECT_EQ(nullptr,
69 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet1_0));
70 // Make sure there is no memory leakage.
71 }
72
73 TEST(QuicAcrossPathsTransmissionMapTest, OnPacketHandled) {
74 QuicMultipathTransmissionsMap transmission_map;
75
76 // Packet's original transmission sent on path 1 with packet number 1.
77 QuicPathIdPacketNumber packet0_0(1, 1);
78 // Packet's retransmission sent on path 2 with packet number 1.
79 QuicPathIdPacketNumber packet0_1(2, 1);
80 // packet's 2nd retransmission sent on path 3 with packet number 1.
81 QuicPathIdPacketNumber packet0_2(3, 1);
82 transmission_map.OnPacketRetransmittedOnDifferentPath(packet0_0, packet0_1);
83 transmission_map.OnPacketRetransmittedOnDifferentPath(packet0_1, packet0_2);
84
85 // Packet1's original transmission sent on path 1 with packet number 2.
86 QuicPathIdPacketNumber packet1_0(1, 2);
87 // Packet1's retransmission sent on path 2 with packet number 2.
88 QuicPathIdPacketNumber packet1_1(2, 2);
89 transmission_map.OnPacketRetransmittedOnDifferentPath(packet1_0, packet1_1);
90
91 transmission_map.OnPacketHandled(packet0_0);
92 EXPECT_EQ(nullptr,
93 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet0_0));
94 EXPECT_EQ(nullptr,
95 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet0_1));
96 EXPECT_EQ(nullptr,
97 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet0_2));
98 const QuicMultipathTransmissionsMap::MultipathTransmissionsList*
99 transmission_list =
100 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet1_0);
101 EXPECT_EQ(packet1_0, (*transmission_list)[0]);
102 EXPECT_EQ(packet1_1, (*transmission_list)[1]);
103 // Packet 1 is received on path 2.
104 transmission_map.OnPacketHandled(packet1_1);
105 EXPECT_EQ(nullptr,
106 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet1_0));
107 EXPECT_EQ(nullptr,
108 transmission_map.MaybeGetTransmissionsOnOtherPaths(packet1_1));
109 // Make sure there is no memory leakage.
110 }
111
112 } // namespace
113 } // namespace test
114 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_multipath_transmissions_map.cc ('k') | net/quic/quic_one_block_arena.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698