Chromium Code Reviews| 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. |