Skip to content

Commit 0901d24

Browse files
authored
[OMON-445] Make actual checks in process monitor tests (#244)
1 parent 779be58 commit 0901d24

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

test/testProcessMonitor.cxx

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,43 @@ namespace monitoring
2222
namespace Test
2323
{
2424

25-
BOOST_AUTO_TEST_CASE(createProcessMonitor)
25+
std::stringstream coutRedirect;
26+
std::streambuf* coutBuffer;
27+
28+
void enableRedirect()
29+
{
30+
coutBuffer = std::cout.rdbuf(coutRedirect.rdbuf());
31+
}
32+
33+
void disableRedirect()
2634
{
27-
o2::monitoring::ProcessMonitor processMonitor;
28-
processMonitor.getPerformanceMetrics();
35+
coutRedirect.str(std::string());
36+
std::cout.rdbuf(coutBuffer);
2937
}
3038

39+
3140
BOOST_AUTO_TEST_CASE(monitorProcess)
3241
{
33-
auto monitoring = o2::monitoring::MonitoringFactory::Get("stdout://");
34-
monitoring->enableProcessMonitoring(1);
35-
std::this_thread::sleep_for(std::chrono::milliseconds(2100));
42+
std::array<std::string, 14> names = {"memoryUsagePercentage", "virtualMemorySize", "residentSetSize",
43+
"cpuUsedPercentage", "involuntaryContextSwitches", "voluntaryContextSwitches", "cpuUsedAbsolute",
44+
"averageResidentSetSize", "averageVirtualMemorySize", "averageCpuUsedPercentage",
45+
"cpuTimeConsumedByProcess", "proportionalSetSize", "memoryPrivateClean", "memoryPrivateDirty"};
46+
{
47+
auto monitoring = o2::monitoring::MonitoringFactory::Get("influxdb-stdout://");
48+
monitoring->enableProcessMonitoring(1);
49+
enableRedirect();
50+
std::this_thread::sleep_for(std::chrono::milliseconds(200));
51+
}
52+
53+
std::istringstream returned(coutRedirect.str());
54+
disableRedirect();
55+
unsigned short int countMetrics = 0;
56+
for (std::string line; std::getline(returned, line); ) {
57+
BOOST_CHECK(std::find(names.begin(), names.end(), line.substr(0, line.find(','))) != names.end());
58+
countMetrics++;
59+
}
60+
// On linux 14 and macOS 6
61+
BOOST_CHECK(countMetrics == 14 || countMetrics == 6);
3662
}
3763

3864
BOOST_AUTO_TEST_CASE(monitorProcessMetricName)

0 commit comments

Comments
 (0)