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

Unified Diff: blimp/net/compressed_packet_unittest.cc

Issue 1882043003: Blimp: add padding for zlib framing to buffer preallocation calculations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « no previous file | blimp/net/compressed_packet_writer.cc » ('j') | blimp/net/compressed_packet_writer.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: blimp/net/compressed_packet_unittest.cc
diff --git a/blimp/net/compressed_packet_unittest.cc b/blimp/net/compressed_packet_unittest.cc
index 61e39b88bb8779645626e61e92ee60387937f4bc..2f095a44985618b39b837f492ed448b33ccc4540 100644
--- a/blimp/net/compressed_packet_unittest.cc
+++ b/blimp/net/compressed_packet_unittest.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "base/memory/ptr_util.h"
+#include "base/strings/string_number_conversions.h"
#include "base/sys_byteorder.h"
#include "blimp/net/common.h"
#include "blimp/net/compressed_packet_reader.h"
@@ -20,6 +21,73 @@ using testing::SaveArg;
namespace blimp {
namespace {
+// A payload containing a large volume of high-entropy/incompressible data.
+const char kLargeIncompressiblePayload[] =
Wez 2016/04/12 23:54:34 Would it work for us to replace this with an equiv
Kevin M 2016/04/13 00:53:34 Done.
+ "083F1009823F931208011214290A516B88E88CF38C31E8CDEE11D838D27D51501AF8115249"
+ "4646F008000057454250565038580A00000010000000B100003B0000414C50486B03000001"
+ "8740906D3383CD9FF7778888A4B503C4469214493D8C3BD3FEBBFBF7D5300E44F47F02BAC7"
+ "4C60EAF248BA29D7DED7DEFBE3FFCFDEB3D744F28E4712A72E0EC41E3B3259DE34D261D3D5"
+ "A280F12C0A87A595DC5D85AD91D97C653F83A593DC25D60C2F30EFE824B3F40BFE864A7D83"
+ "6F75118EE446F27754D623CCDDC36269217F91759FE16A5758DAE981A6549EE16C15AE64D3"
+ "0B5B69BE73AC160B4F7821B0F27D87AB4D6169A2172A7220CE4639D2CF58E6151D93702595"
+ "94BA72FE67216343C388D030249C2C360B276991F1454A878E1FA22A69068D855F78A3301A"
+ "32C4C91175C1D28B577023BD31904384754F74B0ADB75998E991834CA20D7DAE06C66A8D85"
+ "9D1E498C56A20E71F4545DC42B58F44A871251C69AA7ECE263FC84673EE4121161FB99ABD4"
+ "19BF895E898CAE3F0BE2E0A8625B27B1B0D233156A7F1A561D0D6CE87C8249EF2C28FD89D8"
+ "F2132E56543AE31FBD13183DF4F340ECA7337C4823317EE343059ABF0656BC54C6BBCA1664"
+ "32CBBA3F26547E156C3AE98C1FD2688C77B253FE71A1F08B2E743D8476589834CAC50EBD94"
+ "18FDE8DF0571D6EBBFF76171258DC3C2FCD280FA7F151B7AFA8354C4273C74A0F45FC48EBB"
+ "4A2EB8BF1319BD047E10275F2793138ECF3468221DEB9E6E27D46A3FB3A18A24EC73740239"
+ "E2F24860382274218E7EF8364F27BC51A18FE0893547CCD311F7371674377CB0E58AA7C5EA"
+ "028E365D97E842A6C11577BD2FD0116C1B522EECB52AD1CFDC8EE446AD9B888A80CB03D3CD"
+ "3221A276319E5A8588680B6EF077DC5C2B2A028E3A8DFE26010F7789FD162B1A82AE32E9F7"
+ "1470F2D61D4DB370B1A392FF0957B0BD7D8EAE194D8C93057501575F913D27B32468267404"
+ "37B86AAE86191D6CDB14010F570B5B59DC05C76E626C435BC0C95160BC90380A38995541B6"
+ "4992CF511104197D82669604DD86A6809B9F896D526C82CF8C2EF619852BB8C1CDC5BA4612"
+ "70345B18071BEA029E5E32E349838EA099354131A223E0EC6460975487609925C1B02A92CF"
+ "C9C1A64E1170B0A28B7D56B405DC5C44C6AB0E5D41355B1807AB24B9C1431344A525586655"
+ "50AC680A7879F8B08F94ABE09A45C1340B57C0D92E303EB482808B157DD831A32E39765590"
+ "B5E8134CB3867132A323E06EB6B04BEA4D70CDA2A0D915C98D56175B7A51C0C98A3676EC68"
+ "0B7851C64521E3518FB230868C2BC48C878C078D98A50400565038205E050000B024009D01"
+ "2AB2003C003E75329247A4A321A13DF71800900E89690015E37FD8FF87F749FD77F45B9A9F"
+ "D2FF355FC00FC40E007F58BF05F921F92DCF3ED5FFE1BF9BEFDE724FE2FFABBE2E1FAEFE00"
+ "7B81F44FF9DFA90FE75FEE7C803FC778A67917B007F07FE75FE77EED7E907F49FF4BFD4BF2"
+ "47D8BFE29FCEBFF07F9CF804FE29FCDBFE47F7FFF1BEE01EA03F693D82FF5EBFEFA8E402C7"
+ "68AF5EF341EB3FA3DCE9F7868278FFDA1DE84775141A8BC1D7CF7F595F7586FE4B3E5C4B29"
+ "6819ABF8615E8F2C5765F38001840AB09B8B3906B749AF4466D0D1FF8219A21292B7FADE4A"
+ "1E7C883D403B17FDFDF0F439E73EC907E33DE328E22C595082826C1C5E4A1B37BE52C44083"
+ "4B93C1B29FADD72AF7F33521EB3F845156D854D5AFD41B5C5E2CA24C5E65D12317D7419992"
+ "0000FECB60EDF4C2FB91DE2D415123E0114D081CFAD2A379F91BC5C36E3A6A81016A3D2374"
+ "734E7820478CE92F44CE91DE8B8F2F278E1A69CDF8F3A0F8EA28674011715F27B23E6CED65"
+ "32C34B38292A3E3256070D611FDC27664F7341DA07B7E08430B1AD0CF0B90F062676D5C561"
+ "4F4EA33200C6BDEACDA0509BE17D91479B9DB75E4561D39EFCA1C5C3C447AB37B0084DB3D2"
+ "0AB40FFD4B563E572DF093FFF1CFFB8446F3F9A80F5399C4260DAB3F416844694A54F0191C"
+ "EBBFD12FDB1F89AE633B2F050470CF1D9BE8B6613000E48E8786B387D9AD1B8A9E518FDF35"
+ "97A6D9950413E16E635924086AC20A24371B652A6F097998EBAD8552FED0834F7619A04D44"
+ "4CFEAA4B8934606144AF1A55CAEC8AAB15647304A7348432DC170A87F844DA416E24EE8D74"
+ "BFF17F7EF5B68232F000D1D6A413FF03D859C5F63721C042FFA41C80934CBFBFBB14DE254D"
+ "4F370FC2400613882E68F3A6E5412968167DC7ED2F169514CE98887126ECC3E362C58CDA29"
+ "53FCE87BCC58BA3243DBD02FDF8EE1EE1EF70CE022CB15EF3788A735C1440D0B06C7444215"
+ "819B009315A1C9C8D3752B20F7AD7F0B37C56585F70C0A0629787CD1FB2F1D049181BB81C4"
+ "48859C7B6CB71B41E3F0887B95277F9E88152B44A495D7F013B3D91A36344818F86CB7CF50"
+ "77FE1C866DB8B70F410CC3E1C6B1F06DDF5FBCBE8626AC6AA8FF12B250B054720ED0C7A0E3"
+ "0E5C9AC588C10F9C832F9C4CC9F284B584CFC1A9E790DFA8E6FC8954551E7E478AF1C19DF1"
+ "59E1DEAD8E594EE3880F736EFAFDE5F43135627EF89DBD1CEA436A6BA7F2A2C61E97F5B19C"
+ "E6A3051F7E56D93ECAC3FA3D421DE597D0F10BF18F198AEAB22589A008B3A39D14A84B088E"
+ "468F802D11AE9D31AB03769F6C7B042200DA84432CC28767B9A4277C7042CD1BA365D7BB49"
+ "E4522A9AC6F4C1C39682CF5ADC02CA2DCB69851B01E3285750E9DD711B57B73521EF302F99"
+ "748DFD7AF8E07E00729D38EFC5CDF564AB43D03CE29E4DCDB0DBF1F655C1EE42D11442BB89"
+ "F1B8DE2B4C69C122399873CCC6E079BEC4013EBB653B8E2018F4A770D6A0929C0BDC815983"
+ "F297F630238397604288AB009F83C753177B75DC66295859059CCD4A0000CE4E1BB111DAFC"
+ "7EA1DF2A12A9D8FA175C358694DDD099A14F167FEA47D3B432F6A695A0946C8765316A5B74"
+ "4CEDA7D47D655AAA8974BBBD2F034A959066B07ABA12209DE149D7C3701D5DEB37702BF460"
+ "53DFABAB2DC61F3738A0F124F0F97C16B67C4115EABADAC770D2E88C133BA3C7B13AE8E85F"
+ "04E0239939918344B534EE0F3712849F82CF66C7A15F07C96DD41AE693FDFE1EF1BB62D0E0"
+ "42D3A2C9694BC2288B11AEF65EB7BC1312C33414CDB8CA0A8C3DBCCFC1CD262D88764FF006"
+ "4812023CC07EE0E6E8576F7225E1D3631C1E0C19AD4B41774DEC1707B78E776C107548E40C"
+ "5E55A54321A5D0EDFED3550DC7206E33011E819EE830D560ACA14D978639AD904593D0000"
+ "0";
+
// Calls the CompletionCallback (indicated by the 0-based index cb_idx)
// with the value |result|.
ACTION_TEMPLATE(InvokeCompletionCallback,
@@ -69,6 +137,7 @@ class CompressedPacketTest : public testing::Test {
net::TestCompletionCallback completion_cb_1;
compressed_writer_->WritePacket(content_buf, completion_cb_1.callback());
EXPECT_EQ(net::OK, completion_cb_1.WaitForResult());
+ LOG(ERROR) << "Compressed size: " << compressed_buf->BytesRemaining();
Wez 2016/04/12 23:54:34 Ick! Nasty, noisy test! Shoo! Shoo!
Kevin M 2016/04/13 00:53:34 Done.
return std::string(compressed_buf->data(),
compressed_buf->BytesRemaining());
}
@@ -90,6 +159,7 @@ class CompressedPacketTest : public testing::Test {
compressed_reader_->ReadPacket(decompressed_buf,
completion_cb_2.callback());
int size = completion_cb_2.WaitForResult();
+ LOG(ERROR) << "Decompressed size: " << size;
Wez 2016/04/12 23:54:34 Out, damned LOG(ERROR)! Out, I tell you!
Kevin M 2016/04/13 00:53:34 Done.
return std::string(decompressed_buf->data(), size);
}
@@ -153,6 +223,13 @@ TEST_F(CompressedPacketTest, LargeInput) {
EXPECT_TRUE(CheckRoundTrip(big_str));
}
+TEST_F(CompressedPacketTest, LowCompressionRatio) {
+ std::vector<uint8_t> decoded;
+ ASSERT_TRUE(base::HexStringToBytes(std::string(kRepro, arraysize(kRepro) - 1),
+ &decoded));
+ EXPECT_TRUE(CheckRoundTrip(std::string(decoded.begin(), decoded.end())));
+}
+
TEST_F(CompressedPacketTest, DecompressIllegallyLargePayload) {
// We can't use the compressor to compress an illegally sized payload, however
// we can concatenate the output of smaller payloads to form an uber-payload.
« no previous file with comments | « no previous file | blimp/net/compressed_packet_writer.cc » ('j') | blimp/net/compressed_packet_writer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698