Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1613)

Unified Diff: third_party/crashpad/crashpad/util/net/http_body_gzip_test.cc

Issue 2705373005: Revert of Update Crashpad to 6da9708e7cc93e2e1772439d51646e47583cb225 (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/crashpad/crashpad/util/net/http_body_gzip_test.cc
diff --git a/third_party/crashpad/crashpad/util/net/http_body_gzip_test.cc b/third_party/crashpad/crashpad/util/net/http_body_gzip_test.cc
deleted file mode 100644
index a7b97b93a15b12700812691b4b1ade56d43304ae..0000000000000000000000000000000000000000
--- a/third_party/crashpad/crashpad/util/net/http_body_gzip_test.cc
+++ /dev/null
@@ -1,178 +0,0 @@
-// Copyright 2017 The Crashpad Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "util/net/http_body_gzip.h"
-
-#include <string.h>
-
-#include <algorithm>
-#include <memory>
-#include <string>
-#include <utility>
-
-#include "base/macros.h"
-#include "base/rand_util.h"
-#include "base/numerics/safe_conversions.h"
-#include "gtest/gtest.h"
-#include "third_party/zlib/zlib_crashpad.h"
-#include "util/misc/zlib.h"
-#include "util/net/http_body.h"
-
-namespace crashpad {
-namespace test {
-namespace {
-
-class ScopedZlibInflateStream {
- public:
- explicit ScopedZlibInflateStream(z_stream* zlib) : zlib_(zlib) {}
- ~ScopedZlibInflateStream() {
- int zr = inflateEnd(zlib_);
- EXPECT_EQ(Z_OK, zr) << "inflateEnd: " << ZlibErrorString(zr);
- }
-
- private:
- z_stream* zlib_; // weak
- DISALLOW_COPY_AND_ASSIGN(ScopedZlibInflateStream);
-};
-
-void GzipInflate(const std::string& compressed,
- std::string* decompressed,
- size_t buf_size) {
- decompressed->clear();
-
- // There’s got to be at least a small buffer.
- buf_size = std::max(buf_size, static_cast<size_t>(1));
-
- std::unique_ptr<uint8_t[]> buf(new uint8_t[buf_size]);
- z_stream zlib = {};
- zlib.zalloc = Z_NULL;
- zlib.zfree = Z_NULL;
- zlib.opaque = Z_NULL;
- zlib.next_in = reinterpret_cast<Bytef*>(const_cast<char*>(&compressed[0]));
- zlib.avail_in = base::checked_cast<uInt>(compressed.size());
- zlib.next_out = buf.get();
- zlib.avail_out = base::checked_cast<uInt>(buf_size);
-
- int zr = inflateInit2(&zlib, ZlibWindowBitsWithGzipWrapper(0));
- ASSERT_EQ(Z_OK, zr) << "inflateInit2: " << ZlibErrorString(zr);
- ScopedZlibInflateStream zlib_inflate(&zlib);
-
- zr = inflate(&zlib, Z_FINISH);
- ASSERT_EQ(Z_STREAM_END, zr) << "inflate: " << ZlibErrorString(zr);
-
- ASSERT_LE(zlib.avail_out, buf_size);
- decompressed->assign(reinterpret_cast<char*>(buf.get()),
- buf_size - zlib.avail_out);
-}
-
-void TestGzipDeflateInflate(const std::string& string) {
- std::unique_ptr<HTTPBodyStream> string_stream(
- new StringHTTPBodyStream(string));
- GzipHTTPBodyStream gzip_stream(std::move(string_stream));
-
- // The minimum size of a gzip wrapper per RFC 1952: a 10-byte header and an
- // 8-byte trailer.
- const size_t kGzipHeaderSize = 18;
-
- // Per http://www.zlib.net/zlib_tech.html, in the worst case, zlib will store
- // uncompressed data as-is, at an overhead of 5 bytes per 16384-byte block.
- // Zero-length input will “compress” to a 2-byte zlib stream. Add the overhead
- // of the gzip wrapper, assuming no optional fields are present.
- size_t buf_size =
- string.size() + kGzipHeaderSize +
- (string.empty() ? 2 : (((string.size() + 16383) / 16384) * 5));
- std::unique_ptr<uint8_t[]> buf(new uint8_t[buf_size]);
- FileOperationResult compressed_bytes =
- gzip_stream.GetBytesBuffer(buf.get(), buf_size);
- ASSERT_NE(compressed_bytes, -1);
- ASSERT_LE(static_cast<size_t>(compressed_bytes), buf_size);
-
- // Make sure that the stream is really at EOF.
- uint8_t eof_buf[16];
- ASSERT_EQ(0, gzip_stream.GetBytesBuffer(eof_buf, sizeof(eof_buf)));
-
- std::string compressed(reinterpret_cast<char*>(buf.get()), compressed_bytes);
-
- ASSERT_GE(compressed.size(), kGzipHeaderSize);
- EXPECT_EQ('\37', compressed[0]);
- EXPECT_EQ('\213', compressed[1]);
- EXPECT_EQ(Z_DEFLATED, compressed[2]);
-
- std::string decompressed;
- ASSERT_NO_FATAL_FAILURE(
- GzipInflate(compressed, &decompressed, string.size()));
-
- EXPECT_EQ(string, decompressed);
-
- // In block mode, compression should be identical.
- string_stream.reset(new StringHTTPBodyStream(string));
- GzipHTTPBodyStream block_gzip_stream(std::move(string_stream));
- uint8_t block_buf[4096];
- std::string block_compressed;
- FileOperationResult block_compressed_bytes;
- while ((block_compressed_bytes = block_gzip_stream.GetBytesBuffer(
- block_buf, sizeof(block_buf))) > 0) {
- block_compressed.append(reinterpret_cast<char*>(block_buf),
- block_compressed_bytes);
- }
- ASSERT_EQ(0, block_compressed_bytes);
- EXPECT_EQ(compressed, block_compressed);
-}
-
-std::string MakeString(size_t size) {
- std::string string;
- for (size_t i = 0; i < size; ++i) {
- string.append(1, (i % 256) ^ ((i >> 8) % 256));
- }
- return string;
-}
-
-constexpr size_t kFourKBytes = 4096;
-constexpr size_t kManyBytes = 375017;
-
-TEST(GzipHTTPBodyStream, Empty) {
- TestGzipDeflateInflate(std::string());
-}
-
-TEST(GzipHTTPBodyStream, OneByte) {
- TestGzipDeflateInflate(std::string("Z"));
-}
-
-TEST(GzipHTTPBodyStream, FourKBytes_NUL) {
- TestGzipDeflateInflate(std::string(kFourKBytes, '\0'));
-}
-
-TEST(GzipHTTPBodyStream, ManyBytes_NUL) {
- TestGzipDeflateInflate(std::string(kManyBytes, '\0'));
-}
-
-TEST(GzipHTTPBodyStream, FourKBytes_Deterministic) {
- TestGzipDeflateInflate(MakeString(kFourKBytes));
-}
-
-TEST(GzipHTTPBodyStream, ManyBytes_Deterministic) {
- TestGzipDeflateInflate(MakeString(kManyBytes));
-}
-
-TEST(GzipHTTPBodyStream, FourKBytes_Random) {
- TestGzipDeflateInflate(base::RandBytesAsString(kFourKBytes));
-}
-
-TEST(GzipHTTPBodyStream, ManyBytes_Random) {
- TestGzipDeflateInflate(base::RandBytesAsString(kManyBytes));
-}
-
-} // namespace
-} // namespace test
-} // namespace crashpad
« no previous file with comments | « third_party/crashpad/crashpad/util/net/http_body_gzip.cc ('k') | third_party/crashpad/crashpad/util/net/http_headers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698