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

Unified Diff: net/spdy/spdy_protocol_test.cc

Issue 10054034: SPDY - replaced SpdySettings (list) with SettingsMap (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 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
Index: net/spdy/spdy_protocol_test.cc
===================================================================
--- net/spdy/spdy_protocol_test.cc (revision 131881)
+++ net/spdy/spdy_protocol_test.cc (working copy)
@@ -215,7 +215,7 @@
SpdyFramer framer(spdy_version_);
// Create a settings frame with no settings.
- SpdySettings settings;
+ SettingsMap settings;
scoped_ptr<SpdySettingsControlFrame> settings_frame(
framer.CreateSettings(settings));
EXPECT_EQ(framer.protocol_version(), settings_frame->version());
@@ -225,34 +225,65 @@
// We'll add several different ID/Flag combinations and then verify
// that they encode and decode properly.
- SettingsFlagsAndId ids[] = {
+ SettingsFlagsAndId spdy2_ids[] = {
+ // id = 0, flags = 0.
SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x00000000),
+ // id = 1, flags = 0xff.
+ SettingsFlagsAndId::FromWireFormat(spdy_version_, 0xff000001),
+ // id = 2, flags = 1.
+ SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x01000002),
+ // id = 9, flags = 6.
+ SettingsFlagsAndId(6, 9),
+ // id = 0x00ffffff, flags = 0xff.
SettingsFlagsAndId::FromWireFormat(spdy_version_, 0xffffffff),
+ };
+
+ SettingsFlagsAndId spdy3_ids[] = {
+ // id = 0, flags = 0.
+ SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x00000000),
+ // id = 1, flags = 2.
+ SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x01000002),
+ // id = 9, flags = 6.
+ SettingsFlagsAndId(6, 9),
+ // id = 0xff, flags = 1.
SettingsFlagsAndId::FromWireFormat(spdy_version_, 0xff000001),
+ // id = 0x00ffffff, flags = 0xff.
SettingsFlagsAndId::FromWireFormat(spdy_version_, 0xffffffff),
- SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x01000002),
- SettingsFlagsAndId(3, 1)
};
Ryan Hamilton 2012/04/12 17:11:21 How come the spdy2 and spdy3 settings are separate
ramant (doing other things) 2012/04/12 18:35:59 In the map, settings are stored in sorted order ba
Ryan Hamilton 2012/04/17 02:32:49 Perhaps I'm missing something, but it looks like b
ramant (doing other things) 2012/04/17 18:48:19 (sorry if already known) We get data out of "ids"
- for (size_t index = 0; index < arraysize(ids); ++index) {
- settings.insert(settings.end(), std::make_pair(ids[index], index));
+ SettingsFlagsAndId* ids;
+ size_t settings_size;
+ if (IsSpdy2()) {
+ ids = &spdy2_ids[0];
+ settings_size = arraysize(spdy2_ids);
+ } else {
+ ids = &spdy3_ids[0];
+ settings_size = arraysize(spdy3_ids);
+ }
+
+ for (size_t index = 0; index < settings_size; ++index) {
+ SettingsFlagsAndId flags_and_id = ids[index];
+ SpdySettingsIds id = static_cast<SpdySettingsIds>(flags_and_id.id());
+ SpdySettingsFlags flags =
+ static_cast<SpdySettingsFlags>(flags_and_id.flags());
+ settings[id] = SettingsFlagsAndValue(flags, index);
settings_frame.reset(framer.CreateSettings(settings));
EXPECT_EQ(framer.protocol_version(), settings_frame->version());
EXPECT_TRUE(settings_frame->is_control_frame());
EXPECT_EQ(SETTINGS, settings_frame->type());
EXPECT_EQ(index + 1, settings_frame->num_entries());
- SpdySettings parsed_settings;
+ SettingsMap parsed_settings;
EXPECT_TRUE(framer.ParseSettings(settings_frame.get(), &parsed_settings));
EXPECT_EQ(settings.size(), parsed_settings.size());
- SpdySettings::const_iterator it = parsed_settings.begin();
+ SettingsMap::const_iterator it = parsed_settings.begin();
int pos = 0;
while (it != parsed_settings.end()) {
- SettingsFlagsAndId parsed = it->first;
- uint32 value = it->second;
- EXPECT_EQ(ids[pos].flags(), parsed.flags());
- EXPECT_EQ(ids[pos].id(), parsed.id());
- EXPECT_EQ(static_cast<uint32>(pos), value);
+ SpdySettingsIds parsed_id = it->first;
+ SettingsFlagsAndValue parsed = it->second;
+ EXPECT_EQ(ids[pos].flags(), static_cast<uint8>(parsed.first));
+ EXPECT_EQ(ids[pos].id(), static_cast<uint32>(parsed_id));
+ EXPECT_EQ(static_cast<uint32>(pos), parsed.second);
++it;
++pos;
}

Powered by Google App Engine
This is Rietveld 408576698