Directory: | ./ |
---|---|
File: | TESTS/TEST_PLOG/main.cpp |
Date: | 2024-11-14 16:05:39 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 124 | 124 | 100.0% |
Branches: | 279 | 279 | 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 <time.h> | ||
9 | #include <iostream> | ||
10 | #include "phoenix_assert.h" | ||
11 | #include "PLog.h" | ||
12 | |||
13 | ///Test the conversion of log level into string | ||
14 | 1 | void testLogLevelToString(){ | |
15 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 17 taken 1 times.
|
1 | phoenix_assert(phoenix_logLevelToStr(PLog::DEBUG) == "DEBUG"); |
16 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 17 taken 1 times.
|
1 | phoenix_assert(phoenix_logLevelToStr(PLog::INFO) == "INFO"); |
17 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 17 taken 1 times.
|
1 | phoenix_assert(phoenix_logLevelToStr(PLog::WARNING) == "WARNING"); |
18 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 17 taken 1 times.
|
1 | phoenix_assert(phoenix_logLevelToStr(PLog::ERROR) == "ERROR"); |
19 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 17 taken 1 times.
|
1 | phoenix_assert(phoenix_logLevelToStr(PLog::CRITICAL) == "CRITICAL"); |
20 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 17 taken 1 times.
|
1 | phoenix_assert(phoenix_logLevelToStr(PLog::ALWAYS) == "ALWAYS"); |
21 | 1 | } | |
22 | |||
23 | ///Test the conversion of string into log level | ||
24 | 1 | void testStringToLogLevel(){ | |
25 |
6/6✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 14 taken 1 times.
✓ Branch 17 taken 1 times.
✓ Branch 20 taken 1 times.
|
1 | phoenix_assert(phoenix_strToLogLevel("DEBUG") == PLog::DEBUG); |
26 |
6/6✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 14 taken 1 times.
✓ Branch 17 taken 1 times.
✓ Branch 20 taken 1 times.
|
1 | phoenix_assert(phoenix_strToLogLevel("INFO") == PLog::INFO); |
27 |
6/6✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 14 taken 1 times.
✓ Branch 17 taken 1 times.
✓ Branch 20 taken 1 times.
|
1 | phoenix_assert(phoenix_strToLogLevel("WARNING") == PLog::WARNING); |
28 |
6/6✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 14 taken 1 times.
✓ Branch 17 taken 1 times.
✓ Branch 20 taken 1 times.
|
1 | phoenix_assert(phoenix_strToLogLevel("ERROR") == PLog::ERROR); |
29 |
6/6✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 14 taken 1 times.
✓ Branch 17 taken 1 times.
✓ Branch 20 taken 1 times.
|
1 | phoenix_assert(phoenix_strToLogLevel("CRITICAL") == PLog::CRITICAL); |
30 |
6/6✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 14 taken 1 times.
✓ Branch 17 taken 1 times.
✓ Branch 20 taken 1 times.
|
1 | phoenix_assert(phoenix_strToLogLevel("ALWAYS") == PLog::ALWAYS); |
31 | 1 | } | |
32 | |||
33 | ///Test the PLog | ||
34 | 1 | void testStringPLog(){ | |
35 |
1/1✓ Branch 1 taken 1 times.
|
1 | PLog log; |
36 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
|
1 | log.setFileName("logFile.log"); |
37 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.setThreadIndex(2lu); |
38 |
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(log.open()); |
39 |
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(log.getThreadIndex() == 2lu); |
40 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 17 taken 1 times.
|
1 | phoenix_assert(log.getFileName() == "logFile.log"); |
41 | |||
42 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Some log entry" << std::endl; |
43 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Some other log entry" << std::endl; |
44 | 1 | } | |
45 | |||
46 | ///Test the PLog | ||
47 | 1 | void testStringPLogLevel(){ | |
48 |
1/1✓ Branch 1 taken 1 times.
|
1 | PLog log; |
49 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
|
1 | log.setFileName("logLevelFile.log"); |
50 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.setLogLevel(PLog::INFO); |
51 |
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(log.open()); |
52 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 17 taken 1 times.
|
1 | phoenix_assert(log.getFileName() == "logLevelFile.log"); |
53 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog(PLog::DEBUG) << "Some debug log entry" << std::endl; |
54 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogDebug() << "Some other debug log entry" << std::endl; |
55 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog(PLog::INFO) << "Some info log entry" << std::endl; |
56 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Some other info log entry" << std::endl; |
57 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogInfo() << "Some other info log entry (again)" << std::endl; |
58 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog(PLog::WARNING) << "Some warning log entry" << std::endl; |
59 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogWarning() << "Some other warning log entry" << std::endl; |
60 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog(PLog::ERROR) << "Some error log entry" << std::endl; |
61 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogError() << "Some other error log entry" << std::endl; |
62 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog(PLog::CRITICAL) << "Some critical log entry" << std::endl; |
63 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogCritical() << "Some other critical log entry" << std::endl; |
64 | 1 | } | |
65 | |||
66 | ///Test the PLog | ||
67 | 1 | void testStringMultiPLog(){ | |
68 |
1/1✓ Branch 1 taken 1 times.
|
1 | PLog log; |
69 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
|
1 | log.setFileName("logMultiFile.log"); //Always set the file name first |
70 | 1 | size_t nbThread(4lu); | |
71 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.resize(nbThread); //Then, set the number of threads |
72 |
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(log.open()); //Then, open all log file |
73 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Log of all threads" << std::endl; |
74 |
2/2✓ Branch 0 taken 4 times.
✓ Branch 1 taken 1 times.
|
5 | for(size_t i(0lu); i < nbThread; ++i){ |
75 |
1/1✓ Branch 1 taken 4 times.
|
4 | PLog & subLog = log.getLog(i); |
76 |
5/5✓ Branch 1 taken 4 times.
✓ Branch 4 taken 4 times.
✓ Branch 7 taken 4 times.
✓ Branch 10 taken 4 times.
✓ Branch 13 taken 4 times.
|
4 | subLog.getLog() << " i = "<<i<<", Some log entry" << std::endl; |
77 |
5/5✓ Branch 1 taken 4 times.
✓ Branch 4 taken 4 times.
✓ Branch 7 taken 4 times.
✓ Branch 10 taken 4 times.
✓ Branch 13 taken 4 times.
|
4 | subLog.getLog() << " i = "<<i<<", Some other log entry" << std::endl; |
78 | } | ||
79 | 1 | } | |
80 | |||
81 | ///Test if the std::cout redirection is working | ||
82 | 1 | void testLogCoutDedirectInFile(){ | |
83 |
1/1✓ Branch 1 taken 1 times.
|
1 | PLog log; |
84 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
|
1 | log.setFileName("logFileRedirectCoutCerr.log"); |
85 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.setMode(PLog::FILE_CAPTURE_STDOUT_STDERR); |
86 |
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(log.open()); |
87 | |||
88 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | std::cout << "Some redirected std::cout stuff" << std::endl; |
89 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | std::cerr << "Some redirected std::cerr stuff" << std::endl; |
90 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Some classic log" << std::endl; |
91 | |||
92 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.close(); //Stops the redirection |
93 | 1 | } | |
94 | |||
95 | ///Test if the std::cout redirection is working | ||
96 | 1 | void testLogStdoutOnly(){ | |
97 |
1/1✓ Branch 1 taken 1 times.
|
1 | PLog log; |
98 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
|
1 | log.setFileName("logFileStdOutOnly.log"); |
99 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.setMode(PLog::STDOUT_ONLY); |
100 |
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(log.open()); |
101 | |||
102 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Some log message" << std::endl; |
103 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Some classic log" << std::endl; |
104 | |||
105 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.close(); //Stops the redirection |
106 | 1 | } | |
107 | |||
108 | ///Test if the std::cout redirection is working | ||
109 | 1 | void testLogDisable(){ | |
110 |
1/1✓ Branch 1 taken 1 times.
|
1 | PLog log; |
111 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
|
1 | log.setFileName("logFileDisable.log"); |
112 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.setMode(PLog::DISABLE); |
113 |
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(log.open()); |
114 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Some log message" << std::endl; |
115 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLog() << "Some classic log" << std::endl; |
116 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.close(); //Stops the redirection |
117 | 1 | } | |
118 | |||
119 | ///Test if the STRING_ONLY log mode works | ||
120 | 1 | void testStringLogAppend(){ | |
121 |
1/1✓ Branch 1 taken 1 times.
|
1 | PLog log; |
122 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
|
1 | log.setFileName("logFileStringAppend.log"); |
123 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.setMode(PLog::FILE_ONLY); |
124 |
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(log.open()); |
125 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogInfo() << "Let's test log append" << std::endl; |
126 | |||
127 |
1/1✓ Branch 1 taken 1 times.
|
1 | PLog logStr; |
128 |
1/1✓ Branch 1 taken 1 times.
|
1 | logStr.setThreadIndex(1lu); |
129 |
1/1✓ Branch 1 taken 1 times.
|
1 | logStr.setLogLevel(PLog::DEBUG); |
130 |
1/1✓ Branch 1 taken 1 times.
|
1 | logStr.setMode(PLog::STRING_ONLY); |
131 |
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(logStr.open()); |
132 | |||
133 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLog(PLog::DEBUG) << "Some debug log entry" << std::endl; |
134 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLogDebug() << "Some other debug log entry" << std::endl; |
135 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLog(PLog::INFO) << "Some info log entry" << std::endl; |
136 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLog() << "Some other info log entry" << std::endl; |
137 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLogInfo() << "Some other info log entry (again)" << std::endl; |
138 | |||
139 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogInfo() << "Some log info at the same time (should be before log append)" << std::endl; |
140 | |||
141 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLog(PLog::WARNING) << "Some warning log entry" << std::endl; |
142 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLogWarning() << "Some other warning log entry" << std::endl; |
143 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLog(PLog::ERROR) << "Some error log entry" << std::endl; |
144 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLogError() << "Some other error log entry" << std::endl; |
145 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLog(PLog::CRITICAL) << "Some critical log entry" << std::endl; |
146 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | logStr.getLogCritical() << "Some other critical log entry" << std::endl; |
147 | |||
148 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogInfo() << "Just before log append" << std::endl; |
149 | // logStr.close(); | ||
150 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | log.appendLog(logStr.getLogString()); |
151 |
1/1✓ Branch 1 taken 1 times.
|
1 | logStr.close(); |
152 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | log.getLogInfo() << "Just after log append" << std::endl; |
153 | |||
154 |
1/1✓ Branch 1 taken 1 times.
|
1 | log.close(); |
155 | 1 | } | |
156 | |||
157 | 1 | int main(int argc, char** argv){ | |
158 | 1 | testLogLevelToString(); | |
159 | 1 | testStringToLogLevel(); | |
160 | 1 | testStringPLog(); | |
161 | 1 | testStringPLogLevel(); | |
162 | 1 | testStringMultiPLog(); | |
163 | 1 | testLogCoutDedirectInFile(); | |
164 | 1 | testLogStdoutOnly(); | |
165 | 1 | testLogDisable(); | |
166 | 1 | testStringLogAppend(); | |
167 | 1 | return 0; | |
168 | } | ||
169 | |||
170 | |||
171 |