9 #include <gmock/gmock.h> 10 #include <gtest/gtest.h> 16 using namespace folly;
40 queue_.append(getBuf(hex));
44 auto str = buf->moveToFbString().toStdString();
54 addToQueue(
"16030100050123456789");
55 auto msg = read_.read(queue_);
56 EXPECT_EQ(msg->type, ContentType::handshake);
57 expectSame(msg->fragment,
"0123456789");
62 addToQueue(
"15030100050123456789");
63 auto msg = read_.read(queue_);
65 expectSame(msg->fragment,
"0123456789");
70 addToQueue(
"17030100050123456789");
75 addToQueue(
"160301000512345678");
81 addToQueue(
"16030102");
87 addToQueue(
"1603014000");
93 addToQueue(
"1603014001");
98 addToQueue(
"1603010000aa");
103 addToQueue(
"16030100050123456789160301");
104 auto msg = read_.read(queue_);
105 EXPECT_EQ(msg->type, ContentType::handshake);
106 expectSame(msg->fragment,
"0123456789");
108 expectSame(queue_.move(),
"160301");
112 read_.setSkipEncryptedRecords(
true);
113 addToQueue(
"17030100050123456789");
119 read_.setSkipEncryptedRecords(
true);
120 addToQueue(
"170301000501234567");
122 expectSame(queue_.move(),
"170301000501234567");
126 read_.setSkipEncryptedRecords(
true);
127 addToQueue(
"170301000501234567891703010005012345678916030100050123456789");
128 auto msg = read_.read(queue_);
129 EXPECT_EQ(msg->type, ContentType::handshake);
130 expectSame(msg->fragment,
"0123456789");
135 TLSMessage msg{ContentType::handshake, getBuf(
"1234567890")};
137 expectSame(buf.data,
"16030300051234567890");
141 auto buf = write_.writeInitialClientHello(getBuf(
"1234567890"));
142 expectSame(buf.data,
"16030100051234567890");
146 TLSMessage msg{ContentType::application_data};
154 memset(buf->writableData(), 0x1, buf->length());
155 msg.fragment->prependChain(
std::move(buf));
161 memset(buf->writableData(), 0x1, buf->length());
162 msg1.fragment->prependChain(
std::move(buf));
163 auto write1 = write_.write(
std::move(msg1));
168 memset(buf->writableData(), 0x1, buf->length());
169 msg2.fragment->prependChain(
std::move(buf));
170 auto write2 = write_.write(
std::move(msg2));
172 write1.data->prependChain(
std::move(write2.data));
#define EXPECT_ANY_THROW(statement)
Buf getBuf(const std::string &hex)
bool unhexlify(const InputString &input, OutputString &output)
void write(const T &in, folly::io::Appender &appender)
static std::unique_ptr< IOBuf > create(std::size_t capacity)
#define EXPECT_EQ(val1, val2)
constexpr detail::Map< Move > move
—— Concurrent Priority Queue Implementation ——
static Options cacheChainLength()
constexpr auto data(C &c) -> decltype(c.data())
void addToQueue(const std::string &hex)
PlaintextReadRecordLayer read_
void expectSame(const Buf &buf, const std::string &hex)
TEST_F(AsyncSSLSocketWriteTest, write_coalescing1)
#define EXPECT_TRUE(condition)
std::unique_ptr< folly::IOBuf > Buf
const internal::AnythingMatcher _
#define EXPECT_FALSE(condition)
bool hexlify(const InputString &input, OutputString &output, bool append_output)
static std::unique_ptr< IOBuf > copyBuffer(const void *buf, std::size_t size, std::size_t headroom=0, std::size_t minTailroom=0)
PlaintextWriteRecordLayer write_