mirror of
https://github.com/facebook/proxygen.git
synced 2026-10-24 01:33:54 +03:00
Move ZlibStreamDecompressor into decompression
Summary: **Context:** Group Proxygen decompression classes and helpers in `proxygen::decompression`. **This diff:** Move `ZlibStreamDecompressor` and its associated constants into that namespace and update its live callers across fbsource. Include embedded C++ callers and retain existing include paths. Differential Revision: D126117908 fbshipit-source-id: 16c1bc41778169841b2e906606681b2efaf25cbd
This commit is contained in:
committed by
meta-codesync[bot]
parent
a6300ef48a
commit
c19c392332
@@ -36,7 +36,8 @@ MATCHER_P(IOBufEquals,
|
||||
|
||||
struct ZlibTest {
|
||||
static std::unique_ptr<StreamDecompressor> makeDecompressor() {
|
||||
return std::make_unique<ZlibStreamDecompressor>(CompressionType::GZIP);
|
||||
return std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
|
||||
CompressionType::GZIP);
|
||||
}
|
||||
static std::string getExpectedEncoding() {
|
||||
return "gzip";
|
||||
|
||||
@@ -105,7 +105,9 @@ void DecompressionIngressFilter::initializeWithHTTPMessage(HTTPMessage& msg) {
|
||||
if (it->type == CompressionType::ZSTD) {
|
||||
decompressor_ = std::make_unique<ZstdStreamDecompressor>();
|
||||
} else {
|
||||
decompressor_ = std::make_unique<ZlibStreamDecompressor>(it->type);
|
||||
decompressor_ =
|
||||
std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
|
||||
it->type);
|
||||
}
|
||||
} else if (statsCallback_) {
|
||||
statsCallback_->onDecompressionAlgo("");
|
||||
|
||||
@@ -27,7 +27,8 @@ MATCHER_P(IOBufEquals, expected, "") {
|
||||
|
||||
struct ZlibTest {
|
||||
static std::unique_ptr<StreamDecompressor> makeDecompressor() {
|
||||
return std::make_unique<ZlibStreamDecompressor>(CompressionType::GZIP);
|
||||
return std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
|
||||
CompressionType::GZIP);
|
||||
}
|
||||
static std::string getExpectedEncoding() {
|
||||
return "gzip";
|
||||
|
||||
@@ -68,8 +68,9 @@ void ZlibStreamCompressor::init() {
|
||||
|
||||
switch (type_) {
|
||||
case CompressionType::GZIP: {
|
||||
auto windowBits = type_ == CompressionType::GZIP ? GZIP_WINDOW_BITS
|
||||
: DEFLATE_WINDOW_BITS;
|
||||
auto windowBits = type_ == CompressionType::GZIP
|
||||
? proxygen::decompression::GZIP_WINDOW_BITS
|
||||
: proxygen::decompression::DEFLATE_WINDOW_BITS;
|
||||
status_ = deflateInit2(&zlibStream_,
|
||||
level_,
|
||||
Z_DEFLATED,
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
using folly::IOBuf;
|
||||
|
||||
namespace proxygen {
|
||||
namespace proxygen::decompression {
|
||||
|
||||
void ZlibStreamDecompressor::init(CompressionType type) {
|
||||
DCHECK(type_ == CompressionType::NONE) << "Must be uninitialized";
|
||||
@@ -120,4 +120,4 @@ std::unique_ptr<IOBuf> ZlibStreamDecompressor::decompress(const IOBuf* in) {
|
||||
return out;
|
||||
}
|
||||
|
||||
} // namespace proxygen
|
||||
} // namespace proxygen::decompression
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace folly {
|
||||
class IOBuf;
|
||||
}
|
||||
|
||||
namespace proxygen {
|
||||
namespace proxygen::decompression {
|
||||
|
||||
namespace {
|
||||
constexpr uint64_t kZlibDecompressorBufferGrowthDefault = 480;
|
||||
@@ -74,4 +74,4 @@ class ZlibStreamDecompressor : public StreamDecompressor {
|
||||
uint64_t totalInputBytes_{0};
|
||||
uint64_t totalOutputBytes_{0};
|
||||
};
|
||||
} // namespace proxygen
|
||||
} // namespace proxygen::decompression
|
||||
|
||||
@@ -42,7 +42,8 @@ std::unique_ptr<folly::IOBuf> makeBuf(uint32_t size) {
|
||||
void verify(CompressionType type,
|
||||
std::unique_ptr<IOBuf> original,
|
||||
std::unique_ptr<IOBuf> compressed) {
|
||||
auto zd = std::make_unique<ZlibStreamDecompressor>(type);
|
||||
auto zd =
|
||||
std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(type);
|
||||
|
||||
auto decompressed = zd->decompress(compressed.get());
|
||||
ASSERT_FALSE(zd->hasError()) << "Decompression error. r=" << zd->getStatus();
|
||||
@@ -177,10 +178,10 @@ TEST_F(ZlibTests, MaxDecompressionRatio_FailsWhenRatioTooSmall) {
|
||||
auto compressed = compressBuf(CompressionType::GZIP, original);
|
||||
ASSERT_NE(compressed, nullptr);
|
||||
|
||||
auto zd = std::make_unique<ZlibStreamDecompressor>(
|
||||
auto zd = std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
|
||||
CompressionType::GZIP,
|
||||
kZlibDecompressorBufferGrowthDefault,
|
||||
kZlibDecompressorBufferMinsizeDefault,
|
||||
proxygen::decompression::kZlibDecompressorBufferGrowthDefault,
|
||||
proxygen::decompression::kZlibDecompressorBufferMinsizeDefault,
|
||||
/*maxDecompressionRatio=*/10);
|
||||
|
||||
auto decompressed = zd->decompress(compressed.get());
|
||||
@@ -196,10 +197,10 @@ TEST_F(ZlibTests, MaxDecompressionRatio_PassesWhenRatioLargeEnough) {
|
||||
ASSERT_NE(compressed, nullptr);
|
||||
|
||||
// Use a very large ratio so decompression succeeds.
|
||||
auto zd = std::make_unique<ZlibStreamDecompressor>(
|
||||
auto zd = std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
|
||||
CompressionType::GZIP,
|
||||
kZlibDecompressorBufferGrowthDefault,
|
||||
kZlibDecompressorBufferMinsizeDefault,
|
||||
proxygen::decompression::kZlibDecompressorBufferGrowthDefault,
|
||||
proxygen::decompression::kZlibDecompressorBufferMinsizeDefault,
|
||||
/*maxDecompressionRatio=*/1000000);
|
||||
|
||||
auto decompressed = zd->decompress(compressed.get());
|
||||
@@ -216,7 +217,8 @@ TEST_F(ZlibTests, MaxDecompressionRatio_PassesWhenUnspecified) {
|
||||
ASSERT_NE(compressed, nullptr);
|
||||
|
||||
// Default: no ratio limit.
|
||||
auto zd = std::make_unique<ZlibStreamDecompressor>(CompressionType::GZIP);
|
||||
auto zd = std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
|
||||
CompressionType::GZIP);
|
||||
|
||||
auto decompressed = zd->decompress(compressed.get());
|
||||
EXPECT_FALSE(zd->hasError());
|
||||
@@ -233,10 +235,10 @@ TEST_F(ZlibTests, MaxDecompressionRatio_StreamingChunksFailure) {
|
||||
auto compressed = compressBuf(CompressionType::GZIP, original);
|
||||
ASSERT_NE(compressed, nullptr);
|
||||
|
||||
auto zd = std::make_unique<ZlibStreamDecompressor>(
|
||||
auto zd = std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
|
||||
CompressionType::GZIP,
|
||||
kZlibDecompressorBufferGrowthDefault,
|
||||
kZlibDecompressorBufferMinsizeDefault,
|
||||
proxygen::decompression::kZlibDecompressorBufferGrowthDefault,
|
||||
proxygen::decompression::kZlibDecompressorBufferMinsizeDefault,
|
||||
/*maxDecompressionRatio=*/10);
|
||||
|
||||
// Split compressed data into small chunks.
|
||||
|
||||
Reference in New Issue
Block a user