mirror of https://github.com/Icinga/icinga2.git
Merge pull request #8969 from Icinga/bugfix/perfdata-dont-get-parsed-correctly-8912
PluginUtility: Fix PerfData parsing for values separated with multiple spaces
This commit is contained in:
commit
0e25644151
|
@ -140,6 +140,7 @@ Array::Ptr PluginUtility::SplitPerfdata(const String& perfdata)
|
|||
break;
|
||||
|
||||
String label = perfdata.SubStr(begin, eqp - begin);
|
||||
boost::algorithm::trim_left(label);
|
||||
|
||||
if (label.GetLength() > 2 && label[0] == '\'' && label[label.GetLength() - 1] == '\'')
|
||||
label = label.SubStr(1, label.GetLength() - 2);
|
||||
|
|
|
@ -147,6 +147,7 @@ add_boost_test(base
|
|||
icinga_perfdata/simple
|
||||
icinga_perfdata/quotes
|
||||
icinga_perfdata/multiple
|
||||
icinga_perfdata/multiline
|
||||
icinga_perfdata/normalize
|
||||
icinga_perfdata/uom
|
||||
icinga_perfdata/warncritminmax
|
||||
|
|
|
@ -43,6 +43,21 @@ BOOST_AUTO_TEST_CASE(multiple)
|
|||
BOOST_CHECK(str == "testA=123456 testB=123456");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(multiline)
|
||||
{
|
||||
Array::Ptr pd = PluginUtility::SplitPerfdata(" 'testA'=123456 'testB'=123456");
|
||||
BOOST_CHECK(pd->GetLength() == 2);
|
||||
|
||||
String str = PluginUtility::FormatPerfdata(pd);
|
||||
BOOST_CHECK(str == "testA=123456 testB=123456");
|
||||
|
||||
pd = PluginUtility::SplitPerfdata(" 'testA'=123456 \n'testB'=123456");
|
||||
BOOST_CHECK(pd->GetLength() == 2);
|
||||
|
||||
str = PluginUtility::FormatPerfdata(pd);
|
||||
BOOST_CHECK(str == "testA=123456 testB=123456");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(normalize)
|
||||
{
|
||||
Array::Ptr pd = PluginUtility::SplitPerfdata("testA=2m;3;4;1;5 testB=2foobar");
|
||||
|
|
Loading…
Reference in New Issue