GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_DAEMON_SEND_DATA/main.cpp
Date: 2025-03-14 12:18:05
Exec Total Coverage
Lines: 48 48 100.0%
Branches: 59 59 100.0%

Line Branch Exec Source
1
2 /***************************************
3 Auteur : Pierre Aubert
4 Mail : pierre.aubert@lapp.in2p3.fr
5 Licence : CeCILL-C
6 ****************************************/
7
8 #include <iostream>
9
10 #include "DaemonEmptyBackend.h"
11 #include "SendDataDaemon.h"
12
13 ///Create the mock of the time
14 /** @param mockName : name of the mock file of the current test
15 */
16 1 void createMockTime(const PString & mockName){
17 //Let's write the mock of the time
18
19 1 VecTime vecTime;
20 //Let's write all the different time needed by the test
21
1/1
✓ Branch 1 taken 1 times.
1 vecTime.push_back(0lu); //Call of the clock
22
1/1
✓ Branch 1 taken 1 times.
1 vecTime.push_back(1lu); //Call of the clock
23
1/1
✓ Branch 1 taken 1 times.
1 vecTime.push_back(2lu); //Call of the clock
24
1/1
✓ Branch 1 taken 1 times.
1 vecTime.push_back(3lu); //Call of the clock
25
26
1/1
✓ Branch 1 taken 1 times.
1 phoenix_saveClockMock(vecTime);
27 1 }
28
29 ///Create the mock file fo the test Daemon
30 /** @param mockName : name of the mock file of the current test
31 */
32 1 void createMockFileTest(const PString & mockName){
33 1 PVecMockMessage vecOutput;
34 //Let's say, the main Daemon wants to call a function on test
35
1/1
✓ Branch 1 taken 1 times.
1 Message message;
36
1/1
✓ Branch 1 taken 1 times.
1 message.setId(1lu); //Anwser of the INT message
37
1/1
✓ Branch 1 taken 1 times.
1 message.setSendTime(0lu);
38
1/1
✓ Branch 1 taken 1 times.
1 message.setType(MessageType::RESULT_DATA);
39
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 message.setSender("main");
40 1 int data(42);
41
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 message.setData(phoenix_createData(data));
42
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 message.getVecRecver().push_back("test");
43
5/5
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 phoenix_assert(phoenix_addMockMessage(vecOutput, message));
44
45
5/5
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 phoenix_assert(phoenix_closeMockSocket(vecOutput, mockName));
46 1 }
47
48 ///Create the mock file to be used by the Daemon
49 /** @param mockName : name of the mock file of the current test
50 */
51 1 void createMockFileMain(const PString & mockName){
52 1 PVecMockMessage vecOutput;
53
54 1 DataStreamMsg emptyMsg;
55
1/1
✓ Branch 1 taken 1 times.
1 vecOutput.push_back(emptyMsg);
56
57 //Finally we stop the Daemon
58
1/1
✓ Branch 1 taken 1 times.
1 Message messageStop;
59
1/1
✓ Branch 1 taken 1 times.
1 messageStop.setId(1lu);
60
1/1
✓ Branch 1 taken 1 times.
1 messageStop.setType(MessageType::STOP);
61
5/5
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 phoenix_assert(phoenix_addMockMessage(vecOutput, messageStop));
62
5/5
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 phoenix_assert(phoenix_closeMockSocket(vecOutput, mockName));
63 1 }
64
65 ///Create and run the Daemon
66 /** @param fileName : name of the configuration toml file
67 * @param daemonName : name of the daemon of the current test
68 */
69 1 void createDaemon(const PPath & fileName, const PString & daemonName){
70 //Let's create and start the Daemon
71
1/1
✓ Branch 1 taken 1 times.
1 SendDataDaemon daemon;
72
1/1
✓ Branch 1 taken 1 times.
1 daemon.setSocketMode(PSocketMode::MOCK);
73
1/1
✓ Branch 1 taken 1 times.
1 daemon.setClockMode(PClockMode::MOCK);
74
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
1 daemon.getLog().setFileName(PPath("Daemon.log"));
75
1/1
✓ Branch 1 taken 1 times.
1 daemon.load(fileName, daemonName);
76
5/5
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 phoenix_assert(daemon.run());
77 1 }
78
79 ///Test the load configuration of a Daemon
80 /** @param fileName : name of the configuration toml file
81 */
82 1 void testBaseDaemonLoadConfig(const PPath & fileName){
83 //Let's create the mock file
84
1/1
✓ Branch 2 taken 1 times.
1 createMockTime("clock.pmockclock"); // need to check this
85
1/1
✓ Branch 2 taken 1 times.
1 createMockFileMain("localhost_3390.pmockbackend");
86 //No need to check the output of the messages sent by the Daemon, because the PMockBackend already does it for us
87
1/1
✓ Branch 2 taken 1 times.
1 createMockFileTest("localhost_3391.pmockbackend");
88 //Let's create and start the Daemon
89
1/1
✓ Branch 2 taken 1 times.
1 createDaemon(fileName, "main");
90 1 }
91
92 1 int main(int argc, char** argv){
93
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 testBaseDaemonLoadConfig(PPath(DAEMON_CONFIG_OK));
94 1 return 0;
95 }
96
97
98