#include "quiche/http2/decoder/http2_structure_decoder.h"
#include <stddef.h>
#include <cstdint>
#include <string>
#include <utility>
#include "absl/strings/string_view.h"
#include "quiche/http2/decoder/decode_buffer.h"
#include "quiche/http2/decoder/decode_status.h"
#include "quiche/http2/http2_constants.h"
#include "quiche/http2/test_tools/http2_frame_builder.h"
#include "quiche/http2/test_tools/http2_structures_test_util.h"
#include "quiche/http2/test_tools/random_decoder_test_base.h"
#include "quiche/http2/test_tools/verify_macros.h"
#include "quiche/common/platform/api/quiche_logging.h"
AssertionSuccess;
namespace http2 {
namespace test {
namespace {
const bool kMayReturnZeroOnFirst = …;
template <class S>
class Http2StructureDecoderTest : public RandomDecoderTest { … };
class Http2FrameHeaderDecoderTest
: public Http2StructureDecoderTest<Http2FrameHeader> { … };
TEST_F(Http2FrameHeaderDecoderTest, DecodesLiteral) { … }
TEST_F(Http2FrameHeaderDecoderTest, DecodesRandomized) { … }
class Http2PriorityFieldsDecoderTest
: public Http2StructureDecoderTest<Http2PriorityFields> { … };
TEST_F(Http2PriorityFieldsDecoderTest, DecodesLiteral) { … }
TEST_F(Http2PriorityFieldsDecoderTest, DecodesRandomized) { … }
class Http2RstStreamFieldsDecoderTest
: public Http2StructureDecoderTest<Http2RstStreamFields> { … };
TEST_F(Http2RstStreamFieldsDecoderTest, DecodesLiteral) { … }
TEST_F(Http2RstStreamFieldsDecoderTest, DecodesRandomized) { … }
class Http2SettingFieldsDecoderTest
: public Http2StructureDecoderTest<Http2SettingFields> { … };
TEST_F(Http2SettingFieldsDecoderTest, DecodesLiteral) { … }
TEST_F(Http2SettingFieldsDecoderTest, DecodesRandomized) { … }
class Http2PushPromiseFieldsDecoderTest
: public Http2StructureDecoderTest<Http2PushPromiseFields> { … };
TEST_F(Http2PushPromiseFieldsDecoderTest, DecodesLiteral) { … }
TEST_F(Http2PushPromiseFieldsDecoderTest, DecodesRandomized) { … }
class Http2PingFieldsDecoderTest
: public Http2StructureDecoderTest<Http2PingFields> { … };
TEST_F(Http2PingFieldsDecoderTest, DecodesLiteral) { … }
TEST_F(Http2PingFieldsDecoderTest, DecodesRandomized) { … }
class Http2GoAwayFieldsDecoderTest
: public Http2StructureDecoderTest<Http2GoAwayFields> { … };
TEST_F(Http2GoAwayFieldsDecoderTest, DecodesLiteral) { … }
TEST_F(Http2GoAwayFieldsDecoderTest, DecodesRandomized) { … }
class Http2WindowUpdateFieldsDecoderTest
: public Http2StructureDecoderTest<Http2WindowUpdateFields> { … };
TEST_F(Http2WindowUpdateFieldsDecoderTest, DecodesLiteral) { … }
TEST_F(Http2WindowUpdateFieldsDecoderTest, DecodesRandomized) { … }
class Http2AltSvcFieldsDecoderTest
: public Http2StructureDecoderTest<Http2AltSvcFields> { … };
TEST_F(Http2AltSvcFieldsDecoderTest, DecodesLiteral) { … }
TEST_F(Http2AltSvcFieldsDecoderTest, DecodesRandomized) { … }
}
}
}