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

Unified Diff: net/spdy/http2_priority_dependencies_unittest.cc

Issue 2832973003: Split net/spdy into core and chromium subdirectories. (Closed)
Patch Set: Fix some more build rules. Created 3 years, 8 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/spdy/http2_priority_dependencies.cc ('k') | net/spdy/lifo_write_scheduler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/http2_priority_dependencies_unittest.cc
diff --git a/net/spdy/http2_priority_dependencies_unittest.cc b/net/spdy/http2_priority_dependencies_unittest.cc
deleted file mode 100644
index 73d1f7d7f749b1f4796b9f17a7fccb22383eab23..0000000000000000000000000000000000000000
--- a/net/spdy/http2_priority_dependencies_unittest.cc
+++ /dev/null
@@ -1,260 +0,0 @@
-// Copyright 2016 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/spdy/http2_priority_dependencies.h"
-
-#include <algorithm>
-
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/platform_test.h"
-
-using ::testing::ContainerEq;
-
-namespace net {
-
-bool operator==(const Http2PriorityDependencies::DependencyUpdate& a,
- const Http2PriorityDependencies::DependencyUpdate& b) {
- return a.id == b.id && a.dependent_stream_id == b.dependent_stream_id &&
- a.exclusive == b.exclusive;
-}
-
-std::ostream& operator<<(
- std::ostream& os,
- const std::vector<Http2PriorityDependencies::DependencyUpdate>& v) {
- for (auto e : v) {
- os << "{" << e.id << "," << e.dependent_stream_id << ","
- << (e.exclusive ? "true" : "false") << "}";
- }
- return os;
-}
-
-class HttpPriorityDependencyTest : public PlatformTest {
- public:
- HttpPriorityDependencyTest() : next_id_(0u) {}
-
- // Fixed priority values to use for testing.
- enum {
- HIGHEST = kV3HighestPriority,
- MEDIUM = HIGHEST + 1,
- LOW = MEDIUM + 1,
- LOWEST = kV3LowestPriority,
- };
-
- SpdyStreamId GetId() { return ++next_id_; }
-
- void TestStreamCreation(SpdyStreamId new_id,
- SpdyPriority priority,
- SpdyStreamId expected_dependent_id) {
- SpdyStreamId dependent_id = 999u;
- bool exclusive = false;
- dependency_state_.OnStreamCreation(new_id, priority, &dependent_id,
- &exclusive);
- if (expected_dependent_id != dependent_id || !exclusive) {
- ADD_FAILURE() << "OnStreamCreation(" << new_id << ", " << int(priority)
- << ")\n"
- << " Got: (" << dependent_id << ", " << exclusive << ")\n"
- << " Want: (" << expected_dependent_id << ", true)\n";
- }
- }
-
- struct ExpectedDependencyUpdate {
- SpdyStreamId id;
- SpdyStreamId parent_id;
- };
-
- void TestStreamUpdate(SpdyStreamId id,
- SpdyPriority new_priority,
- std::vector<ExpectedDependencyUpdate> expected) {
- auto value = dependency_state_.OnStreamUpdate(id, new_priority);
- std::vector<Http2PriorityDependencies::DependencyUpdate> expected_value;
- for (auto e : expected) {
- expected_value.push_back({e.id, e.parent_id, true /* exclusive */});
- }
- if (value != expected_value) {
- ADD_FAILURE() << "OnStreamUpdate(" << id << ", " << int(new_priority)
- << ")\n"
- << " Value: " << value << "\n"
- << " Expected: " << expected_value << "\n";
- }
- }
-
- void OnStreamDestruction(SpdyStreamId id) {
- dependency_state_.OnStreamDestruction(id);
- }
-
- private:
- SpdyStreamId next_id_;
- Http2PriorityDependencies dependency_state_;
-};
-
-// Confirm dependencies correct for entries at the same priority.
-TEST_F(HttpPriorityDependencyTest, SamePriority) {
- const SpdyStreamId first_id = GetId();
- const SpdyStreamId second_id = GetId();
- const SpdyStreamId third_id = GetId();
-
- TestStreamCreation(first_id, MEDIUM, 0u);
- TestStreamCreation(second_id, MEDIUM, first_id);
- TestStreamCreation(third_id, MEDIUM, second_id);
-}
-
-// Confirm dependencies correct for entries at different priorities, increasing.
-TEST_F(HttpPriorityDependencyTest, DifferentPriorityIncreasing) {
- const SpdyStreamId first_id = GetId();
- const SpdyStreamId second_id = GetId();
- const SpdyStreamId third_id = GetId();
-
- TestStreamCreation(first_id, LOWEST, 0u);
- TestStreamCreation(second_id, MEDIUM, 0u);
- TestStreamCreation(third_id, HIGHEST, 0u);
-}
-
-// Confirm dependencies correct for entries at different priorities, increasing.
-TEST_F(HttpPriorityDependencyTest, DifferentPriorityDecreasing) {
- const SpdyStreamId first_id = GetId();
- const SpdyStreamId second_id = GetId();
- const SpdyStreamId third_id = GetId();
-
- TestStreamCreation(first_id, HIGHEST, 0u);
- TestStreamCreation(second_id, MEDIUM, first_id);
- TestStreamCreation(third_id, LOWEST, second_id);
-}
-
-// Confirm dependencies correct if requests are completed between before
-// next creation.
-TEST_F(HttpPriorityDependencyTest, CompletionBeforeIssue) {
- const SpdyStreamId first_id = GetId();
- const SpdyStreamId second_id = GetId();
- const SpdyStreamId third_id = GetId();
-
- TestStreamCreation(first_id, HIGHEST, 0u);
- OnStreamDestruction(first_id);
- TestStreamCreation(second_id, MEDIUM, 0u);
- OnStreamDestruction(second_id);
- TestStreamCreation(third_id, LOWEST, 0u);
-}
-
-// Confirm dependencies correct if some requests are completed between before
-// next creation.
-TEST_F(HttpPriorityDependencyTest, SomeCompletions) {
- const SpdyStreamId first_id = GetId();
- const SpdyStreamId second_id = GetId();
- const SpdyStreamId third_id = GetId();
-
- TestStreamCreation(first_id, HIGHEST, 0u);
- TestStreamCreation(second_id, MEDIUM, first_id);
- OnStreamDestruction(second_id);
- TestStreamCreation(third_id, LOWEST, first_id);
-}
-
-// A more complex example parallel to a simple web page.
-TEST_F(HttpPriorityDependencyTest, Complex) {
- const SpdyStreamId first_id = GetId();
- const SpdyStreamId second_id = GetId();
- const SpdyStreamId third_id = GetId();
- const SpdyStreamId fourth_id = GetId();
- const SpdyStreamId fifth_id = GetId();
- const SpdyStreamId sixth_id = GetId();
- const SpdyStreamId seventh_id = GetId();
- const SpdyStreamId eighth_id = GetId();
- const SpdyStreamId nineth_id = GetId();
- const SpdyStreamId tenth_id = GetId();
-
- TestStreamCreation(first_id, HIGHEST, 0u);
- TestStreamCreation(second_id, MEDIUM, first_id);
- TestStreamCreation(third_id, MEDIUM, second_id);
- OnStreamDestruction(first_id);
- TestStreamCreation(fourth_id, MEDIUM, third_id);
- TestStreamCreation(fifth_id, LOWEST, fourth_id);
- TestStreamCreation(sixth_id, MEDIUM, fourth_id);
- OnStreamDestruction(third_id);
- TestStreamCreation(seventh_id, MEDIUM, sixth_id);
- TestStreamCreation(eighth_id, LOW, seventh_id);
- OnStreamDestruction(second_id);
- OnStreamDestruction(fourth_id);
- OnStreamDestruction(fifth_id);
- OnStreamDestruction(sixth_id);
- OnStreamDestruction(seventh_id);
- TestStreamCreation(nineth_id, MEDIUM, 0u);
- TestStreamCreation(tenth_id, HIGHEST, 0u);
-}
-
-// Confirm dependencies correct after updates with just one stream.
-// All updates are no-ops.
-TEST_F(HttpPriorityDependencyTest, UpdateSingleStream) {
- const SpdyStreamId id = GetId();
-
- TestStreamCreation(id, HIGHEST, 0);
-
- std::vector<ExpectedDependencyUpdate> empty;
- TestStreamUpdate(id, HIGHEST, empty);
- TestStreamUpdate(id, MEDIUM, empty);
- TestStreamUpdate(id, LOWEST, empty);
- TestStreamUpdate(id, HIGHEST, empty);
-}
-
-// Confirm dependencies correct after updates with three streams.
-TEST_F(HttpPriorityDependencyTest, UpdateThreeStreams) {
- const SpdyStreamId first_id = GetId();
- const SpdyStreamId second_id = GetId();
- const SpdyStreamId third_id = GetId();
-
- TestStreamCreation(first_id, HIGHEST, 0);
- TestStreamCreation(second_id, MEDIUM, first_id);
- TestStreamCreation(third_id, LOWEST, second_id);
-
- std::vector<ExpectedDependencyUpdate> empty;
-
- // no-op: still at top.
- TestStreamUpdate(first_id, HIGHEST, empty);
-
- // no-op: still below first.
- TestStreamUpdate(second_id, MEDIUM, empty);
-
- // no-op: still below second.
- TestStreamUpdate(third_id, LOWEST, empty);
-
- // second moves to top, first moves below second.
- TestStreamUpdate(first_id, MEDIUM, {{second_id, 0}, {first_id, second_id}});
-
- // third moves to top.
- TestStreamUpdate(third_id, HIGHEST, {{third_id, 0}});
-
- // third moves to bottom.
- TestStreamUpdate(third_id, LOWEST, {{second_id, 0}, {third_id, first_id}});
-
- // first moves to top.
- TestStreamUpdate(first_id, HIGHEST, {{third_id, second_id}, {first_id, 0}});
-}
-
-// A more complex example parallel to a simple web page with pushed responses.
-TEST_F(HttpPriorityDependencyTest, UpdateComplex) {
- const SpdyStreamId first_id = GetId();
- const SpdyStreamId second_id = GetId(); // pushed
- const SpdyStreamId third_id = GetId(); // pushed
- const SpdyStreamId fourth_id = GetId();
- const SpdyStreamId fifth_id = GetId();
- const SpdyStreamId sixth_id = GetId();
- const SpdyStreamId seventh_id = GetId();
-
- TestStreamCreation(first_id, HIGHEST, 0u);
- TestStreamCreation(second_id, LOWEST, first_id);
- TestStreamCreation(third_id, LOWEST, second_id);
- TestStreamCreation(fourth_id, HIGHEST, first_id);
- TestStreamCreation(fifth_id, MEDIUM, fourth_id);
- TestStreamCreation(sixth_id, MEDIUM, fifth_id);
- TestStreamCreation(seventh_id, LOW, sixth_id);
-
- // second matches a HIGHEST priority response.
- // 3 moves under 7
- // 2 moves under 4
- TestStreamUpdate(second_id, HIGHEST,
- {{third_id, seventh_id}, {second_id, fourth_id}});
-
- // third matches a MEDIUM priority response.
- // 3 moves under 6
- TestStreamUpdate(third_id, MEDIUM, {{third_id, sixth_id}});
-}
-
-} // namespace net
« no previous file with comments | « net/spdy/http2_priority_dependencies.cc ('k') | net/spdy/lifo_write_scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698