GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_MOCK_PUSH_PULL/main.cpp
Date: 2025-06-03 16:44:11
Exec Total Coverage
Lines: 30 30 100.0%
Branches: 63 63 100.0%

Line Branch Exec Source
1 /***************************************
2 Auteur : Pierre Aubert
3 Mail : pierre.aubert@lapp.in2p3.fr
4 Licence : CeCILL-C
5 ****************************************/
6
7 #include <unistd.h>
8
9 #include <fstream>
10 #include <iostream>
11 #include <thread>
12
13
14 #include "data_stream_assert.h"
15 #include "PGenericSocketManager.h"
16 #include "PZmqBackend.h"
17
18 #define CONNECTION_PORT 3390
19
20 typedef PGenericSocketManager<std::string, PZmqBackend, PMockBackend> SocketManager;
21 typedef SocketManager::Backend Backend;
22 typedef SocketManager::Mock Mock;
23
24 ///Send messages on socket
25 /** @param address : address to coonect to
26 * @param port : port to be used
27 * @param mode : mode of sockets
28 * @param nbMessage : number of message to be sent
29 * @return true on success, false otherwise
30 */
31 1 void threadSendMessage(const std::string & address, size_t port, PSocketMode::PSocketMode mode, size_t nbMessage){
32
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 std::cout << "threadSendMessage : send mock message" << std::endl;
33
1/1
✓ Branch 1 taken 1 times.
1 SocketManager manager(mode); //Mock mode
34 // b &= manager.addServerSocket("Alice", "localhost", CONNECTION_PORT, ZMQ_PUSH);
35
9/9
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 14 taken 1 times.
✓ Branch 17 taken 1 times.
✓ Branch 20 taken 1 times.
✓ Branch 24 taken 1 times.
✓ Branch 27 taken 1 times.
✓ Branch 30 taken 1 times.
1 data_stream_assert(manager.addServerSocket("Alice",
36 Backend::server(address, port),
37 Mock::server(address, port, true, "./")));
38
39
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 1 times.
11 for(size_t i(0lu); i < nbMessage; ++i){
40
6/6
✓ Branch 2 taken 10 times.
✓ Branch 6 taken 10 times.
✓ Branch 10 taken 10 times.
✓ Branch 14 taken 10 times.
✓ Branch 17 taken 10 times.
✓ Branch 20 taken 10 times.
10 data_stream_assert(manager.sendData("Alice", i));
41
5/5
✓ Branch 1 taken 10 times.
✓ Branch 4 taken 10 times.
✓ Branch 7 taken 10 times.
✓ Branch 10 taken 10 times.
✓ Branch 13 taken 10 times.
10 std::cout << "message n°"<<i<<", Send value " << i << std::endl;
42 }
43 1 }
44
45 ///Recieved messages on socket
46 /** @param address : address of the socket
47 * @param threadId : id of the thread
48 * @param mode : mode of sockets
49 * @param nbMessage : number of message to be read
50 */
51 1 void threadRecievedMessage(const std::string & address, size_t port, size_t threadId, PSocketMode::PSocketMode mode, size_t nbMessage){
52
6/6
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 std::cout << "threadRecievedMessage "<<threadId<<" : read message to '"<<address<<"'" << std::endl;
53
1/1
✓ Branch 1 taken 1 times.
1 SocketManager manager(mode); //Mock mode
54 // b &= manager.addClientSocket("Bob", address, CONNECTION_PORT, ZMQ_PULL);
55
9/9
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 14 taken 1 times.
✓ Branch 17 taken 1 times.
✓ Branch 20 taken 1 times.
✓ Branch 24 taken 1 times.
✓ Branch 27 taken 1 times.
✓ Branch 30 taken 1 times.
1 data_stream_assert(manager.addClientSocket("Bob",
56 Backend::client(address, port),
57 Mock::client(address, port, false, "./")));
58 1 size_t i(0lu);
59
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 1 times.
11 while(i < nbMessage){
60 10 size_t value(0lu);
61
6/6
✓ Branch 2 taken 10 times.
✓ Branch 6 taken 10 times.
✓ Branch 10 taken 10 times.
✓ Branch 14 taken 10 times.
✓ Branch 17 taken 10 times.
✓ Branch 20 taken 10 times.
10 data_stream_assert(manager.recvData("Bob", value));
62
7/7
✓ Branch 1 taken 10 times.
✓ Branch 4 taken 10 times.
✓ Branch 7 taken 10 times.
✓ Branch 10 taken 10 times.
✓ Branch 13 taken 10 times.
✓ Branch 16 taken 10 times.
✓ Branch 19 taken 10 times.
10 std::cout << "Recv("<<threadId<<") message n°"<<i<<", value = " << value << std::endl;
63
4/4
✓ Branch 2 taken 10 times.
✓ Branch 6 taken 10 times.
✓ Branch 10 taken 10 times.
✓ Branch 13 taken 10 times.
10 data_stream_assert(value == i);
64 10 ++i;
65 }
66 1 }
67
68 ///Launch the process
69 1 void testMockSocket(){
70 1 PSocketMode::PSocketMode mode = PSocketMode::MOCK;
71 1 size_t nbMessage(10lu), port(3390lu);
72
1/1
✓ Branch 2 taken 1 times.
1 std::string hostName("localhost");
73
1/1
✓ Branch 1 taken 1 times.
1 threadSendMessage(hostName, port, mode, nbMessage);
74
1/1
✓ Branch 1 taken 1 times.
1 threadRecievedMessage(hostName, port, 0lu, mode, nbMessage);
75 1 }
76
77 1 int main(int argc, char **argv){
78 1 testMockSocket();
79 1 return 0;
80 }
81