chromium/net/third_party/quiche/src/quiche/http2/test_tools/random_decoder_test_base_test.cc

#include "quiche/http2/test_tools/random_decoder_test_base.h"

#include <stddef.h>

#include <functional>
#include <ios>
#include <set>
#include <type_traits>

#include "quiche/http2/decoder/decode_buffer.h"
#include "quiche/http2/decoder/decode_status.h"
#include "quiche/http2/test_tools/http2_random.h"
#include "quiche/common/platform/api/quiche_logging.h"
#include "quiche/common/platform/api/quiche_test.h"
#include "quiche/common/quiche_callbacks.h"

namespace http2 {
namespace test {
namespace {
const char kData[]{};
const bool kReturnNonZeroOnFirst =;
const bool kMayReturnZeroOnFirst =;

// Confirm the behavior of various parts of RandomDecoderTest.
class RandomDecoderTestTest : public RandomDecoderTest {};

// Decode a single byte on the StartDecoding call, then stop.
TEST_F(RandomDecoderTestTest, StopOnStartPartiallyDone) {}

// Stop decoding upon return from the first ResumeDecoding call.
TEST_F(RandomDecoderTestTest, StopOnResumePartiallyDone) {}

// Decode a random sized chunks, always reporting back kDecodeInProgress.
TEST_F(RandomDecoderTestTest, InProgressWhenEmpty) {}

TEST_F(RandomDecoderTestTest, DoneExactlyAtEnd) {}

TEST_F(RandomDecoderTestTest, DecodeSeveralWaysToEnd) {}

TEST_F(RandomDecoderTestTest, DecodeTwoWaysAndStopEarly) {}

TEST_F(RandomDecoderTestTest, DecodeThreeWaysAndError) {}

// CorruptEnum should produce lots of different values. On the assumption that
// the enum gets at least a byte of storage, we should be able to produce
// 256 distinct values.
TEST(CorruptEnumTest, ManyValues) {}

// In practice the underlying type is an int, and currently that is 4 bytes.
DecodeStatusUT;

struct CorruptEnumTestStruct {};

// CorruptEnum should only overwrite the enum, not any adjacent storage.
TEST(CorruptEnumTest, CorruptsOnlyEnum) {}

}  // namespace
}  // namespace test
}  // namespace http2