diff options
Diffstat (limited to 'src/mongo/transport/message_compressor_manager_test.cpp')
-rw-r--r-- | src/mongo/transport/message_compressor_manager_test.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mongo/transport/message_compressor_manager_test.cpp b/src/mongo/transport/message_compressor_manager_test.cpp index 53a057d5445..ffffebb0c2b 100644 --- a/src/mongo/transport/message_compressor_manager_test.cpp +++ b/src/mongo/transport/message_compressor_manager_test.cpp @@ -343,6 +343,26 @@ TEST(MessageCompressorManager, MessageSizeTooLarge) { ASSERT_NOT_OK(status); } +TEST(MessageCompressorManager, MessageSizeTooSmall) { + auto registry = buildRegistry(); + MessageCompressorManager compManager(®istry); + + auto badMessageBuffer = SharedBuffer::allocate(128); + MsgData::View badMessage(badMessageBuffer.get()); + badMessage.setId(1); + badMessage.setResponseToMsgId(0); + badMessage.setOperation(dbCompressed); + badMessage.setLen(128); + + DataRangeCursor cursor(badMessage.data(), badMessage.data() + badMessage.dataLen()); + cursor.writeAndAdvance<LittleEndian<int32_t>>(dbQuery); + cursor.writeAndAdvance<LittleEndian<int32_t>>(-1); + cursor.writeAndAdvance<LittleEndian<uint8_t>>(registry.getCompressor("noop")->getId()); + + auto status = compManager.decompressMessage(Message(badMessageBuffer), nullptr).getStatus(); + ASSERT_NOT_OK(status); +} + TEST(MessageCompressorManager, RuntMessage) { auto registry = buildRegistry(); MessageCompressorManager compManager(®istry); |