GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_MOCK_BACKEND/main.cpp
Date: 2025-12-02 14:33:23
Exec Total Coverage
Lines: 44 44 100.0%
Functions: 6 6 100.0%
Branches: 64 76 84.2%

Line Branch Exec Source
1 /***************************************
2 Author : Thibaut Prinsen
3 Mail : thibaut.oprinsen@lapp.in2p3.fr
4 License : CeCILL-C
5 ****************************************/
6
7 #include <iostream>
8
9 #include "data_stream_assert.h"
10 #include "data_stream_check_value.h"
11 #include "PEmptyBackend.h"
12 #include "PMockBackend.h"
13 #include "PMockBackendFile.h"
14
15 ///Test simple PEmptyBackend
16 1 void testEmptyBackend(){
17
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PEmptyBackend::Socket socket;
18
2/2
✓ Branch 0 (5→6) taken 1 times.
✓ Branch 2 (6→7) taken 1 times.
1 socket.setMockPrefix("edge_");
19
1/1
✓ Branch 0 (9→10) taken 1 times.
1 socket.setIsMockRecord(false);
20 1 }
21
22 ///Test mock backend send message mismatch case
23 1 void testMockBackendSendMessageMismatch(){
24 // Now open in read mode and try to send a different message
25
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PMockBackend backend;
26
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PMockBackend::Socket readSocket, otherSocket;
27
1/1
✓ Branch 0 (5→6) taken 1 times.
1 readSocket.setIsMockRecord(false);
28
2/2
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (9→10) taken 1 times.
2 readSocket.setMockPrefix("mismatch_");
29
8/11
✓ Branch 0 (14→15) taken 1 times.
✓ Branch 2 (17→18) taken 1 times.
✓ Branch 4 (20→21) taken 1 times.
✓ Branch 6 (21→22) taken 1 times.
✓ Branch 8 (24→25) taken 1 times.
✓ Branch 10 (25→26) taken 1 times.
✓ Branch 12 (26→27) taken 1 times.
✗ Branch 14 (28→29) not taken.
✓ Branch 15 (28→30) taken 1 times.
✗ Branch 16 (77→78) not taken.
✗ Branch 17 (77→79) not taken.
8 data_stream_assert(backend.createClientSocket(readSocket, PSocketParam{"host", 4444}, PMockBackend::client()));
30
8/11
✓ Branch 0 (39→40) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
✓ Branch 4 (45→46) taken 1 times.
✓ Branch 6 (48→49) taken 1 times.
✓ Branch 8 (51→52) taken 1 times.
✓ Branch 10 (52→53) taken 1 times.
✓ Branch 12 (53→54) taken 1 times.
✗ Branch 14 (55→56) not taken.
✓ Branch 15 (55→57) taken 1 times.
✗ Branch 16 (105→106) not taken.
✗ Branch 17 (105→107) not taken.
9 data_stream_assert(phoenix_createMockBackend(otherSocket, PSocketParam{"host", 4444}));
31 1 }
32
33 ///Test mock backend message mismatch on send
34 1 void testMockBackendMessageMismatch(){
35 // Test lines 149-152: send with different message than expected
36
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PMockBackend backend;
37
1/1
✓ Branch 0 (3→4) taken 1 times.
1 PMockBackend::Socket mismatchSocket;
38
1/1
✓ Branch 0 (4→5) taken 1 times.
1 mismatchSocket.setIsMockRecord(true); // Create data first
39
2/2
✓ Branch 0 (7→8) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
2 mismatchSocket.setMockPrefix("mismatch_");
40
8/11
✓ Branch 0 (13→14) taken 1 times.
✓ Branch 2 (16→17) taken 1 times.
✓ Branch 4 (19→20) taken 1 times.
✓ Branch 6 (20→21) taken 1 times.
✓ Branch 8 (23→24) taken 1 times.
✓ Branch 10 (24→25) taken 1 times.
✓ Branch 12 (25→26) taken 1 times.
✗ Branch 14 (27→28) not taken.
✓ Branch 15 (27→29) taken 1 times.
✗ Branch 16 (46→47) not taken.
✗ Branch 17 (46→48) not taken.
7 data_stream_assert(backend.createClientSocket(mismatchSocket, PSocketParam{"host", 4444}, PMockBackend::client()));
41 1 }
42
43 ///createClientSocket with non-existent file in read mode
44 1 void testCreateSocketWithNoFile(){
45
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PMockBackend backend;
46
1/1
✓ Branch 0 (3→4) taken 1 times.
1 PMockBackend::Socket socket;
47
1/1
✓ Branch 0 (4→5) taken 1 times.
1 socket.setIsMockRecord(false); // Read mode
48
2/2
✓ Branch 0 (7→8) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
2 socket.setMockPrefix("non_existent_");
49
50 // This test should succes because function always return true
51
8/11
✓ Branch 0 (13→14) taken 1 times.
✓ Branch 2 (16→17) taken 1 times.
✓ Branch 4 (19→20) taken 1 times.
✓ Branch 6 (20→21) taken 1 times.
✓ Branch 8 (23→24) taken 1 times.
✓ Branch 10 (24→25) taken 1 times.
✓ Branch 12 (25→26) taken 1 times.
✗ Branch 14 (27→28) not taken.
✓ Branch 15 (27→29) taken 1 times.
✗ Branch 16 (46→47) not taken.
✗ Branch 17 (46→48) not taken.
7 data_stream_assert(backend.createClientSocket(socket, PSocketParam{"localhost", 3333}, PMockBackend::client()));
52 1 }
53
54 ///Send a message in record mode
55 1 void testSendMessageMockRecord(){
56 // Send a message in record mode
57
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PMockBackend::Socket mismatchSocket;
58
1/1
✓ Branch 0 (3→4) taken 1 times.
1 mismatchSocket.setIsMockRecord(true); // Create data first
59
2/2
✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
1 mismatchSocket.setMockPrefix("mismatch_");
60 1 PMockBackend::Message originalMsg;
61
1/1
✓ Branch 0 (11→12) taken 1 times.
1 originalMsg.push_back(1lu);
62
1/1
✓ Branch 0 (12→13) taken 1 times.
1 originalMsg.push_back(2lu);
63
5/5
✓ Branch 0 (15→16) taken 1 times.
✓ Branch 2 (18→19) taken 1 times.
✓ Branch 4 (21→22) taken 1 times.
✓ Branch 6 (22→23) taken 1 times.
✓ Branch 8 (23→24) taken 1 times.
5 data_stream_assert(mismatchSocket.sendMsg(originalMsg, PSendFlag::BLOCK) == PSendStatus::OK);
64
1/1
✓ Branch 0 (30→31) taken 1 times.
1 mismatchSocket.close();
65 1 }
66
67 1 int main(int argc, char **argv){
68 1 testEmptyBackend();
69 1 testMockBackendSendMessageMismatch();
70 1 testMockBackendMessageMismatch();
71 1 testCreateSocketWithNoFile();
72 1 testSendMessageMockRecord();
73 1 return 0;
74 }
75