Index: net/filter/brotli_filter_unittest.cc |
diff --git a/net/filter/brotli_filter_unittest.cc b/net/filter/brotli_filter_unittest.cc |
index 9c9ce6533842f9b14157f92a3bf05582ba0a7f66..6770914b709b141adb3a57167b37fd0b5c55a92d 100644 |
--- a/net/filter/brotli_filter_unittest.cc |
+++ b/net/filter/brotli_filter_unittest.cc |
@@ -157,6 +157,7 @@ TEST_F(BrotliUnitTest, DecodeBrotli) { |
// Compare the decoding result with source data |
EXPECT_EQ(source_len(), decode_size); |
EXPECT_EQ(memcmp(source_buffer(), decode_buffer, source_len()), 0); |
+ filter_.reset(nullptr); |
cbentzel
2016/01/21 10:42:59
Why is this needed? Shouldn't the scoped_ptr be go
eustas
2016/01/21 10:49:14
It is for making destruction an explicit part of t
|
} |
// Tests we can call filter repeatedly to get all the data decoded. |
@@ -168,6 +169,7 @@ TEST_F(BrotliUnitTest, DecodeWithSmallBuffer) { |
DecodeAndCompareWithFilter(filter_.get(), source_buffer(), source_len(), |
encoded_buffer(), encoded_len(), |
kDefaultBufferSize); |
+ filter_.reset(nullptr); |
} |
// Tests we can still decode with just 1 byte buffer in the filter. |
@@ -179,6 +181,7 @@ TEST_F(BrotliUnitTest, DecodeWithOneByteBuffer) { |
DecodeAndCompareWithFilter(filter_.get(), source_buffer(), source_len(), |
encoded_buffer(), encoded_len(), |
kDefaultBufferSize); |
+ filter_.reset(nullptr); |
} |
// Tests we can decode when caller has small buffer to read out from filter. |
@@ -195,6 +198,7 @@ TEST_F(BrotliUnitTest, DecodeWithSmallInputAndOutputBuffer) { |
InitFilterWithBufferSize(kSmallBufferSize); |
DecodeAndCompareWithFilter(filter_.get(), source_buffer(), source_len(), |
encoded_buffer(), encoded_len(), kSmallBufferSize); |
+ filter_.reset(nullptr); |
} |
// Tests we can still decode with just 1 byte buffer in the filter and just 1 |
@@ -204,9 +208,10 @@ TEST_F(BrotliUnitTest, DecodeWithOneByteInputAndOutputBuffer) { |
EXPECT_EQ(1, filter_->stream_buffer_size()); |
DecodeAndCompareWithFilter(filter_.get(), source_buffer(), source_len(), |
encoded_buffer(), encoded_len(), 1); |
+ filter_.reset(nullptr); |
} |
-// Decoding deflate stream with corrupted data. |
+// Decoding brotli stream with corrupted data. |
TEST_F(BrotliUnitTest, DecodeCorruptedData) { |
char corrupt_data[kDefaultBufferSize]; |
int corrupt_data_len = encoded_len(); |
@@ -215,7 +220,7 @@ TEST_F(BrotliUnitTest, DecodeCorruptedData) { |
int pos = corrupt_data_len / 2; |
corrupt_data[pos] = !corrupt_data[pos]; |
- // Decode the corrupted data with filter |
+ // Decode the corrupted data with filter. |
InitFilter(); |
char corrupt_decode_buffer[kDefaultBufferSize]; |
int corrupt_decode_size = kDefaultBufferSize; |
@@ -223,11 +228,12 @@ TEST_F(BrotliUnitTest, DecodeCorruptedData) { |
int code = DecodeAllWithFilter(filter_.get(), corrupt_data, corrupt_data_len, |
corrupt_decode_buffer, &corrupt_decode_size); |
- // Expect failures |
+ // Expect failures. |
EXPECT_EQ(Filter::FILTER_ERROR, code); |
+ filter_.reset(nullptr); |
} |
-// Decoding deflate stream with missing data. |
+// Decoding brotli stream with missing data. |
TEST_F(BrotliUnitTest, DecodeMissingData) { |
char corrupt_data[kDefaultBufferSize]; |
int corrupt_data_len = encoded_len(); |
@@ -238,7 +244,7 @@ TEST_F(BrotliUnitTest, DecodeMissingData) { |
memmove(&corrupt_data[pos], &corrupt_data[pos + 1], len); |
--corrupt_data_len; |
- // Decode the corrupted data with filter |
+ // Decode the corrupted data with filter. |
InitFilter(); |
char corrupt_decode_buffer[kDefaultBufferSize]; |
int corrupt_decode_size = kDefaultBufferSize; |
@@ -246,8 +252,26 @@ TEST_F(BrotliUnitTest, DecodeMissingData) { |
int code = DecodeAllWithFilter(filter_.get(), corrupt_data, corrupt_data_len, |
corrupt_decode_buffer, &corrupt_decode_size); |
- // Expect failures |
+ // Expect failures. |
EXPECT_EQ(Filter::FILTER_ERROR, code); |
+ filter_.reset(nullptr); |
+} |
+ |
+// Decoding brotli stream with empty output data. |
+TEST_F(BrotliUnitTest, DecodeEmptyData) { |
+ char data[1] = {6}; // WBITS = 16, ISLAST = 1, ISLASTEMPTY = 1 |
+ int data_len = 1; |
+ |
+ InitFilter(); |
+ char decode_buffer[kDefaultBufferSize]; |
+ int decode_size = kDefaultBufferSize; |
+ int code = DecodeAllWithFilter(filter_.get(), data, data_len, decode_buffer, |
+ &decode_size); |
+ |
+ // Expect success / empty output. |
+ EXPECT_EQ(Filter::FILTER_DONE, code); |
+ EXPECT_EQ(0, decode_size); |
+ filter_.reset(nullptr); |
} |
} // namespace net |