Removes a method from HpackDecoderStringBuffer that is only used in tests.
Protected by removing unused code, not protected.
PiperOrigin-RevId: 596028904
diff --git a/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc b/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc
index 46872aa..419dd8d 100644
--- a/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc
+++ b/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc
@@ -43,7 +43,7 @@
(override));
};
-enum StringBacking { STATIC, UNBUFFERED, BUFFERED };
+enum StringBacking { UNBUFFERED, BUFFERED };
class HpackDecoderStateTest : public quiche::test::QuicheTest {
protected:
@@ -69,27 +69,21 @@
GetDecoderTables()->DynamicTableSizeUpdate(size);
}
- void SetStringBuffer(const char* s, StringBacking backing,
+ void SetStringBuffer(absl::string_view s, StringBacking backing,
HpackDecoderStringBuffer* string_buffer) {
- switch (backing) {
- case STATIC:
- string_buffer->Set(s, true);
- break;
- case UNBUFFERED:
- string_buffer->Set(s, false);
- break;
- case BUFFERED:
- string_buffer->Set(s, false);
- string_buffer->BufferStringIfUnbuffered();
- break;
+ string_buffer->OnStart(false, s.size());
+ EXPECT_TRUE(string_buffer->OnData(s.data(), s.size()));
+ EXPECT_TRUE(string_buffer->OnEnd());
+ if (backing == BUFFERED) {
+ string_buffer->BufferStringIfUnbuffered();
}
}
- void SetName(const char* s, StringBacking backing) {
+ void SetName(absl::string_view s, StringBacking backing) {
SetStringBuffer(s, backing, &name_buffer_);
}
- void SetValue(const char* s, StringBacking backing) {
+ void SetValue(absl::string_view s, StringBacking backing) {
SetStringBuffer(s, backing, &value_buffer_);
}
@@ -106,15 +100,16 @@
void SendIndexAndVerifyCallback(size_t index,
HpackEntryType /*expected_type*/,
- const char* expected_name,
- const char* expected_value) {
+ absl::string_view expected_name,
+ absl::string_view expected_value) {
EXPECT_CALL(listener_, OnHeader(Eq(expected_name), Eq(expected_value)));
decoder_state_.OnIndexedHeader(index);
Mock::VerifyAndClearExpectations(&listener_);
}
void SendValueAndVerifyCallback(size_t name_index, HpackEntryType entry_type,
- const char* name, const char* value,
+ absl::string_view name,
+ absl::string_view value,
StringBacking value_backing) {
SetValue(value, value_backing);
EXPECT_CALL(listener_, OnHeader(Eq(name), Eq(value)));
@@ -124,9 +119,9 @@
}
void SendNameAndValueAndVerifyCallback(HpackEntryType entry_type,
- const char* name,
+ absl::string_view name,
StringBacking name_backing,
- const char* value,
+ absl::string_view value,
StringBacking value_backing) {
SetName(name, name_backing);
SetValue(value, value_backing);
@@ -143,8 +138,8 @@
}
// dynamic_index is one-based, because that is the way RFC 7541 shows it.
- AssertionResult VerifyEntry(size_t dynamic_index, const char* name,
- const char* value) {
+ AssertionResult VerifyEntry(size_t dynamic_index, absl::string_view name,
+ absl::string_view value) {
const HpackStringPair* entry =
Lookup(dynamic_index + kFirstDynamicTableIndex - 1);
HTTP2_VERIFY_NE(entry, nullptr);
@@ -159,7 +154,8 @@
return AssertionSuccess();
}
AssertionResult VerifyDynamicTableContents(
- const std::vector<std::pair<const char*, const char*>>& entries) {
+ const std::vector<std::pair<absl::string_view, absl::string_view>>&
+ entries) {
size_t index = 1;
for (const auto& entry : entries) {
HTTP2_VERIFY_SUCCESS(VerifyEntry(index, entry.first, entry.second));
diff --git a/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.cc b/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.cc
index c57da8e..ab2bb12 100644
--- a/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.cc
+++ b/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.cc
@@ -38,8 +38,6 @@
return out << "UNBUFFERED";
case HpackDecoderStringBuffer::Backing::BUFFERED:
return out << "BUFFERED";
- case HpackDecoderStringBuffer::Backing::STATIC:
- return out << "STATIC";
}
// Since the value doesn't come over the wire, only a programming bug should
// result in reaching this point.
@@ -61,17 +59,6 @@
state_ = State::RESET;
}
-void HpackDecoderStringBuffer::Set(absl::string_view value, bool is_static) {
- QUICHE_DVLOG(2) << "HpackDecoderStringBuffer::Set";
- QUICHE_DCHECK_EQ(state_, State::RESET);
- value_ = value;
- state_ = State::COMPLETE;
- backing_ = is_static ? Backing::STATIC : Backing::UNBUFFERED;
- // TODO(jamessynge): Determine which of these two fields must be set.
- remaining_len_ = 0;
- is_huffman_encoded_ = false;
-}
-
void HpackDecoderStringBuffer::OnStart(bool huffman_encoded, size_t len) {
QUICHE_DVLOG(2) << "HpackDecoderStringBuffer::OnStart";
QUICHE_DCHECK_EQ(state_, State::RESET);
diff --git a/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.h b/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.h
index a2b8605..ede1e71 100644
--- a/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.h
+++ b/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.h
@@ -23,7 +23,7 @@
class QUICHE_EXPORT HpackDecoderStringBuffer {
public:
enum class State : uint8_t { RESET, COLLECTING, COMPLETE };
- enum class Backing : uint8_t { RESET, UNBUFFERED, BUFFERED, STATIC };
+ enum class Backing : uint8_t { RESET, UNBUFFERED, BUFFERED };
HpackDecoderStringBuffer();
~HpackDecoderStringBuffer();
@@ -32,7 +32,6 @@
HpackDecoderStringBuffer& operator=(const HpackDecoderStringBuffer&) = delete;
void Reset();
- void Set(absl::string_view value, bool is_static);
// Note that for Huffman encoded strings the length of the string after
// decoding may be larger (expected), the same or even smaller; the latter
diff --git a/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc b/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc
index 299391f..c5eba14 100644
--- a/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc
+++ b/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc
@@ -46,31 +46,6 @@
HpackDecoderStringBuffer buf_;
};
-TEST_F(HpackDecoderStringBufferTest, SetStatic) {
- absl::string_view data("static string");
-
- EXPECT_EQ(state(), State::RESET);
- EXPECT_TRUE(VerifyLogHasSubstrs({"state=RESET"}));
-
- buf_.Set(data, /*is_static*/ true);
- QUICHE_LOG(INFO) << buf_;
- EXPECT_EQ(state(), State::COMPLETE);
- EXPECT_EQ(backing(), Backing::STATIC);
- EXPECT_EQ(data, buf_.str());
- EXPECT_EQ(data.data(), buf_.str().data());
- EXPECT_TRUE(VerifyLogHasSubstrs(
- {"state=COMPLETE", "backing=STATIC", "value: static string"}));
-
- // The string is static, so BufferStringIfUnbuffered won't change anything.
- buf_.BufferStringIfUnbuffered();
- EXPECT_EQ(state(), State::COMPLETE);
- EXPECT_EQ(backing(), Backing::STATIC);
- EXPECT_EQ(data, buf_.str());
- EXPECT_EQ(data.data(), buf_.str().data());
- EXPECT_TRUE(VerifyLogHasSubstrs(
- {"state=COMPLETE", "backing=STATIC", "value: static string"}));
-}
-
TEST_F(HpackDecoderStringBufferTest, PlainWhole) {
absl::string_view data("some text.");