修正压缩算法解析出错的问题
This commit is contained in:
@@ -51,7 +51,7 @@ namespace Transmission {
|
|||||||
if (!dataPackets.ParseFromArray(buff.get(), this->packSize))
|
if (!dataPackets.ParseFromArray(buff.get(), this->packSize))
|
||||||
throw PrepareDataException("反序列化出错");
|
throw PrepareDataException("反序列化出错");
|
||||||
this->packSize = -1;
|
this->packSize = -1;
|
||||||
switch (dataPackets.type()) {
|
switch (dataPackets.algorithm()) {
|
||||||
//无压缩
|
//无压缩
|
||||||
case CompressAlgorithm::NOT: {
|
case CompressAlgorithm::NOT: {
|
||||||
auto pack = copyMem(dataPackets.data());
|
auto pack = copyMem(dataPackets.data());
|
||||||
|
|||||||
@@ -9,6 +9,15 @@
|
|||||||
static bool isExec = false;
|
static bool isExec = false;
|
||||||
static const char *shortStr = "Client Hello";
|
static const char *shortStr = "Client Hello";
|
||||||
static const char *LongStr = "Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello";
|
static const char *LongStr = "Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello";
|
||||||
|
static const char *LongLongStr = "Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
|
||||||
|
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
|
||||||
|
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
|
||||||
|
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
|
||||||
|
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
|
||||||
|
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
|
||||||
|
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
|
||||||
|
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello"
|
||||||
|
"Client HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient HelloClient Hello";
|
||||||
|
|
||||||
class Transmit : public Transmission::Transmit {
|
class Transmit : public Transmission::Transmit {
|
||||||
private:
|
private:
|
||||||
@@ -23,7 +32,9 @@ public:
|
|||||||
ASSERT_TRUE(strcmp((char *) data.get(), shortStr) == 0);
|
ASSERT_TRUE(strcmp((char *) data.get(), shortStr) == 0);
|
||||||
else if (type == 2)
|
else if (type == 2)
|
||||||
ASSERT_TRUE(strcmp((char *) data.get(), LongStr) == 0);
|
ASSERT_TRUE(strcmp((char *) data.get(), LongStr) == 0);
|
||||||
else
|
else if (type == 3) {
|
||||||
|
ASSERT_TRUE(strcmp((char *) data.get(), LongLongStr) == 0);
|
||||||
|
} else
|
||||||
ASSERT_TRUE(false);
|
ASSERT_TRUE(false);
|
||||||
isExec = true;
|
isExec = true;
|
||||||
}
|
}
|
||||||
@@ -62,4 +73,8 @@ TEST(Transmit测试, 1) {
|
|||||||
transmitWrite.sendData((unsigned char *) LongStr, strlen(LongStr) + 1, 2);
|
transmitWrite.sendData((unsigned char *) LongStr, strlen(LongStr) + 1, 2);
|
||||||
transmitRead.read();
|
transmitRead.read();
|
||||||
ASSERT_TRUE(isExec);
|
ASSERT_TRUE(isExec);
|
||||||
|
isExec = false;
|
||||||
|
transmitWrite.sendData((unsigned char *) LongLongStr, strlen(LongLongStr) + 1, 3);
|
||||||
|
transmitRead.read();
|
||||||
|
ASSERT_TRUE(isExec);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user