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 | #include "data_stream_assert.h" | ||
14 | #include "PGenericSocketManager.h" | ||
15 | |||
16 | |||
17 | typedef PGenericSocketManager<std::string, PEmptyBackend, PMockBackend> SocketManager; | ||
18 | typedef SocketManager::Backend Backend; | ||
19 | typedef SocketManager::Mock Mock; | ||
20 | |||
21 | |||
22 | ///Send messages on socket | ||
23 | /** @param mode : mode of the mock to be used | ||
24 | * @param nbMessage : number of message to be sent | ||
25 | * @param address : address of the socket | ||
26 | * @param port : connection port to be used | ||
27 | */ | ||
28 | 1 | void threadSendData(PSocketMode::PSocketMode mode, size_t nbMessage, const std::string & address, size_t port){ | |
29 |
1/1✓ Branch 0 (2→3) taken 1 times.
|
1 | SocketManager manager(mode); //Mock mode |
30 |
9/9✓ Branch 0 (5→6) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
✓ Branch 4 (11→12) taken 1 times.
✓ Branch 6 (12→13) taken 1 times.
✓ Branch 8 (15→16) taken 1 times.
✓ Branch 10 (16→17) taken 1 times.
✓ Branch 12 (19→20) taken 1 times.
✓ Branch 14 (20→21) taken 1 times.
✓ Branch 16 (21→22) taken 1 times.
|
10 | data_stream_assert(manager.addServerSocket("Alice", address, port, Backend::server(), "", Mock::server())); |
31 |
6/6✓ Branch 0 (35→36) taken 1 times.
✓ Branch 2 (38→39) taken 1 times.
✓ Branch 4 (41→42) taken 1 times.
✓ Branch 6 (44→45) taken 1 times.
✓ Branch 8 (45→46) taken 1 times.
✓ Branch 10 (46→47) taken 1 times.
|
7 | data_stream_assert(manager.isConnected("Alice")); |
32 |
2/2✓ Branch 0 (84→56) taken 10 times.
✓ Branch 1 (84→85) taken 1 times.
|
11 | for(size_t i(0lu); i < nbMessage; ++i){ |
33 |
6/6✓ Branch 0 (58→59) taken 10 times.
✓ Branch 2 (61→62) taken 10 times.
✓ Branch 4 (64→65) taken 10 times.
✓ Branch 6 (67→68) taken 10 times.
✓ Branch 8 (68→69) taken 10 times.
✓ Branch 10 (69→70) taken 10 times.
|
70 | data_stream_assert(manager.sendData("Alice", i)); |
34 |
5/5✓ Branch 0 (78→79) taken 10 times.
✓ Branch 2 (79→80) taken 10 times.
✓ Branch 4 (80→81) taken 10 times.
✓ Branch 6 (81→82) taken 10 times.
✓ Branch 8 (82→83) taken 10 times.
|
10 | std::cout << "message n°"<<i<<", Send value " << i << std::endl; |
35 | } | ||
36 | 1 | } | |
37 | |||
38 | ///Recieved messages on socket | ||
39 | /** @param mode : mode of the mock to be used | ||
40 | * @param address : address of the socket | ||
41 | * @param nbMessage : number of message to be read | ||
42 | * @param port : connection port to be used | ||
43 | */ | ||
44 | 1 | void threadRecievedData(PSocketMode::PSocketMode mode, const std::string & address, size_t nbMessage, size_t port){ | |
45 |
1/1✓ Branch 0 (2→3) taken 1 times.
|
1 | SocketManager manager(mode); //Mock mode |
46 |
9/9✓ Branch 0 (5→6) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
✓ Branch 4 (11→12) taken 1 times.
✓ Branch 6 (12→13) taken 1 times.
✓ Branch 8 (15→16) taken 1 times.
✓ Branch 10 (16→17) taken 1 times.
✓ Branch 12 (19→20) taken 1 times.
✓ Branch 14 (20→21) taken 1 times.
✓ Branch 16 (21→22) taken 1 times.
|
9 | data_stream_assert(manager.addClientSocket("Bob", address, port, Backend::client(), "", Mock::client())); |
47 | 1 | size_t i(0lu); | |
48 |
2/2✓ Branch 0 (82→34) taken 10 times.
✓ Branch 1 (82→83) taken 1 times.
|
11 | while(i < nbMessage){ |
49 | 10 | size_t value(0lu); | |
50 |
1/2✗ Branch 0 (34→35) not taken.
✓ Branch 1 (34→58) taken 10 times.
|
10 | if(mode == PSocketMode::NO_MOCK){ |
51 | ✗ | data_stream_assert(!manager.recvData("Bob", value)); | |
52 | }else{ | ||
53 |
6/6✓ Branch 0 (60→61) taken 10 times.
✓ Branch 2 (63→64) taken 10 times.
✓ Branch 4 (66→67) taken 10 times.
✓ Branch 6 (69→70) taken 10 times.
✓ Branch 8 (70→71) taken 10 times.
✓ Branch 10 (71→72) taken 10 times.
|
80 | data_stream_assert(manager.recvData("Bob", value)); |
54 | } | ||
55 | 10 | ++i; | |
56 | } | ||
57 | 1 | } | |
58 | |||
59 | ///Launch the process | ||
60 | 1 | void testMockSocket(){ | |
61 | 1 | size_t nbMessage(10lu), port(3390lu); | |
62 |
1/1✓ Branch 0 (4→5) taken 1 times.
|
1 | std::string hostName("localhost"); |
63 |
1/1✓ Branch 0 (6→7) taken 1 times.
|
1 | threadSendData(PSocketMode::MOCK_RECORD, nbMessage, hostName, port); |
64 |
1/1✓ Branch 0 (7→8) taken 1 times.
|
1 | threadRecievedData(PSocketMode::MOCK, hostName, nbMessage, port); |
65 | 1 | } | |
66 | |||
67 | |||
68 | ///Send messages on socket | ||
69 | /** @param mode : mode of the mock to be used | ||
70 | * @param nbMessage : number of message to be sent | ||
71 | * @param address : address of the socket | ||
72 | * @param port : connection port to be used | ||
73 | */ | ||
74 | 1 | void threadSendMessage(PSocketMode::PSocketMode mode, size_t nbMessage, const std::string & address, size_t port){ | |
75 |
1/1✓ Branch 0 (2→3) taken 1 times.
|
1 | SocketManager manager(mode); //Mock mode |
76 |
1/1✓ Branch 0 (3→4) taken 1 times.
|
1 | manager.setMode(PSocketMode::MOCK_RECORD); |
77 |
9/9✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (9→10) taken 1 times.
✓ Branch 4 (12→13) taken 1 times.
✓ Branch 6 (13→14) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
✓ Branch 10 (17→18) taken 1 times.
✓ Branch 12 (20→21) taken 1 times.
✓ Branch 14 (21→22) taken 1 times.
✓ Branch 16 (22→23) taken 1 times.
|
10 | data_stream_assert(manager.addServerSocket("Alice", address, port, Backend::server(), "./testMessage/", Mock::server())); |
78 |
6/6✓ Branch 0 (36→37) taken 1 times.
✓ Branch 2 (39→40) taken 1 times.
✓ Branch 4 (42→43) taken 1 times.
✓ Branch 6 (45→46) taken 1 times.
✓ Branch 8 (46→47) taken 1 times.
✓ Branch 10 (47→48) taken 1 times.
|
7 | data_stream_assert(manager.isConnected("Alice")); |
79 |
2/2✓ Branch 0 (90→57) taken 10 times.
✓ Branch 1 (90→91) taken 1 times.
|
11 | for(size_t i(0lu); i < nbMessage; ++i){ |
80 | 10 | Backend::Message msg; | |
81 |
1/1✓ Branch 0 (58→59) taken 10 times.
|
10 | msg.push_back(i + 1); |
82 |
1/1✓ Branch 0 (59→60) taken 10 times.
|
10 | msg.push_back(i + 2); |
83 |
1/1✓ Branch 0 (60→61) taken 10 times.
|
10 | msg.push_back(i + 3); |
84 | |||
85 |
6/6✓ Branch 0 (63→64) taken 10 times.
✓ Branch 2 (66→67) taken 10 times.
✓ Branch 4 (69→70) taken 10 times.
✓ Branch 6 (72→73) taken 10 times.
✓ Branch 8 (73→74) taken 10 times.
✓ Branch 10 (74→75) taken 10 times.
|
70 | data_stream_assert(manager.sendMsg("Alice", msg)); |
86 |
5/5✓ Branch 0 (83→84) taken 10 times.
✓ Branch 2 (84→85) taken 10 times.
✓ Branch 4 (85→86) taken 10 times.
✓ Branch 6 (86→87) taken 10 times.
✓ Branch 8 (87→88) taken 10 times.
|
10 | std::cout << "message n°"<<i<<", Send message " << i << std::endl; |
87 | 10 | } | |
88 | 1 | } | |
89 | |||
90 | ///Recieved messages on socket | ||
91 | /** @param mode : mode of the mock to be used | ||
92 | * @param address : address of the socket | ||
93 | * @param nbMessage : number of message to be read | ||
94 | * @param port : connection port to be used | ||
95 | */ | ||
96 | 1 | void threadRecievedMessage(PSocketMode::PSocketMode mode, const std::string & address, size_t nbMessage, size_t port){ | |
97 |
1/1✓ Branch 0 (2→3) taken 1 times.
|
1 | SocketManager manager(mode); //Mock mode |
98 |
9/9✓ Branch 0 (5→6) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
✓ Branch 4 (11→12) taken 1 times.
✓ Branch 6 (12→13) taken 1 times.
✓ Branch 8 (15→16) taken 1 times.
✓ Branch 10 (16→17) taken 1 times.
✓ Branch 12 (19→20) taken 1 times.
✓ Branch 14 (20→21) taken 1 times.
✓ Branch 16 (21→22) taken 1 times.
|
9 | data_stream_assert(manager.addClientSocket("Bob", address, port, Backend::client(), "./testMessage/", Mock::client())); |
99 | 1 | size_t i(0lu); | |
100 |
2/2✓ Branch 0 (150→34) taken 10 times.
✓ Branch 1 (150→151) taken 1 times.
|
11 | while(i < nbMessage){ |
101 | 10 | Backend::Message msg; | |
102 |
1/2✗ Branch 0 (35→36) not taken.
✓ Branch 1 (35→59) taken 10 times.
|
10 | if(mode == PSocketMode::NO_MOCK){ |
103 | ✗ | data_stream_assert(!manager.recvMsg("Bob", msg)); | |
104 | }else{ | ||
105 |
6/6✓ Branch 0 (61→62) taken 10 times.
✓ Branch 2 (64→65) taken 10 times.
✓ Branch 4 (67→68) taken 10 times.
✓ Branch 6 (70→71) taken 10 times.
✓ Branch 8 (71→72) taken 10 times.
✓ Branch 10 (72→73) taken 10 times.
|
80 | data_stream_assert(manager.recvMsg("Bob", msg)); |
106 |
5/5✓ Branch 0 (83→84) taken 10 times.
✓ Branch 2 (86→87) taken 10 times.
✓ Branch 4 (89→90) taken 10 times.
✓ Branch 6 (90→91) taken 10 times.
✓ Branch 8 (91→92) taken 10 times.
|
50 | data_stream_assert(Backend::msgSize(msg) == 3lu); |
107 | |||
108 |
1/1✓ Branch 0 (98→99) taken 10 times.
|
10 | DataStreamIter data = Backend::msgData(msg); |
109 |
4/4✓ Branch 0 (101→102) taken 10 times.
✓ Branch 2 (104→105) taken 10 times.
✓ Branch 4 (107→108) taken 10 times.
✓ Branch 6 (108→109) taken 10 times.
|
60 | data_stream_assert(data[0] == (char)i + 1); |
110 |
4/4✓ Branch 0 (117→118) taken 10 times.
✓ Branch 2 (120→121) taken 10 times.
✓ Branch 4 (123→124) taken 10 times.
✓ Branch 6 (124→125) taken 10 times.
|
60 | data_stream_assert(data[1] == (char)i + 2); |
111 |
4/4✓ Branch 0 (133→134) taken 10 times.
✓ Branch 2 (136→137) taken 10 times.
✓ Branch 4 (139→140) taken 10 times.
✓ Branch 6 (140→141) taken 10 times.
|
60 | data_stream_assert(data[2] == (char)i + 3); |
112 | } | ||
113 | 10 | ++i; | |
114 | 10 | } | |
115 | 1 | } | |
116 | |||
117 | ///Launch the process | ||
118 | 1 | void testMockSocketMessage(){ | |
119 | 1 | size_t nbMessage(10lu), port(3390lu); | |
120 |
1/1✓ Branch 0 (4→5) taken 1 times.
|
1 | std::string hostName("localhost"); |
121 |
1/1✓ Branch 0 (6→7) taken 1 times.
|
1 | threadSendMessage(PSocketMode::MOCK_RECORD, nbMessage, hostName, port); |
122 |
1/1✓ Branch 0 (7→8) taken 1 times.
|
1 | threadRecievedMessage(PSocketMode::MOCK, hostName, nbMessage, port); |
123 | 1 | } | |
124 | |||
125 | 1 | int main(int argc, char **argv){ | |
126 | 1 | testMockSocket(); | |
127 | 1 | testMockSocketMessage(); | |
128 | 1 | return 0; | |
129 | } | ||
130 |