mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-30 13:37:55 +00:00
[1924] Get rid of IO test code
It isn't used any more and it is complicated, so remove it.
This commit is contained in:
parent
2a723e7e4b
commit
d437aee8f3
@ -29,14 +29,12 @@
|
||||
#include <exceptions/exceptions.h>
|
||||
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
#include <list>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
using namespace isc::cc;
|
||||
using std::pair;
|
||||
using std::vector;
|
||||
using std::list;
|
||||
using std::string;
|
||||
using isc::data::ConstElementPtr;
|
||||
@ -66,9 +64,6 @@ TEST(AsioSession, establish) {
|
||||
);
|
||||
}
|
||||
|
||||
/// \brief Pair holding header and data of a message sent over the wire.
|
||||
typedef pair<ConstElementPtr, ConstElementPtr> SentMessage;
|
||||
|
||||
// This class sets up a domain socket for the session to connect to
|
||||
// it will impersonate the msgq a tiny bit (if setSendLname() has
|
||||
// been called, it will send an 'answer' to the lname query that is
|
||||
@ -111,53 +106,6 @@ public:
|
||||
socket_.send(asio::buffer(body_wire.data(), body_wire.length()));
|
||||
}
|
||||
|
||||
/// \brief Read a message from the socket
|
||||
///
|
||||
/// Read a message from the socket and parse it. Block until it is
|
||||
/// read or error happens. If error happens, it asio::system_error.
|
||||
///
|
||||
/// This method would block for ever if the sender is not sending.
|
||||
/// But the whole test has a timeout of 10 seconds (see the
|
||||
/// SessionTest::SetUp and SessionTest::TearDown).
|
||||
///
|
||||
/// \note The method assumes the wire data are correct and does not check
|
||||
/// it. Strange things might happen if it is not the case, but the
|
||||
/// test would likely fail as a result, so we prefer simplicity here.
|
||||
///
|
||||
/// \return Pair containing the header and body elements (in this order).
|
||||
SentMessage readmsg() {
|
||||
// The format is:
|
||||
// <uint32_t in net order = total length>
|
||||
// <uint16_t in net order = header length>
|
||||
// <char * header length = the header>
|
||||
// <char * the rest of the total length = the data>
|
||||
|
||||
// Read and convert the lengths first.
|
||||
uint32_t total_len_data;
|
||||
uint16_t header_len_data;
|
||||
vector<asio::mutable_buffer> len_buffers;
|
||||
len_buffers.push_back(asio::buffer(&total_len_data,
|
||||
sizeof total_len_data));
|
||||
len_buffers.push_back(asio::buffer(&header_len_data,
|
||||
sizeof header_len_data));
|
||||
asio::read(socket_, len_buffers);
|
||||
const uint32_t total_len = ntohl(total_len_data);
|
||||
const uint16_t header_len = ntohs(header_len_data);
|
||||
string header, msg;
|
||||
header.resize(header_len);
|
||||
msg.resize(total_len - header_len - sizeof header_len_data);
|
||||
vector<asio::mutable_buffer> data_buffers;
|
||||
data_buffers.push_back(asio::buffer(&header[0], header.size()));
|
||||
data_buffers.push_back(asio::buffer(&msg[0], msg.size()));
|
||||
asio::read(socket_, data_buffers);
|
||||
if (msg == "") { // The case of no msg present, for control messages
|
||||
msg = "null";
|
||||
}
|
||||
// Extract the right data into each string and convert.
|
||||
return (SentMessage(Element::fromWire(header),
|
||||
Element::fromWire(msg)));
|
||||
}
|
||||
|
||||
void sendLname() {
|
||||
isc::data::ElementPtr lname_answer1 =
|
||||
isc::data::Element::fromJSON("{ \"type\": \"lname\" }");
|
||||
@ -180,6 +128,9 @@ private:
|
||||
char data_buf[1024];
|
||||
};
|
||||
|
||||
/// \brief Pair holding header and data of a message sent over the connection.
|
||||
typedef pair<ConstElementPtr, ConstElementPtr> SentMessage;
|
||||
|
||||
// We specialize the tested class a little. We replace some low-level
|
||||
// methods so we can examine the rest without relying on real network IO
|
||||
class TestSession : public Session {
|
||||
@ -187,6 +138,8 @@ public:
|
||||
TestSession(asio::io_service& ioservice) :
|
||||
Session(ioservice)
|
||||
{}
|
||||
// Get first message previously sent by sendmsg and remove it from the
|
||||
// buffer. Expects there's at leas one message in the buffer.
|
||||
SentMessage getSentMessage() {
|
||||
assert(!sent_messages_.empty());
|
||||
SentMessage result(sent_messages_.front());
|
||||
@ -194,6 +147,8 @@ public:
|
||||
return (result);
|
||||
}
|
||||
private:
|
||||
// Override the sendmsg. They are not sent over the real connection, but
|
||||
// stored locally and can be extracted by getSentMessage()
|
||||
virtual void sendmsg(ConstElementPtr msg) {
|
||||
sendmsg(msg, ConstElementPtr(new isc::data::NullElement));
|
||||
}
|
||||
@ -201,6 +156,7 @@ private:
|
||||
sent_messages_.push_back(SentMessage(env, msg));
|
||||
}
|
||||
|
||||
// The sendmsg stores data here.
|
||||
list<SentMessage> sent_messages_;
|
||||
};
|
||||
|
||||
@ -217,21 +173,6 @@ protected:
|
||||
delete tds;
|
||||
}
|
||||
|
||||
void SetUp() {
|
||||
// There are blocking reads in some tests. We want to have a safety
|
||||
// catch in case the sender didn't write enough. We set a timeout of
|
||||
// 10 seconds per one test (which should really be enough even on
|
||||
// slow machines). If the timeout happens, it kills the test and
|
||||
// the whole test fails.
|
||||
//alarm(10);
|
||||
}
|
||||
|
||||
void TearDown() {
|
||||
// Cancel the timeout scheduled in SetUp. We don't want to kill any
|
||||
// of the other tests by it by accident.
|
||||
alarm(0);
|
||||
}
|
||||
|
||||
// Check two elements are equal
|
||||
void elementsEqual(const ConstElementPtr& expected,
|
||||
const ConstElementPtr& actual)
|
||||
|
Loading…
x
Reference in New Issue
Block a user