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

Side by Side Diff: net/spdy/core/lifo_write_scheduler_test.cc

Issue 2844963005: Enable HTTP/2 to use a LIFO scheduler to schedule write. (Closed)
Patch Set: Created 3 years, 7 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/spdy/core/lifo_write_scheduler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2017 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 "net/spdy/core/lifo_write_scheduler.h" 5 #include "net/spdy/core/lifo_write_scheduler.h"
6 6
7 #include "net/spdy/core/spdy_protocol.h" 7 #include "net/spdy/core/spdy_protocol.h"
8 #include "net/spdy/core/spdy_test_utils.h" 8 #include "net/spdy/core/spdy_test_utils.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 lifo.MarkStreamReady(9, true); 54 lifo.MarkStreamReady(9, true);
55 lifo.MarkStreamReady(15, true); 55 lifo.MarkStreamReady(15, true);
56 lifo.MarkStreamReady(7, true); 56 lifo.MarkStreamReady(7, true);
57 lifo.MarkStreamReady(13, true); 57 lifo.MarkStreamReady(13, true);
58 lifo.MarkStreamReady(11, true); 58 lifo.MarkStreamReady(11, true);
59 lifo.MarkStreamReady(3, true); 59 lifo.MarkStreamReady(3, true);
60 lifo.MarkStreamReady(17, true); 60 lifo.MarkStreamReady(17, true);
61 EXPECT_TRUE(lifo.HasReadyStreams()); 61 EXPECT_TRUE(lifo.HasReadyStreams());
62 EXPECT_EQ((uint32_t)7, lifo.NumReadyStreams()); 62 EXPECT_EQ((uint32_t)7, lifo.NumReadyStreams());
63 63
64 EXPECT_SPDY_BUG(lifo.MarkStreamReady(11, true), 64 // Verify MarkStream(Not)Ready() can be called multiple times for the same
65 "Stream already exists in the list"); 65 // stream.
66 EXPECT_SPDY_BUG(lifo.MarkStreamNotReady(5), 66 lifo.MarkStreamReady(11, true);
67 "Try to remove a stream that is not on list"); 67 lifo.MarkStreamNotReady(5);
68 EXPECT_SPDY_BUG(lifo.MarkStreamNotReady(21), 68 lifo.MarkStreamNotReady(21);
69 "Try to remove a stream that is not on list");
70 69
71 EXPECT_EQ((uint32_t)17, lifo.PopNextReadyStream()); 70 EXPECT_EQ((uint32_t)17, lifo.PopNextReadyStream());
72 EXPECT_EQ((uint32_t)15, std::get<0>(lifo.PopNextReadyStreamAndPrecedence())); 71 EXPECT_EQ((uint32_t)15, std::get<0>(lifo.PopNextReadyStreamAndPrecedence()));
73 EXPECT_TRUE(lifo.ShouldYield(9)); 72 EXPECT_TRUE(lifo.ShouldYield(9));
74 EXPECT_FALSE(lifo.ShouldYield(13)); 73 EXPECT_FALSE(lifo.ShouldYield(13));
75 EXPECT_FALSE(lifo.ShouldYield(15)); 74 EXPECT_FALSE(lifo.ShouldYield(15));
76 75
77 lifo.MarkStreamNotReady(3); 76 lifo.MarkStreamNotReady(3);
78 EXPECT_TRUE(peer.GetReadyList()->find(3) == peer.GetReadyList()->end()); 77 EXPECT_TRUE(peer.GetReadyList()->find(3) == peer.GetReadyList()->end());
79 lifo.MarkStreamNotReady(13); 78 lifo.MarkStreamNotReady(13);
80 EXPECT_TRUE(peer.GetReadyList()->find(13) == peer.GetReadyList()->end()); 79 EXPECT_TRUE(peer.GetReadyList()->find(13) == peer.GetReadyList()->end());
81 lifo.MarkStreamNotReady(7); 80 lifo.MarkStreamNotReady(7);
82 EXPECT_TRUE(peer.GetReadyList()->find(7) == peer.GetReadyList()->end()); 81 EXPECT_TRUE(peer.GetReadyList()->find(7) == peer.GetReadyList()->end());
83 EXPECT_EQ((uint32_t)2, lifo.NumReadyStreams()); 82 EXPECT_EQ((uint32_t)2, lifo.NumReadyStreams());
83
84 lifo.MarkStreamNotReady(9);
85 lifo.MarkStreamNotReady(11);
86 EXPECT_FALSE(lifo.ShouldYield(1));
84 } 87 }
85 88
86 // Test add and remove from registered list. 89 // Test add and remove from registered list.
87 TEST(LifoWriteSchedulerTest, RegisterListTest) { 90 TEST(LifoWriteSchedulerTest, RegisterListTest) {
88 LifoWriteScheduler<SpdyStreamId> lifo; 91 LifoWriteScheduler<SpdyStreamId> lifo;
89 LifoWriteSchedulerPeer<SpdyStreamId> peer(&lifo); 92 LifoWriteSchedulerPeer<SpdyStreamId> peer(&lifo);
90 SpdyStreamPrecedence precedence(1); 93 SpdyStreamPrecedence precedence(1);
91 lifo.RegisterStream(3, precedence); 94 lifo.RegisterStream(3, precedence);
92 lifo.RegisterStream(5, precedence); 95 lifo.RegisterStream(5, precedence);
93 lifo.RegisterStream(7, precedence); 96 lifo.RegisterStream(7, precedence);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 EXPECT_EQ(3, lifo.GetLatestEventWithPrecedence(5)); 140 EXPECT_EQ(3, lifo.GetLatestEventWithPrecedence(5));
138 EXPECT_EQ(4, lifo.GetLatestEventWithPrecedence(3)); 141 EXPECT_EQ(4, lifo.GetLatestEventWithPrecedence(3));
139 EXPECT_EQ(8, lifo.GetLatestEventWithPrecedence(1)); 142 EXPECT_EQ(8, lifo.GetLatestEventWithPrecedence(1));
140 EXPECT_SPDY_BUG(lifo.GetLatestEventWithPrecedence(11), 143 EXPECT_SPDY_BUG(lifo.GetLatestEventWithPrecedence(11),
141 "Stream 11 is not registered"); 144 "Stream 11 is not registered");
142 } 145 }
143 146
144 } // namespace test 147 } // namespace test
145 148
146 } // namespace net 149 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/core/lifo_write_scheduler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698