GCC Code Coverage Report


Directory: ./
File: TESTS/SWARM_MOCK_DAEMONS/RecvDataDaemon.cpp
Date: 2026-01-15 15:35:36
Exec Total Coverage
Lines: 45 46 97.8%
Functions: 13 16 81.2%
Branches: 33 38 86.8%

Line Branch Exec Source
1 /***************************************
2 Auteur : Thibaut Oprinsen
3 Mail : thibaut.oprinsen@lapp.in2p3.fr
4 Licence : CeCILL-C
5 ****************************************/
6
7 #include "RecvDataDaemon.h"
8
9 ///Constructor of Shadok class
10 1 Shadok::Shadok(const PString & name, int age)
11 1 :p_name(name), p_age(age)
12 {
13 1 }
14
15 ///Destructor of Shadok class
16 2 Shadok::~Shadok()
17 {
18 2 }
19
20 ///Constructor of Gibis class
21 1 Gibis::Gibis(const PString & color, int weight)
22 1 :p_color(color), p_weight(weight)
23 {
24 1 }
25
26 ///Destructor of Gibis class
27 2 Gibis::~Gibis()
28 {
29 2 }
30
31 ///Constructor of RecvDataDaemon class
32 1 RecvDataDaemon::RecvDataDaemon(){
33
1/1
✓ Branch 0 (4→5) taken 1 times.
1 initialisationRecvDataDaemon();
34 1 }
35
36 ///Destructor of RecvDataDaemon class
37 1 RecvDataDaemon::~RecvDataDaemon()
38 {
39 1 }
40
41 /// Typestream specialization for Shadok
42 template<>
43 3 std::string phoenix_getTypeName<Shadok>(){
44
1/1
✓ Branch 0 (4→5) taken 3 times.
6 return "Shadok";
45 }
46
47 /// Typestream specialization for Gibis
48 template<>
49 3 std::string phoenix_getTypeName<Gibis>(){
50
1/1
✓ Branch 0 (4→5) taken 3 times.
6 return "Gibis";
51 }
52
53 ///Initialization of boolean values for testing
54 1 void RecvDataDaemon::initialisationRecvDataDaemon(){
55 1 p_receivedMessageType = ExpectedMessageType::NONE;
56 1 p_counter = 0;
57
1/1
✓ Branch 0 (2→3) taken 1 times.
1 p_expectedMessageTypes.push_back(ExpectedMessageType::TYPE_SHADOK);
58
1/1
✓ Branch 0 (3→4) taken 1 times.
1 p_expectedMessageTypes.push_back(ExpectedMessageType::TYPE_GIBIS);
59
1/1
✓ Branch 0 (4→5) taken 1 times.
1 p_expectedMessageTypes.push_back(ExpectedMessageType::TYPE_STOP);
60 1 }
61
62 ///Extra processing of the Daemon
63 3 void RecvDataDaemon::extraLoopProcessing() {
64 //For the Shadok and Gibis type, the expected message type is set in the callable functions
65
2/2
✓ Branch 0 (2→3) taken 2 times.
✓ Branch 1 (2→26) taken 1 times.
3 if(p_counter < 2){
66
7/7
✓ Branch 0 (5→6) taken 2 times.
✓ Branch 2 (8→9) taken 2 times.
✓ Branch 4 (11→12) taken 2 times.
✓ Branch 6 (13→14) taken 2 times.
✓ Branch 8 (14→15) taken 2 times.
✓ Branch 10 (15→16) taken 2 times.
✓ Branch 12 (16→17) taken 2 times.
10 phoenix_assert(phoenix_check("extraLoopProcessing : counter = " + PString::toString(p_counter), p_receivedMessageType, p_expectedMessageTypes[p_counter]));
67 2 p_counter++;
68 }
69 //Then, we should receive a STOP message and check that p_isRun is false
70
1/2
✓ Branch 0 (26→27) taken 1 times.
✗ Branch 1 (26→49) not taken.
1 else if(p_counter == 2){
71
7/7
✓ Branch 0 (29→30) taken 1 times.
✓ Branch 2 (32→33) taken 1 times.
✓ Branch 4 (35→36) taken 1 times.
✓ Branch 6 (36→37) taken 1 times.
✓ Branch 8 (37→38) taken 1 times.
✓ Branch 10 (38→39) taken 1 times.
✓ Branch 12 (39→40) taken 1 times.
6 phoenix_assert(phoenix_check("extraLoopProcessing : counter = " + PString::toString(p_counter), p_isRun, false));
72 }
73 //We should never be here
74 else{
75 phoenix_assert(false);
76 }
77 3 }
78
79 ///Process a received Shadok
80 /** @param shadok : Shadok to be processed
81 * @return true on success, false otherwise
82 */
83 1 PUncastableBool RecvDataDaemon::processShadok(const Shadok & shadok){
84 1 p_receivedMessageType = ExpectedMessageType::TYPE_SHADOK;
85
5/5
✓ Branch 0 (4→5) taken 1 times.
✓ Branch 2 (5→6) taken 1 times.
✓ Branch 4 (6→7) taken 1 times.
✓ Branch 6 (8→9) taken 1 times.
✓ Branch 8 (9→10) taken 1 times.
1 p_log.getLogInfo() << "RecvDataDaemon::processShadok : Received Shadok with name " << shadok.getName() << " and age " << shadok.getAge() << std::endl;
86 1 return UNCASTABLE_TRUE;
87 }
88
89 ///Process a received Gibis
90 /** @param gibis : Gibis to be processed
91 * @return true on success, false otherwise
92 */
93 1 PUncastableBool RecvDataDaemon::processGibis(const Gibis & gibis){
94 1 p_receivedMessageType = ExpectedMessageType::TYPE_GIBIS;
95
5/5
✓ Branch 0 (4→5) taken 1 times.
✓ Branch 2 (5→6) taken 1 times.
✓ Branch 4 (6→7) taken 1 times.
✓ Branch 6 (8→9) taken 1 times.
✓ Branch 8 (9→10) taken 1 times.
1 p_log.getLogInfo() << "RecvDataDaemon::processGibis : Received Gibis with color " << gibis.getColor() << " and weight " << gibis.getWeight() << std::endl;
96 1 return UNCASTABLE_TRUE;
97 }
98
99 ///Add callable methods to the Daemon
100 1 void RecvDataDaemon::addCallMethod(){
101 1 addDataCallableMethod(SWARM_SLOT(processShadok), *this, 10lu, 0.0, 1e6);
102 1 addDataCallableMethod(SWARM_SLOT(processGibis), *this, 10lu, 0.0, 1e6);
103 1 }
104
105