From 341d5515152c69bf6d721b9361df2df7318d7d05 Mon Sep 17 00:00:00 2001 From: Shamser Ahmed Date: Wed, 12 Jun 2024 15:04:13 +0100 Subject: [PATCH] HPCC-31774 Changes following review Signed-off-by: Shamser Ahmed --- dali/base/sysinfologger.cpp | 215 +++++++++++++++++++------------- dali/base/sysinfologger.hpp | 33 ++--- testing/unittests/dalitests.cpp | 13 +- testing/unittests/unittests.cpp | 2 +- 4 files changed, 154 insertions(+), 109 deletions(-) diff --git a/dali/base/sysinfologger.cpp b/dali/base/sysinfologger.cpp index 3e28326280c..66e8e9605e1 100644 --- a/dali/base/sysinfologger.cpp +++ b/dali/base/sysinfologger.cpp @@ -74,6 +74,22 @@ class CSysInfoLoggerMsg : implements ISysInfoLoggerMsg } public: + CSysInfoLoggerMsg() + { + msgPtree.setown(createPTree(MSG_NODE)); + } + CSysInfoLoggerMsg(unsigned id, const LogMsgCategory & cat, LogMsgCode code, const char * source, const char * msg, unsigned __int64 ts, bool hidden) + { + msgPtree.setown(createPTree(MSG_NODE)); + msgPtree->setPropInt64(ATTR_ID, id); + msgPtree->setPropBool(ATTR_HIDDEN, false); + msgPtree->setPropInt64(ATTR_TIMESTAMP, ts); + msgPtree->setPropInt(ATTR_CODE, code); + msgPtree->setProp(ATTR_AUDIENCE, LogMsgAudienceToFixString(cat.queryAudience())); + msgPtree->setProp(ATTR_CLASS, LogMsgClassToFixString(cat.queryClass())); + msgPtree->setProp(ATTR_SOURCE, source); + msgPtree->setProp(".", msg); + } CSysInfoLoggerMsg & set(IPropertyTree * ptree, IPropertyTree * _root, bool _updateable) { msgPtree.setown(ptree); @@ -123,32 +139,22 @@ class CSysInfoLoggerMsg : implements ISysInfoLoggerMsg const char *msg = msgPtree->queryProp(nullptr); return msg ? msg : ""; } - virtual void setHidden(bool _hidden) + void setHidden(bool _hidden) { ensureUpdateable(); msgPtree->setPropBool(ATTR_HIDDEN, _hidden); } - virtual void remove() + StringBuffer & getXpath(StringBuffer & xpath) { - ensureUpdateable(); unsigned year, month, day; extractDate(queryTimeStamp(), year, month, day); - VStringBuffer xpath("m%04u%02u/d%02u", year, month, day); - IPropertyTree * parent = root->queryPropTree(xpath.str()); - parent->removeTree(msgPtree); + unsigned __int64 id = msgPtree->getPropInt64(ATTR_ID, 0); + xpath.appendf("m%04u%02u/d%02u/" MSG_NODE "[" ATTR_ID "='%" I64F "u']", year, month, day, id); + return xpath; } - static IPropertyTree * createMsgPTree(unsigned id, const LogMsgCategory & cat, LogMsgCode code, const char * source, const char * msg, unsigned __int64 ts, bool hidden) + IPropertyTree * getTree() { - Owned msgPtree = createPTree(MSG_NODE); - msgPtree->setPropInt64(ATTR_ID, id); - msgPtree->setPropBool(ATTR_HIDDEN, false); - msgPtree->setPropInt64(ATTR_TIMESTAMP, ts); - msgPtree->setPropInt(ATTR_CODE, code); - msgPtree->setProp(ATTR_AUDIENCE, LogMsgAudienceToFixString(cat.queryAudience())); - msgPtree->setProp(ATTR_CLASS, LogMsgClassToFixString(cat.queryClass())); - msgPtree->setProp(ATTR_SOURCE, source); - msgPtree->setProp(".", msg); - return msgPtree.getClear(); + return msgPtree.getLink(); } }; @@ -177,7 +183,7 @@ class CSysInfoLoggerMsgFilter : public CInterfaceOf } CSysInfoLoggerMsgFilter(unsigned __int64 msgId) { - CSysInfoLoggerMsgFilter::setMatchMsgId(msgId); + setMatchMsgId(msgId); } CSysInfoLoggerMsgFilter(bool _visibleOnly, bool _hiddenOnly, unsigned _year, unsigned _month, unsigned _day) : visibleOnly(_visibleOnly), hiddenOnly(_hiddenOnly), @@ -190,7 +196,7 @@ class CSysInfoLoggerMsgFilter : public CInterfaceOf throw makeStringExceptionV(-1, "ISysInfoLoggerMsgFilter: month and year must be provided when filtering by day"); if (!_year && _month) throw makeStringExceptionV(-1, "ISysInfoLoggerMsgFilter: year must be provided when filtering by month"); - haveDateRange = matchEndYear||matchStartYear||matchStartMonth|matchEndMonth||matchStartDay||matchEndDay; + haveDateRange = false; } virtual void setHiddenOnly() override { @@ -247,6 +253,7 @@ class CSysInfoLoggerMsgFilter : public CInterfaceOf } virtual void setOlderThanDate(unsigned year, unsigned month, unsigned day) override { + assert(year); matchEndYear = year; matchEndMonth = month; matchEndDay = day; @@ -366,23 +373,22 @@ class CSysInfoLoggerMsgFilter : public CInterfaceOf { return matchClass; } - virtual unsigned __int64 queryMatchMsgId() const override - { - if (queryMatchYear() && queryMatchMonth() && queryMatchDay() && matchId) - { - return makeMessageId(queryMatchYear(), queryMatchMonth(), queryMatchDay(), matchId); - } - return 0; - } virtual StringBuffer & getQualifierXPathFilter(StringBuffer & xpath) const override { + bool fullDayMatch=false; if (queryMatchYear() && queryMatchMonth()) { xpath.appendf("m%04u%02u", queryMatchYear(), queryMatchMonth()); if (queryMatchDay()) + { xpath.appendf("/d%02u", queryMatchDay()); + fullDayMatch = true; + } } - xpath.appendf("//" MSG_NODE); + if (fullDayMatch) + xpath.appendf("/" MSG_NODE); + else + xpath.appendf("//" MSG_NODE); if (hiddenOnly) xpath.append("[" ATTR_HIDDEN "='1')]"); if (visibleOnly) @@ -415,7 +421,7 @@ ISysInfoLoggerMsgFilter * createSysInfoLoggerMsgFilter(unsigned __int64 msgId) class CSysInfoLoggerMsgIterator : public CInterfaceOf { - Linked filter; + Linked filter; Owned conn; bool updateable = false; Owned root; @@ -432,12 +438,13 @@ class CSysInfoLoggerMsgIterator : public CInterfaceOf if (filter->isInDateRange(ts)) return true; } + return false; } return msgIter->isValid(); } public: - CSysInfoLoggerMsgIterator(ISysInfoLoggerMsgFilter * _filter, bool _updateable=false) : filter(_filter), updateable(_updateable) + CSysInfoLoggerMsgIterator(IConstSysInfoLoggerMsgFilter * _filter, bool _updateable=false) : filter(_filter), updateable(_updateable) { } CSysInfoLoggerMsg & queryInfoLoggerMsg() @@ -482,7 +489,7 @@ ISysInfoLoggerMsgIterator * createSysInfoLoggerMsgIterator(bool visibleOnly, boo return new CSysInfoLoggerMsgIterator(filter.getClear(), false); } -ISysInfoLoggerMsgIterator * createSysInfoLoggerMsgIterator(ISysInfoLoggerMsgFilter * msgFilter) +ISysInfoLoggerMsgIterator * createSysInfoLoggerMsgIterator(IConstSysInfoLoggerMsgFilter * msgFilter) { return new CSysInfoLoggerMsgIterator(msgFilter, false); } @@ -499,34 +506,28 @@ unsigned __int64 logSysInfoError(const LogMsgCategory & cat, LogMsgCode code, co if (!conn) throw makeStringExceptionV(-1, "logSysInfoLogger: unable to create connection to '%s'", SYS_INFO_ROOT); + IPropertyTree * root = conn->queryRoot(); + unsigned id = root->getPropInt64(ATTR_LASTID, 1); + if (id==INT64_MAX) + id=0; + root->setPropInt64(ATTR_LASTID, id+1); + StringBuffer xpath; unsigned year, month, day; extractDate(ts, year, month, day); - xpath.appendf("m%04u%02u/d%02u[" ATTR_VERSION "='%s']", year, month, day, SYS_INFO_VERSION); - - unsigned id = 0; - IPropertyTree * dayPT = conn->queryRoot()->queryPropTree(xpath.str()); - if (dayPT) - { - id = dayPT->getPropInt(ATTR_LASTID, 0); - } - else - { - xpath.setf("m%04u%02u", year, month); - IPropertyTree * monthPT = conn->queryRoot()->queryPropTree(xpath.str()); - if (!monthPT) - monthPT = conn->queryRoot()->addPropTree(xpath.str()); - xpath.setf("d%02u", day); - dayPT = monthPT->addPropTree(xpath.str()); - dayPT->addProp(ATTR_VERSION, SYS_INFO_VERSION); - } - dayPT->setPropInt(ATTR_LASTID, ++id); - dayPT->addPropTree(MSG_NODE, CSysInfoLoggerMsg::createMsgPTree(id, cat, code, source, msg, ts, false)); - + xpath.appendf("%s/m%04u%02u/d%02u/%s", SYS_INFO_ROOT, year, month, day, MSG_NODE); + Owned connMsgRoot = querySDS().connect(xpath.str(), myProcessSession(), RTM_CREATE_ADD, SDS_LOCK_TIMEOUT); + if (!connMsgRoot) + throw makeStringExceptionV(-1, "logSysInfoLogger: unable to create connection to '%s'", xpath.str()); + IPropertyTree * msgPT = connMsgRoot->queryRoot(); + + CSysInfoLoggerMsg sysInfoMsg(id, cat, code, source, msg, ts, false); + msgPT->setPropTree(nullptr, sysInfoMsg.getTree()); + msgPT->setProp(".", msg); // previous setPropTree doesn't set the node value return makeMessageId(ts, id); } -unsigned updateMessage(ISysInfoLoggerMsgFilter * msgFilter, std::function updateOp) +unsigned updateMessage(IConstSysInfoLoggerMsgFilter * msgFilter, std::function updateOp) { unsigned count = 0; Owned iter = new CSysInfoLoggerMsgIterator(msgFilter, true); @@ -541,11 +542,11 @@ unsigned updateMessage(ISysInfoLoggerMsgFilter * msgFilter, std::function updateOp) { - Owned msgFilter = createSysInfoLoggerMsgFilter(msgId); + Owned msgFilter = createSysInfoLoggerMsgFilter(msgId); return updateMessage(msgFilter, updateOp); } -unsigned hideLogSysInfoMsg(ISysInfoLoggerMsgFilter * msgFilter) +unsigned hideLogSysInfoMsg(IConstSysInfoLoggerMsgFilter * msgFilter) { return updateMessage(msgFilter, [](CSysInfoLoggerMsg & sysInfoMsg){sysInfoMsg.setHidden(true);}); } @@ -555,7 +556,7 @@ bool hideLogSysInfoMsg(unsigned __int64 msgId) return updateMessage(msgId, [](CSysInfoLoggerMsg & sysInfoMsg){sysInfoMsg.setHidden(true);})==1; } -unsigned unhideLogSysInfoMsg(ISysInfoLoggerMsgFilter * msgFilter) +unsigned unhideLogSysInfoMsg(IConstSysInfoLoggerMsgFilter * msgFilter) { return updateMessage(msgFilter, [](CSysInfoLoggerMsg & sysInfoMsg){sysInfoMsg.setHidden(false);}); } @@ -565,18 +566,49 @@ bool unhideLogSysInfoMsg(unsigned __int64 msgId) return updateMessage(msgId, [](CSysInfoLoggerMsg & sysInfoMsg){sysInfoMsg.setHidden(false);})==1; } -unsigned deleteLogSysInfoMsg(ISysInfoLoggerMsgFilter * msgFilter) +unsigned deleteLogSysInfoMsg(IConstSysInfoLoggerMsgFilter * msgFilter) { - return updateMessage(msgFilter, [](CSysInfoLoggerMsg & sysInfoMsg){sysInfoMsg.remove();}); + std::vector deleteXpathList; + { + Owned iter = new CSysInfoLoggerMsgIterator(msgFilter, false); + ForEach(*iter) + { + CSysInfoLoggerMsg & sysInfoMsg = iter->queryInfoLoggerMsg(); + StringBuffer xpath; + sysInfoMsg.getXpath(xpath); + deleteXpathList.push_back(xpath.str()); + } + } + Owned conn = querySDS().connect(SYS_INFO_ROOT, myProcessSession(), RTM_LOCK_WRITE, SDS_LOCK_TIMEOUT); + if (!conn) + throw makeStringExceptionV(-1, "deleteLogSysInfoMsg: unable to create connection to '%s'", SYS_INFO_ROOT); + IPropertyTree * root = conn->queryRoot(); + unsigned count = 0; + for (auto xpath: deleteXpathList) + { + if (root->removeProp(xpath.c_str())); + ++count; + } + return count; } bool deleteLogSysInfoMsg(unsigned __int64 msgId) { - return updateMessage(msgId, [](CSysInfoLoggerMsg & sysInfoMsg){sysInfoMsg.remove();})==1; + Owned msgFilter = createSysInfoLoggerMsgFilter(); + msgFilter->setMatchMsgId(msgId); + return deleteLogSysInfoMsg(msgFilter); } unsigned deleteOlderThanLogSysInfoMsg(bool visibleOnly, bool hiddenOnly, unsigned year, unsigned month, unsigned day) { + if (!year && month) + throw makeStringExceptionV(-1, "deleteOlderThanLogSysInfoMsg: year must be provided if month is specified (year=%u, month=%u, day=%u)", year, month, day); + if (!month && day) + throw makeStringExceptionV(-1, "deleteOlderThanLogSysInfoMsg: month must be provided if day is specified (year=%u, month=%u, day=%u)", year, month, day); + if (month>12) + throw makeStringExceptionV(-1, "deleteOlderThanLogSysInfoMsg: invalid month(year=%u, month=%u, day=%u)", year, month, day); + if (day>31) + throw makeStringExceptionV(-1, "deleteOlderThanLogSysInfoMsg: invalid day(year=%u, month=%u, day=%u)", year, month, day); // With visibleOnly/hiddenOnly option, use createSysInfoLoggerMsgFilter() if (visibleOnly || hiddenOnly) { @@ -589,20 +621,20 @@ unsigned deleteOlderThanLogSysInfoMsg(bool visibleOnly, bool hiddenOnly, unsigne msgFilter->setOlderThanDate(year, month, day); return deleteLogSysInfoMsg(msgFilter); } + // With only date range, use this quicker method to remove whole subtrees - unsigned count = 0; Owned conn = querySDS().connect(SYS_INFO_ROOT, myProcessSession(), RTM_LOCK_WRITE, SDS_LOCK_TIMEOUT); if (!conn) return 0; - Owned monthIter = conn->queryRoot()->getElements("*"); + std::vector deleteXpathList; + IPropertyTree * root = conn->queryRoot(); + Owned monthIter = root->getElements("*"); ForEach(*monthIter) { IPropertyTree & monthPT = monthIter->query(); if (year==0) - { - conn->queryRoot()->removeTree(&monthPT); - } + deleteXpathList.push_back(monthPT.queryName()); else { unsigned msgYear = 0, msgMonth = 0; @@ -616,33 +648,44 @@ unsigned deleteOlderThanLogSysInfoMsg(bool visibleOnly, bool hiddenOnly, unsigne throw makeStringExceptionV(-1, "child of " SYS_INFO_ROOT " is invalid: %s", monthPT.queryName()); if (msgYear > year) continue; - if (msgYear == year && (msgMonth > month)) - continue; - if (msgMonth < month) - { - conn->queryRoot()->removeTree(&monthPT); - ++count; - } - else // msgMonth==month + if (msgYear < year) + deleteXpathList.push_back(monthPT.queryName()); + else { - Owned dayIter = monthPT.getElements("*"); - ForEach(*dayIter) + // msgYear matches year in this section + if (msgMonth > month) + continue; + else if (msgMonth < month) + deleteXpathList.push_back(monthPT.queryName()); + else // msgMonth==month { - IPropertyTree & dayPT = dayIter->query(); - unsigned msgDay = 0; - const char * d = dayPT.queryName(); - if (*d++ == 'd') - msgDay = readDigits(d, 2); - if (msgDay == 0) - throw makeStringExceptionV(-1, "child of " SYS_INFO_ROOT "/%s is invalid: %s", monthPT.queryName(), dayPT.queryName()); - if (day && (msgDay >= day)) - continue; - - monthPT.removeTree(&dayPT); - ++count; + Owned dayIter = monthPT.getElements("*"); + ForEach(*dayIter) + { + IPropertyTree & dayPT = dayIter->query(); + unsigned msgDay = 0; + const char * d = dayPT.queryName(); + if (*d++ == 'd') + msgDay = readDigits(d, 2); + if (msgDay == 0) + throw makeStringExceptionV(-1, "child of " SYS_INFO_ROOT "/%s is invalid: %s", monthPT.queryName(), dayPT.queryName()); + if (day && (msgDay >= day)) + continue; + + VStringBuffer xpath("%s/%s", monthPT.queryName(), dayPT.queryName()); + deleteXpathList.push_back(xpath.str()); + } } } } } + + unsigned count = 0; + for (auto xpath: deleteXpathList) + { + if (root->removeProp(xpath.c_str())); + ++count; + } + return count; } diff --git a/dali/base/sysinfologger.hpp b/dali/base/sysinfologger.hpp index 8e090c1d2a9..c8467bdd0f5 100644 --- a/dali/base/sysinfologger.hpp +++ b/dali/base/sysinfologger.hpp @@ -39,18 +39,8 @@ interface ISysInfoLoggerMsg virtual const char * queryMsg() const = 0; }; -interface ISysInfoLoggerMsgFilter : public IInterface +interface IConstSysInfoLoggerMsgFilter : public IInterface { - virtual void setHiddenOnly() = 0; - virtual void setVisibleOnly() = 0; - virtual void setMatchTimeStamp(unsigned __int64 ts) = 0; - virtual void setMatchSource(const char * source) = 0; - virtual void setMatchCode(LogMsgCode code) = 0; - virtual void setMatchAudience(LogMsgAudience audience) = 0; - virtual void setMatchMsgClass(LogMsgClass msgClass) = 0; - virtual void setMatchMsgId(unsigned __int64 msgId) = 0; - virtual void setDateRange(unsigned startYear, unsigned startMonth, unsigned startDay, unsigned endYear, unsigned endMonth, unsigned endDay) = 0; - virtual void setOlderThanDate(unsigned year, unsigned month, unsigned day) = 0; virtual bool hasDateRange() const = 0; virtual bool isInDateRange(unsigned __int64 ts) const = 0; virtual bool queryHiddenOnly() const = 0; @@ -69,10 +59,23 @@ interface ISysInfoLoggerMsgFilter : public IInterface virtual LogMsgCode queryMatchCode() const = 0; virtual LogMsgAudience queryMatchAudience() const = 0; virtual LogMsgClass queryMatchClass() const = 0; - virtual unsigned __int64 queryMatchMsgId() const = 0; virtual StringBuffer & getQualifierXPathFilter(StringBuffer & xpath) const = 0; }; +interface ISysInfoLoggerMsgFilter : extends IConstSysInfoLoggerMsgFilter +{ + virtual void setHiddenOnly() = 0; + virtual void setVisibleOnly() = 0; + virtual void setMatchTimeStamp(unsigned __int64 ts) = 0; + virtual void setMatchSource(const char * source) = 0; + virtual void setMatchCode(LogMsgCode code) = 0; + virtual void setMatchAudience(LogMsgAudience audience) = 0; + virtual void setMatchMsgClass(LogMsgClass msgClass) = 0; + virtual void setMatchMsgId(unsigned __int64 msgId) = 0; + virtual void setDateRange(unsigned startYear, unsigned startMonth, unsigned startDay, unsigned endYear, unsigned endMonth, unsigned endDay) = 0; + virtual void setOlderThanDate(unsigned year, unsigned month, unsigned day) = 0; +}; + typedef IIteratorOf ISysInfoLoggerMsgIterator; SYSINFO_API ISysInfoLoggerMsgFilter * createSysInfoLoggerMsgFilter(); @@ -81,11 +84,11 @@ SYSINFO_API ISysInfoLoggerMsgIterator * createSysInfoLoggerMsgIterator(bool _vis SYSINFO_API ISysInfoLoggerMsgIterator * createSysInfoLoggerMsgIterator(ISysInfoLoggerMsgFilter * msgFilter); SYSINFO_API unsigned __int64 logSysInfoError(const LogMsgCategory & cat, LogMsgCode code, const char *source, const char * msg, unsigned __int64 ts); -SYSINFO_API unsigned hideLogSysInfoMsg(ISysInfoLoggerMsgFilter * msgFilter); +SYSINFO_API unsigned hideLogSysInfoMsg(IConstSysInfoLoggerMsgFilter * msgFilter); SYSINFO_API bool hideLogSysInfoMsg(unsigned __int64 msgId); -SYSINFO_API unsigned unhideLogSysInfoMsg(ISysInfoLoggerMsgFilter * msgFilter); +SYSINFO_API unsigned unhideLogSysInfoMsg(IConstSysInfoLoggerMsgFilter * msgFilter); SYSINFO_API bool unhideLogSysInfoMsg(unsigned __int64 msgId); -SYSINFO_API unsigned deleteLogSysInfoMsg(ISysInfoLoggerMsgFilter * msgFilter); +SYSINFO_API unsigned deleteLogSysInfoMsg(IConstSysInfoLoggerMsgFilter * msgFilter); SYSINFO_API bool deleteLogSysInfoMsg(unsigned __int64 msgId); SYSINFO_API unsigned deleteOlderThanLogSysInfoMsg(bool visibleOnly, bool hiddenOnly, unsigned year, unsigned month, unsigned day); diff --git a/testing/unittests/dalitests.cpp b/testing/unittests/dalitests.cpp index 339d51d1f51..870b5998df3 100644 --- a/testing/unittests/dalitests.cpp +++ b/testing/unittests/dalitests.cpp @@ -3036,13 +3036,12 @@ CPPUNIT_TEST_SUITE_REGISTRATION( CFileNameNormalizeUnitTest ); CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( CFileNameNormalizeUnitTest, "CFileNameNormalizeUnitTest" ); #define SOURCE_COMPONENT "sysinfologger-unittest" -#define BOOL_STR(b) (b?"true":"false") -class CSysInfoLoggerTester : public CppUnit::TestFixture +class DaliSysInfoLoggerTester : public CppUnit::TestFixture { /* Note: global messages will be written for dates between 2000-02-04 and 2000-02-05 */ /* Note: All global messages with time stamp before 2000-03-31 will be deleted */ - CPPUNIT_TEST_SUITE(CSysInfoLoggerTester); + CPPUNIT_TEST_SUITE(DaliSysInfoLoggerTester); CPPUNIT_TEST(testInit); CPPUNIT_TEST(testSysInfoLogger); CPPUNIT_TEST_SUITE_END(); @@ -3166,7 +3165,7 @@ class CSysInfoLoggerTester : public CppUnit::TestFixture catch (IException *e) { StringBuffer msg; - msg.appendf("testRead(hidden=%s, visible=%s) failed: ", BOOL_STR(hiddenOnly), BOOL_STR(visibleOnly)); + msg.appendf("testRead(hidden=%s, visible=%s) failed: ", boolToStr(hiddenOnly), boolToStr(visibleOnly)); e->errorMessage(msg); msg.appendf("(code %d)", e->errorCode()); e->Release(); @@ -3176,7 +3175,7 @@ class CSysInfoLoggerTester : public CppUnit::TestFixture } public: - ~CSysInfoLoggerTester() + ~DaliSysInfoLoggerTester() { daliClientEnd(); } @@ -3261,7 +3260,7 @@ class CSysInfoLoggerTester : public CppUnit::TestFixture } }; -CPPUNIT_TEST_SUITE_REGISTRATION( CSysInfoLoggerTester ); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( CSysInfoLoggerTester, "CSysInfoLogger" ); +CPPUNIT_TEST_SUITE_REGISTRATION( DaliSysInfoLoggerTester ); +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( DaliSysInfoLoggerTester, "DaliSysInfoLoggerTester" ); #endif // _USE_CPPUNIT diff --git a/testing/unittests/unittests.cpp b/testing/unittests/unittests.cpp index d31fe008a7e..6e4a79b566c 100644 --- a/testing/unittests/unittests.cpp +++ b/testing/unittests/unittests.cpp @@ -186,7 +186,7 @@ int main(int argc, const char *argv[]) excludeNames.append("*stress*"); excludeNames.append("*timing*"); excludeNames.append("*slow*"); - excludeNames.append("CSysInfoLoggerTester"); // disabled by default as dali not available when executed by smoketest + excludeNames.append("Dali*"); // disabled by default as dali not available when executed by smoketest } if (!includeNames.length())