parent
b16eb32df6
commit
83cb0b3394
|
@ -611,7 +611,7 @@ std::string ErrorLogger::ErrorMessage::FileLocation::stringify() const
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << '[' << Path::toNativeSeparators(mFileName);
|
oss << '[' << Path::toNativeSeparators(mFileName);
|
||||||
if (line != 0)
|
if (line != Suppressions::Suppression::NO_LINE)
|
||||||
oss << ':' << line;
|
oss << ':' << line;
|
||||||
oss << ']';
|
oss << ']';
|
||||||
return oss.str();
|
return oss.str();
|
||||||
|
|
|
@ -144,10 +144,10 @@ std::string Suppressions::addSuppressionLine(const std::string &line)
|
||||||
std::istringstream istr1(suppression.fileName.substr(pos+1));
|
std::istringstream istr1(suppression.fileName.substr(pos+1));
|
||||||
istr1 >> suppression.lineNumber;
|
istr1 >> suppression.lineNumber;
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
suppression.lineNumber = 0;
|
suppression.lineNumber = Suppressions::Suppression::NO_LINE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (suppression.lineNumber > 0) {
|
if (suppression.lineNumber > Suppressions::Suppression::NO_LINE) {
|
||||||
suppression.fileName.erase(pos);
|
suppression.fileName.erase(pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -233,7 +233,7 @@ bool Suppressions::Suppression::isSuppressed(const Suppressions::ErrorMessage &e
|
||||||
return false;
|
return false;
|
||||||
if (!fileName.empty() && !matchglob(fileName, errmsg.getFileName()))
|
if (!fileName.empty() && !matchglob(fileName, errmsg.getFileName()))
|
||||||
return false;
|
return false;
|
||||||
if (lineNumber > 0 && lineNumber != errmsg.lineNumber)
|
if (lineNumber > NO_LINE && lineNumber != errmsg.lineNumber)
|
||||||
return false;
|
return false;
|
||||||
if (!symbolName.empty()) {
|
if (!symbolName.empty()) {
|
||||||
for (std::string::size_type pos = 0; pos < errmsg.symbolNames.size();) {
|
for (std::string::size_type pos = 0; pos < errmsg.symbolNames.size();) {
|
||||||
|
@ -269,7 +269,7 @@ std::string Suppressions::Suppression::getText() const
|
||||||
ret = errorId;
|
ret = errorId;
|
||||||
if (!fileName.empty())
|
if (!fileName.empty())
|
||||||
ret += " fileName=" + fileName;
|
ret += " fileName=" + fileName;
|
||||||
if (lineNumber > 0)
|
if (lineNumber > NO_LINE)
|
||||||
ret += " lineNumber=" + MathLib::toString(lineNumber);
|
ret += " lineNumber=" + MathLib::toString(lineNumber);
|
||||||
if (!symbolName.empty())
|
if (!symbolName.empty())
|
||||||
ret += " symbolName=" + symbolName;
|
ret += " symbolName=" + symbolName;
|
||||||
|
@ -312,7 +312,7 @@ void Suppressions::dump(std::ostream & out)
|
||||||
out << " errorId=\"" << ErrorLogger::toxml(suppression.errorId) << '"';
|
out << " errorId=\"" << ErrorLogger::toxml(suppression.errorId) << '"';
|
||||||
if (!suppression.fileName.empty())
|
if (!suppression.fileName.empty())
|
||||||
out << " fileName=\"" << ErrorLogger::toxml(suppression.fileName) << '"';
|
out << " fileName=\"" << ErrorLogger::toxml(suppression.fileName) << '"';
|
||||||
if (suppression.lineNumber > 0)
|
if (suppression.lineNumber > Suppression::NO_LINE)
|
||||||
out << " lineNumber=\"" << suppression.lineNumber << '"';
|
out << " lineNumber=\"" << suppression.lineNumber << '"';
|
||||||
if (!suppression.symbolName.empty())
|
if (!suppression.symbolName.empty())
|
||||||
out << " symbolName=\"" << ErrorLogger::toxml(suppression.symbolName) << '\"';
|
out << " symbolName=\"" << ErrorLogger::toxml(suppression.symbolName) << '\"';
|
||||||
|
|
|
@ -98,7 +98,7 @@ public:
|
||||||
std::string symbolName;
|
std::string symbolName;
|
||||||
bool matched;
|
bool matched;
|
||||||
|
|
||||||
static const int NO_LINE = 0;
|
enum { NO_LINE = -1 };
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -301,7 +301,7 @@ private:
|
||||||
errout.str("");
|
errout.str("");
|
||||||
suppressions.clear();
|
suppressions.clear();
|
||||||
suppressions.emplace_back("abc", "a.c", 10U);
|
suppressions.emplace_back("abc", "a.c", 10U);
|
||||||
suppressions.emplace_back("unmatchedSuppression", "*", 0U);
|
suppressions.emplace_back("unmatchedSuppression", "*", Suppressions::Suppression::NO_LINE);
|
||||||
reportUnmatchedSuppressions(suppressions);
|
reportUnmatchedSuppressions(suppressions);
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
|
||||||
|
@ -309,7 +309,7 @@ private:
|
||||||
errout.str("");
|
errout.str("");
|
||||||
suppressions.clear();
|
suppressions.clear();
|
||||||
suppressions.emplace_back("abc", "a.c", 10U);
|
suppressions.emplace_back("abc", "a.c", 10U);
|
||||||
suppressions.emplace_back("unmatchedSuppression", "a.c", 0U);
|
suppressions.emplace_back("unmatchedSuppression", "a.c", Suppressions::Suppression::NO_LINE);
|
||||||
reportUnmatchedSuppressions(suppressions);
|
reportUnmatchedSuppressions(suppressions);
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
|
||||||
|
@ -325,7 +325,7 @@ private:
|
||||||
errout.str("");
|
errout.str("");
|
||||||
suppressions.clear();
|
suppressions.clear();
|
||||||
suppressions.emplace_back("abc", "a.c", 10U);
|
suppressions.emplace_back("abc", "a.c", 10U);
|
||||||
suppressions.emplace_back("unmatchedSuppression", "b.c", 0U);
|
suppressions.emplace_back("unmatchedSuppression", "b.c", Suppressions::Suppression::NO_LINE);
|
||||||
reportUnmatchedSuppressions(suppressions);
|
reportUnmatchedSuppressions(suppressions);
|
||||||
ASSERT_EQUALS("[a.c:10]: (information) Unmatched suppression: abc\n", errout.str());
|
ASSERT_EQUALS("[a.c:10]: (information) Unmatched suppression: abc\n", errout.str());
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "suppressions.h"
|
#include "suppressions.h"
|
||||||
#include "testsuite.h"
|
#include "testsuite.h"
|
||||||
#include "threadexecutor.h"
|
#include "threadexecutor.h"
|
||||||
|
#include "path.h"
|
||||||
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
@ -46,6 +47,7 @@ private:
|
||||||
TEST_CASE(suppressionsSettings);
|
TEST_CASE(suppressionsSettings);
|
||||||
TEST_CASE(suppressionsMultiFile);
|
TEST_CASE(suppressionsMultiFile);
|
||||||
TEST_CASE(suppressionsPathSeparator);
|
TEST_CASE(suppressionsPathSeparator);
|
||||||
|
TEST_CASE(suppressionsLine0);
|
||||||
|
|
||||||
TEST_CASE(inlinesuppress);
|
TEST_CASE(inlinesuppress);
|
||||||
TEST_CASE(inlinesuppress_symbolname);
|
TEST_CASE(inlinesuppress_symbolname);
|
||||||
|
@ -403,6 +405,12 @@ private:
|
||||||
ASSERT_EQUALS(true, s2.isSuppressed(errorMessage("abc", "include/1.h", 142)));
|
ASSERT_EQUALS(true, s2.isSuppressed(errorMessage("abc", "include/1.h", 142)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void suppressionsLine0() {
|
||||||
|
Suppressions suppressions;
|
||||||
|
suppressions.addSuppressionLine("syntaxError:*:0");
|
||||||
|
ASSERT_EQUALS(true, suppressions.isSuppressed(errorMessage("syntaxError", "test.cpp", 0)));
|
||||||
|
}
|
||||||
|
|
||||||
void inlinesuppress() {
|
void inlinesuppress() {
|
||||||
Suppressions::Suppression s;
|
Suppressions::Suppression s;
|
||||||
std::string msg;
|
std::string msg;
|
||||||
|
|
Loading…
Reference in New Issue