mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 01:58:00 +02:00
cleaning
This commit is contained in:
@ -18,7 +18,7 @@ class DataSocket {
|
||||
int getSocketId() const {
|
||||
return socketId_;
|
||||
}
|
||||
size_t sendData(void *buffer, size_t size);
|
||||
size_t sendData(const void *buffer, size_t size);
|
||||
size_t receiveData(void *buffer, size_t size);
|
||||
int setTimeOut(int t_seconds);
|
||||
void close();
|
||||
|
@ -40,7 +40,6 @@ DataSocket &DataSocket::operator=(DataSocket &&move) noexcept {
|
||||
}
|
||||
|
||||
size_t DataSocket::receiveData(void *buffer, size_t size) {
|
||||
// std::cout << "Sending\n";
|
||||
size_t dataRead = 0;
|
||||
while (dataRead < size) {
|
||||
dataRead +=
|
||||
@ -50,12 +49,11 @@ size_t DataSocket::receiveData(void *buffer, size_t size) {
|
||||
return dataRead;
|
||||
}
|
||||
|
||||
size_t DataSocket::sendData(void *buffer, size_t size) {
|
||||
// std::cout << "Receiving\n";
|
||||
size_t DataSocket::sendData(const void *buffer, size_t size) {
|
||||
size_t dataSent = 0;
|
||||
while (dataSent < size) {
|
||||
dataSent +=
|
||||
write(getSocketId(), reinterpret_cast<char *>(buffer) + dataSent,
|
||||
write(getSocketId(), reinterpret_cast<const char *>(buffer) + dataSent,
|
||||
size - dataSent);
|
||||
}
|
||||
return dataSent;
|
||||
|
@ -5,31 +5,41 @@
|
||||
#include <iostream>
|
||||
#include <chrono>
|
||||
|
||||
int server() {
|
||||
std::vector<char> server() {
|
||||
std::cout << "starting server\n";
|
||||
auto server = sls::ServerSocket(1950);
|
||||
|
||||
auto s = server.accept();
|
||||
std::vector<char> buffer(100, '\0');
|
||||
s.receiveData(buffer.data(), buffer.size());
|
||||
std::cout << "ServerReceived: " << std::string(buffer.begin(), buffer.end())
|
||||
<< '\n';
|
||||
std::string message(100, '\0');
|
||||
message[0] = 'O';
|
||||
message[1] = 'K';
|
||||
s.sendData(&message.front(), message.size());
|
||||
|
||||
std::vector<char> to_send(100, '\0');
|
||||
to_send[0] = 'O';
|
||||
to_send[1] = 'K';
|
||||
s.sendData(to_send.data(), to_send.size());
|
||||
s.close();
|
||||
return 0;
|
||||
return buffer;
|
||||
}
|
||||
|
||||
TEST_CASE("something", "[support][socket]") {
|
||||
TEST_CASE("The server recive the same message as we send", "[support]") {
|
||||
std::vector<char> received_message(100, '\0');
|
||||
std::vector<char> sent_message(100, '\0');
|
||||
const char m[]{"some message"};
|
||||
std::copy(std::begin(m), std::end(m), sent_message.data());
|
||||
|
||||
auto s = std::async(std::launch::async, server);
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||
auto client = sls::DetectorSocket("localhost", 1950);
|
||||
std::cout << "client\n";
|
||||
std::vector<char> buffer(100, '\0');
|
||||
client.sendData(buffer.data(), buffer.size());
|
||||
client.receiveData(buffer.data(), buffer.size());
|
||||
s.get();
|
||||
client.sendData(sent_message.data(), sent_message.size());
|
||||
client.receiveData(received_message.data(), received_message.size());
|
||||
client.close();
|
||||
auto server_message = s.get();
|
||||
|
||||
CHECK(server_message == sent_message);
|
||||
CHECK(std::string(received_message.data()) == "OK" );
|
||||
CHECK(client.getSocketId() == -1);
|
||||
}
|
||||
|
||||
TEST_CASE("throws on no server", "[support]"){
|
||||
CHECK_THROWS(sls::DetectorSocket("localhost", 1950));
|
||||
}
|
Reference in New Issue
Block a user