15 #include "../../../tests/catch2/catch.hpp"
18 #include "../sysMonitor.hpp"
20 SCENARIO(
"System monitor is constructed and CPU temperature results are passed in",
"[sysMonitor]" )
22 GIVEN(
"A default constructed system monitor object and an empty vector for temperatures")
30 WHEN(
"Correct line is given")
37 WHEN(
"Correct line is given")
44 WHEN(
"Correct line is given")
51 WHEN(
"Blank line is given")
58 WHEN(
"Incorrect line is given")
65 WHEN(
"Corrupted line is given")
72 WHEN(
"Corrupted line is given")
81 SCENARIO(
"System monitor is constructed and CPU load results are passed in",
"[sysMonitor]" )
83 GIVEN(
"A default constructed system monitor object and an empty vector for loads")
91 WHEN(
"Correct line is given")
93 rv = sm.
parseCPULoads(
"02:35:43 PM 0 6.57 0.02 1.32 0.24 0.00 0.00 0.00 0.00 0.00 91.85", loads);
95 REQUIRE((loads - 0.0815) < 0.0005);
98 WHEN(
"Correct line is given")
100 rv = sm.
parseCPULoads(
"10:32:28 AM 1 6.54 0.21 2.75 24.64 0.00 0.06 0.00 0.00 0.00 65.81", loads);
102 REQUIRE((loads - 0.3419) < 0.0005);
105 WHEN(
"Correct line is given")
107 rv = sm.
parseCPULoads(
"10:32:28 AM 3 4.24 0.03 1.97 5.52 0.00 0.00 0.00 0.00 0.00 88.24", loads);
109 REQUIRE((loads - 0.1176) < 0.0005);
112 WHEN(
"Blank line is given")
119 WHEN(
"Incorrect line is given")
121 rv = sm.
parseCPULoads(
"02:35:43 PM CPU %%usr %%nice %%sys %%iowait %%irq %%soft %%steal %%guest %%gnice %%idle", loads);
126 WHEN(
"Corrupted line is given")
128 rv = sm.
parseCPULoads(
"10:32:28AM 2 5.24 0.14 2.70_1.41 0.00 0.00 0.00 0.00 0.00 80.50 ncawd vexing", loads);
135 SCENARIO(
"System monitor is constructed and disk temperature result is passed in",
"[sysMonitor]" )
137 GIVEN(
"A default constructed system monitor object and an empty float for temperature")
146 WHEN(
"Correct line is given for hard drive")
154 WHEN(
"Correct line is given for ssd")
162 WHEN(
"Correct line is given for ssd")
170 WHEN(
"Blank line is given")
178 WHEN(
"Incorrect line is given")
186 WHEN(
"Corrupted line is given")
196 SCENARIO(
"System monitor is constructed and disk usage result is passed in",
"[sysMonitor]" )
198 GIVEN(
"A default constructed system monitor object and an empty float for usage")
202 float rootUsage = -1;
203 float dataUsage = -1;
204 float bootUsage = -1;
208 WHEN(
"Correct line is given for root")
210 rv = sm.
parseDiskUsage(
"/dev/mapper/cl-root 52403200 12321848 40081352 24% /", rootUsage, dataUsage, bootUsage);
212 REQUIRE((rootUsage - 0.24f) < 0.0005);
215 WHEN(
"Correct line for /data is given")
217 rv = sm.
parseDiskUsage(
"/dev/md124 1952297568 81552 1952216016 1% /data", rootUsage, dataUsage, bootUsage);
219 REQUIRE((dataUsage - 0.01f) < 0.0005);
222 WHEN(
"Correct line for /boot is given")
224 rv = sm.
parseDiskUsage(
"/dev/md126 484004 289264 194740 60% /boot", rootUsage, dataUsage, bootUsage);
226 REQUIRE((bootUsage - 0.6f) < 0.0005);
229 WHEN(
"Blank line is given")
238 WHEN(
"Incorrect line is given")
240 rv = sm.
parseDiskUsage(
"/dev/mapper/cl-root2403200 12321848 40081352 24% / 23e32 dwwe", rootUsage, dataUsage, bootUsage);
247 WHEN(
"Corrupted line is given")
249 rv = sm.
parseDiskUsage(
"/dev/mapper/cl-root 52403200 12321848 40081352 aa% /", rootUsage, dataUsage, bootUsage);
258 SCENARIO(
"System monitor is constructed and ram usage result is passed in",
"[sysMonitor]" )
260 GIVEN(
"A default constructed system monitor object and an float for usage")
268 WHEN(
"Correct line is given")
270 rv = sm.
parseRamUsage(
"Mem: 7714 1308 4550 288 1855 5807", ramUsage);
272 REQUIRE(ramUsage == (
float) 1308/7714);
275 WHEN(
"Correct line is given")
277 rv = sm.
parseRamUsage(
"Mem: 7777 7700 4550 288 1855 5807", ramUsage);
279 REQUIRE(ramUsage == (
float)7700/7777);
282 WHEN(
"Blank line is given")
289 WHEN(
"Incorrect line is given")
297 WHEN(
"Corrupted line is given")
299 rv = sm.
parseRamUsage(
"Mem: 1308 7714 4550 288 1855 5807", ramUsage);
int parseCPULoads(std::string, float &)
Parses string from system call to find CPU usage loads.
int parseDiskTemperature(std::string &driveName, float &temp, const std::string &line)
Parses string from system call to find drive temperatures.
int parseCPUTemperatures(std::string, float &)
Parses string from system call to find CPU temperatures.
int parseDiskUsage(std::string, float &, float &, float &)
Parses string from system call to find drive usage space.
int parseRamUsage(std::string, float &)
Parses string from system call to find RAM usage.
SCENARIO("System monitor is constructed and CPU temperature results are passed in", "[sysMonitor]")