| 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 |