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

Unified Diff: net/spdy/fuzzing/hpack_fuzz_util_test.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/fuzzing/hpack_fuzz_util.cc ('k') | net/spdy/header_coalescer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/fuzzing/hpack_fuzz_util_test.cc
diff --git a/net/spdy/fuzzing/hpack_fuzz_util_test.cc b/net/spdy/fuzzing/hpack_fuzz_util_test.cc
deleted file mode 100644
index bbc72dfdbb07c44604f877bbe772b371d5168cb6..0000000000000000000000000000000000000000
--- a/net/spdy/fuzzing/hpack_fuzz_util_test.cc
+++ /dev/null
@@ -1,147 +0,0 @@
-// Copyright 2014 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/fuzzing/hpack_fuzz_util.h"
-
-#include <map>
-
-#include "base/base_paths.h"
-#include "base/files/file.h"
-#include "base/files/file_util.h"
-#include "base/path_service.h"
-#include "net/spdy/spdy_test_utils.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace net {
-namespace test {
-
-using std::map;
-using test::a2b_hex;
-
-TEST(HpackFuzzUtilTest, GeneratorContextInitialization) {
- HpackFuzzUtil::GeneratorContext context;
- HpackFuzzUtil::InitializeGeneratorContext(&context);
-
- // Context was seeded with initial name & value fixtures.
- EXPECT_LT(0u, context.names.size());
- EXPECT_LT(0u, context.values.size());
-}
-
-TEST(HpackFuzzUtil, GeneratorContextExpansion) {
- HpackFuzzUtil::GeneratorContext context;
-
- SpdyHeaderBlock headers = HpackFuzzUtil::NextGeneratedHeaderSet(&context);
-
- // Headers were generated, and the generator context was expanded.
- EXPECT_LT(0u, headers.size());
- EXPECT_LT(0u, context.names.size());
- EXPECT_LT(0u, context.values.size());
-}
-
-// TODO(jgraettinger): A better test would mock a random generator and
-// evaluate SampleExponential along fixed points of the [0,1] domain.
-TEST(HpackFuzzUtilTest, SampleExponentialRegression) {
- // TODO(jgraettinger): Upstream uses a seeded random generator here to pin
- // the behavior of SampleExponential. Chromium's random generation utilities
- // are strongly secure, but provide no way to seed the generator.
- for (size_t i = 0; i != 100; ++i) {
- EXPECT_GE(30u, HpackFuzzUtil::SampleExponential(10, 30));
- }
-}
-
-TEST(HpackFuzzUtilTest, ParsesSequenceOfHeaderBlocks) {
- char fixture[] =
- "\x00\x00\x00\x05""aaaaa"
- "\x00\x00\x00\x04""bbbb"
- "\x00\x00\x00\x03""ccc"
- "\x00\x00\x00\x02""dd"
- "\x00\x00\x00\x01""e"
- "\x00\x00\x00\x00"""
- "\x00\x00\x00\x03""fin";
-
- HpackFuzzUtil::Input input;
- input.input.assign(fixture, arraysize(fixture) - 1);
-
- SpdyStringPiece block;
-
- EXPECT_TRUE(HpackFuzzUtil::NextHeaderBlock(&input, &block));
- EXPECT_EQ("aaaaa", block);
- EXPECT_TRUE(HpackFuzzUtil::NextHeaderBlock(&input, &block));
- EXPECT_EQ("bbbb", block);
- EXPECT_TRUE(HpackFuzzUtil::NextHeaderBlock(&input, &block));
- EXPECT_EQ("ccc", block);
- EXPECT_TRUE(HpackFuzzUtil::NextHeaderBlock(&input, &block));
- EXPECT_EQ("dd", block);
- EXPECT_TRUE(HpackFuzzUtil::NextHeaderBlock(&input, &block));
- EXPECT_EQ("e", block);
- EXPECT_TRUE(HpackFuzzUtil::NextHeaderBlock(&input, &block));
- EXPECT_EQ("", block);
- EXPECT_TRUE(HpackFuzzUtil::NextHeaderBlock(&input, &block));
- EXPECT_EQ("fin", block);
- EXPECT_FALSE(HpackFuzzUtil::NextHeaderBlock(&input, &block));
-}
-
-TEST(HpackFuzzUtilTest, SerializedHeaderBlockPrefixes) {
- EXPECT_EQ(SpdyString("\x00\x00\x00\x00", 4),
- HpackFuzzUtil::HeaderBlockPrefix(0));
- EXPECT_EQ(SpdyString("\x00\x00\x00\x05", 4),
- HpackFuzzUtil::HeaderBlockPrefix(5));
- EXPECT_EQ("\x4f\xb3\x0a\x91", HpackFuzzUtil::HeaderBlockPrefix(1337133713));
-}
-
-TEST(HpackFuzzUtilTest, PassValidInputThroughAllStages) {
- // Example lifted from HpackDecoderTest.SectionD4RequestHuffmanExamples.
- SpdyString input = a2b_hex("828684418cf1e3c2e5f23a6ba0ab90f4ff");
-
- HpackFuzzUtil::FuzzerContext context;
- HpackFuzzUtil::InitializeFuzzerContext(&context);
-
- EXPECT_TRUE(
- HpackFuzzUtil::RunHeaderBlockThroughFuzzerStages(&context, input));
-
- SpdyHeaderBlock expect;
- expect[":method"] = "GET";
- expect[":scheme"] = "http";
- expect[":path"] = "/";
- expect[":authority"] = "www.example.com";
- EXPECT_EQ(expect, context.third_stage->decoded_block());
-}
-
-TEST(HpackFuzzUtilTest, ValidFuzzExamplesRegressionTest) {
- base::FilePath source_root;
- ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &source_root));
-
- // Load the example fixtures versioned with the source tree.
- HpackFuzzUtil::Input input;
- ASSERT_TRUE(base::ReadFileToString(
- source_root.Append(FILE_PATH_LITERAL("net"))
- .Append(FILE_PATH_LITERAL("data"))
- .Append(FILE_PATH_LITERAL("spdy_tests"))
- .Append(FILE_PATH_LITERAL("examples_07.hpack")),
- &input.input));
-
- HpackFuzzUtil::FuzzerContext context;
- HpackFuzzUtil::InitializeFuzzerContext(&context);
-
- SpdyStringPiece block;
- while (HpackFuzzUtil::NextHeaderBlock(&input, &block)) {
- // As these are valid examples, all fuzz stages should succeed.
- EXPECT_TRUE(HpackFuzzUtil::RunHeaderBlockThroughFuzzerStages(
- &context, block));
- }
-}
-
-TEST(HpackFuzzUtilTest, FlipBitsMutatesBuffer) {
- char buffer[] = "testbuffer1234567890";
- SpdyString unmodified(buffer, arraysize(buffer) - 1);
-
- EXPECT_EQ(unmodified, buffer);
- HpackFuzzUtil::FlipBits(reinterpret_cast<uint8_t*>(buffer),
- arraysize(buffer) - 1, 1);
- EXPECT_NE(unmodified, buffer);
-}
-
-} // namespace test
-} // namespace net
« no previous file with comments | « net/spdy/fuzzing/hpack_fuzz_util.cc ('k') | net/spdy/header_coalescer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698