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 |