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

Side by Side Diff: net/spdy/hpack/hpack_header_table_test.cc

Issue 2716393002: Deprecate hpack_table_size flag, remove dead code. (Closed)
Patch Set: Created 3 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 unified diff | Download patch
« no previous file with comments | « net/spdy/hpack/hpack_header_table.cc ('k') | net/spdy/spdy_flags.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/hpack/hpack_header_table.h" 5 #include "net/spdy/hpack/hpack_header_table.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 EXPECT_EQ(entry2, 252 EXPECT_EQ(entry2,
253 table_.GetByNameAndValue(first_static_entry->name(), "Value Four")); 253 table_.GetByNameAndValue(first_static_entry->name(), "Value Four"));
254 254
255 // Evict |entry2|. Queries by its name & value are not found. 255 // Evict |entry2|. Queries by its name & value are not found.
256 peer_.Evict(1); 256 peer_.Evict(1);
257 EXPECT_EQ(NULL, 257 EXPECT_EQ(NULL,
258 table_.GetByNameAndValue(first_static_entry->name(), "Value Four")); 258 table_.GetByNameAndValue(first_static_entry->name(), "Value Four"));
259 } 259 }
260 260
261 TEST_F(HpackHeaderTableTest, SetSizes) { 261 TEST_F(HpackHeaderTableTest, SetSizes) {
262 FLAGS_chromium_reloadable_flag_increase_hpack_table_size = true;
263 string key = "key", value = "value"; 262 string key = "key", value = "value";
264 const HpackEntry* entry1 = table_.TryAddEntry(key, value); 263 const HpackEntry* entry1 = table_.TryAddEntry(key, value);
265 const HpackEntry* entry2 = table_.TryAddEntry(key, value); 264 const HpackEntry* entry2 = table_.TryAddEntry(key, value);
266 const HpackEntry* entry3 = table_.TryAddEntry(key, value); 265 const HpackEntry* entry3 = table_.TryAddEntry(key, value);
267 266
268 // Set exactly large enough. No Evictions. 267 // Set exactly large enough. No Evictions.
269 size_t max_size = entry1->Size() + entry2->Size() + entry3->Size(); 268 size_t max_size = entry1->Size() + entry2->Size() + entry3->Size();
270 table_.SetMaxSize(max_size); 269 table_.SetMaxSize(max_size);
271 EXPECT_EQ(3u, peer_.dynamic_entries().size()); 270 EXPECT_EQ(3u, peer_.dynamic_entries().size());
272 271
(...skipping 11 matching lines...) Expand all
284 283
285 // SETTINGS_HEADER_TABLE_SIZE upper-bounds |table_.max_size()|, 284 // SETTINGS_HEADER_TABLE_SIZE upper-bounds |table_.max_size()|,
286 // and will force evictions. 285 // and will force evictions.
287 max_size = entry3->Size() - 1; 286 max_size = entry3->Size() - 1;
288 table_.SetSettingsHeaderTableSize(max_size); 287 table_.SetSettingsHeaderTableSize(max_size);
289 EXPECT_EQ(max_size, table_.max_size()); 288 EXPECT_EQ(max_size, table_.max_size());
290 EXPECT_EQ(max_size, table_.settings_size_bound()); 289 EXPECT_EQ(max_size, table_.settings_size_bound());
291 EXPECT_EQ(0u, peer_.dynamic_entries().size()); 290 EXPECT_EQ(0u, peer_.dynamic_entries().size());
292 } 291 }
293 292
294 TEST_F(HpackHeaderTableTest, SetSizesOld) {
295 FLAGS_chromium_reloadable_flag_increase_hpack_table_size = false;
296
297 string key = "key", value = "value";
298 const HpackEntry* entry1 = table_.TryAddEntry(key, value);
299 const HpackEntry* entry2 = table_.TryAddEntry(key, value);
300 const HpackEntry* entry3 = table_.TryAddEntry(key, value);
301
302 // Set exactly large enough. No Evictions.
303 size_t max_size = entry1->Size() + entry2->Size() + entry3->Size();
304 table_.SetMaxSize(max_size);
305 EXPECT_EQ(3u, peer_.dynamic_entries().size());
306
307 // Set just too small. One eviction.
308 max_size = entry1->Size() + entry2->Size() + entry3->Size() - 1;
309 table_.SetMaxSize(max_size);
310 EXPECT_EQ(2u, peer_.dynamic_entries().size());
311
312 // Changing SETTINGS_HEADER_TABLE_SIZE doesn't affect table_.max_size(),
313 // iff SETTINGS_HEADER_TABLE_SIZE >= |max_size|.
314 EXPECT_EQ(kDefaultHeaderTableSizeSetting, table_.settings_size_bound());
315 table_.SetSettingsHeaderTableSize(kDefaultHeaderTableSizeSetting * 2);
316 EXPECT_EQ(max_size, table_.max_size());
317 table_.SetSettingsHeaderTableSize(max_size + 1);
318 EXPECT_EQ(max_size, table_.max_size());
319 EXPECT_EQ(2u, peer_.dynamic_entries().size());
320
321 // SETTINGS_HEADER_TABLE_SIZE upper-bounds |table_.max_size()|,
322 // and will force evictions.
323 max_size = entry3->Size() - 1;
324 table_.SetSettingsHeaderTableSize(max_size);
325 EXPECT_EQ(max_size, table_.max_size());
326 EXPECT_EQ(max_size, table_.settings_size_bound());
327 EXPECT_EQ(0u, peer_.dynamic_entries().size());
328 }
329
330 TEST_F(HpackHeaderTableTest, EvictionCountForEntry) { 293 TEST_F(HpackHeaderTableTest, EvictionCountForEntry) {
331 string key = "key", value = "value"; 294 string key = "key", value = "value";
332 const HpackEntry* entry1 = table_.TryAddEntry(key, value); 295 const HpackEntry* entry1 = table_.TryAddEntry(key, value);
333 const HpackEntry* entry2 = table_.TryAddEntry(key, value); 296 const HpackEntry* entry2 = table_.TryAddEntry(key, value);
334 size_t entry3_size = HpackEntry::Size(key, value); 297 size_t entry3_size = HpackEntry::Size(key, value);
335 298
336 // Just enough capacity for third entry. 299 // Just enough capacity for third entry.
337 table_.SetMaxSize(entry1->Size() + entry2->Size() + entry3_size); 300 table_.SetMaxSize(entry1->Size() + entry2->Size() + entry3_size);
338 EXPECT_EQ(0u, peer_.EvictionCountForEntry(key, value)); 301 EXPECT_EQ(0u, peer_.EvictionCountForEntry(key, value));
339 EXPECT_EQ(1u, peer_.EvictionCountForEntry(key, value + "x")); 302 EXPECT_EQ(1u, peer_.EvictionCountForEntry(key, value + "x"));
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 HpackHeaderTable::EntryHasher hasher; 440 HpackHeaderTable::EntryHasher hasher;
478 EXPECT_EQ(hasher(&entry1), hasher(&entry2)); 441 EXPECT_EQ(hasher(&entry1), hasher(&entry2));
479 442
480 HpackHeaderTable::EntriesEq eq; 443 HpackHeaderTable::EntriesEq eq;
481 EXPECT_TRUE(eq(&entry1, &entry2)); 444 EXPECT_TRUE(eq(&entry1, &entry2));
482 } 445 }
483 446
484 } // namespace 447 } // namespace
485 448
486 } // namespace net 449 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/hpack/hpack_header_table.cc ('k') | net/spdy/spdy_flags.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698