Skip to content

Commit 144ad27

Browse files
committed
Add tests
1 parent b5f512a commit 144ad27

File tree

1 file changed

+180
-0
lines changed

1 file changed

+180
-0
lines changed

test/testsuppressions.cpp

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,20 @@ class TestSuppressions : public TestFixture {
116116
TEST_CASE(suppressionFromErrorMessage);
117117

118118
TEST_CASE(suppressionWildcard);
119+
120+
TEST_CASE(polyspaceMisraC2012);
121+
TEST_CASE(polyspaceMisraC2023);
122+
TEST_CASE(polyspaceMisraCpp2008);
123+
TEST_CASE(polyspaceMisraCpp2023);
124+
TEST_CASE(polyspaceCertC);
125+
TEST_CASE(polyspaceCertCpp);
126+
TEST_CASE(polyspaceAutosar);
127+
TEST_CASE(polyspaceIgnored);
128+
TEST_CASE(polyspaceMultiple1);
129+
TEST_CASE(polyspaceMultiple2);
130+
TEST_CASE(polyspaceMultiple3);
131+
TEST_CASE(polyspaceRange);
132+
TEST_CASE(polyspaceBlock);
119133
}
120134

121135
void suppressionsBadId1() const {
@@ -1896,6 +1910,172 @@ class TestSuppressions : public TestFixture {
18961910
ASSERT(!suppressions.getUnmatchedGlobalSuppressions().empty());
18971911
}
18981912
}
1913+
1914+
void polyspaceMisraC2012() const {
1915+
SuppressionList list;
1916+
polyspace::Parser parser;
1917+
parser.parse("/* polyspace MISRA2012 : 2.7 */", 1, "file.c");
1918+
parser.collect(list);
1919+
const auto &supprs = list.getSuppressions();
1920+
ASSERT_EQUALS(1, supprs.size());
1921+
const auto s = supprs.cbegin();
1922+
ASSERT(s->isInline);
1923+
ASSERT(s->isPolyspace);
1924+
ASSERT_EQUALS("premium-misra-c-2012-2.7", s->errorId);
1925+
ASSERT_EQUALS(1, s->lineNumber);
1926+
ASSERT_EQUALS_ENUM(SuppressionList::Type::unique, s->type);
1927+
ASSERT_EQUALS(SuppressionList::Suppression::NO_LINE, s->lineBegin);
1928+
ASSERT_EQUALS(SuppressionList::Suppression::NO_LINE, s->lineEnd);
1929+
}
1930+
1931+
void polyspaceMisraC2023() const {
1932+
SuppressionList list;
1933+
polyspace::Parser parser;
1934+
parser.parse("// polyspace MISRA-C-2023 : *", 2, "file.c");
1935+
parser.collect(list);
1936+
const auto &supprs = list.getSuppressions();
1937+
ASSERT_EQUALS(1, supprs.size());
1938+
const auto s = supprs.cbegin();
1939+
ASSERT_EQUALS("premium-misra-c-2023-*", s->errorId);
1940+
ASSERT_EQUALS(2, s->lineNumber);
1941+
ASSERT_EQUALS(SuppressionList::Suppression::NO_LINE, s->lineBegin);
1942+
ASSERT_EQUALS(SuppressionList::Suppression::NO_LINE, s->lineEnd);
1943+
}
1944+
1945+
void polyspaceMisraCpp2008() const {
1946+
SuppressionList list;
1947+
polyspace::Parser parser;
1948+
parser.parse("// polyspace MISRA-CPP : 7-1-1", 1, "file.c");
1949+
parser.collect(list);
1950+
const auto &supprs = list.getSuppressions();
1951+
ASSERT_EQUALS(1, supprs.size());
1952+
const auto s = supprs.cbegin();
1953+
ASSERT_EQUALS("premium-misra-cpp-2008-7-1-1", s->errorId);
1954+
}
1955+
1956+
void polyspaceMisraCpp2023() const {
1957+
SuppressionList list;
1958+
polyspace::Parser parser;
1959+
parser.parse("// polyspace MISRA-CPP-2023 : 4.6.1", 1, "file.c");
1960+
parser.collect(list);
1961+
const auto &supprs = list.getSuppressions();
1962+
ASSERT_EQUALS(1, supprs.size());
1963+
const auto s = supprs.cbegin();
1964+
ASSERT_EQUALS("premium-misra-cpp-2023-4.6.1", s->errorId);
1965+
}
1966+
1967+
void polyspaceCertC() const {
1968+
SuppressionList list;
1969+
polyspace::Parser parser;
1970+
parser.parse("// polyspace CERT-C : PRE30", 1, "file.c");
1971+
parser.collect(list);
1972+
const auto &supprs = list.getSuppressions();
1973+
ASSERT_EQUALS(1, supprs.size());
1974+
const auto s = supprs.cbegin();
1975+
ASSERT_EQUALS("premium-cert-c-PRE30", s->errorId);
1976+
}
1977+
1978+
void polyspaceCertCpp() const {
1979+
SuppressionList list;
1980+
polyspace::Parser parser;
1981+
parser.parse("// polyspace CERT-CPP : CTR51", 1, "file.c");
1982+
parser.collect(list);
1983+
const auto &supprs = list.getSuppressions();
1984+
ASSERT_EQUALS(1, supprs.size());
1985+
const auto s = supprs.cbegin();
1986+
ASSERT_EQUALS("premium-cert-cpp-CTR51", s->errorId);
1987+
}
1988+
1989+
void polyspaceAutosar() const {
1990+
SuppressionList list;
1991+
polyspace::Parser parser;
1992+
parser.parse("// polyspace AUTOSAR-CPP14 : a2-10-1", 1, "file.c");
1993+
parser.collect(list);
1994+
const auto &supprs = list.getSuppressions();
1995+
ASSERT_EQUALS(1, supprs.size());
1996+
const auto s = supprs.cbegin();
1997+
ASSERT_EQUALS("premium-autosar-a2-10-1", s->errorId);
1998+
}
1999+
2000+
void polyspaceIgnored() const {
2001+
SuppressionList list;
2002+
polyspace::Parser parser;
2003+
parser.parse("// polyspace DEFECT : INT_OVFL", 1, "file.c");
2004+
parser.collect(list);
2005+
ASSERT(list.getSuppressions().empty());
2006+
}
2007+
2008+
void polyspaceMultiple1() const {
2009+
SuppressionList list;
2010+
polyspace::Parser parser;
2011+
parser.parse("/* polyspace MISRA2012 : 2.7, 9.1 */", 1, "file.c");
2012+
parser.collect(list);
2013+
const auto &supprs = list.getSuppressions();
2014+
ASSERT_EQUALS(2, supprs.size());
2015+
auto s = supprs.cbegin();
2016+
ASSERT_EQUALS("premium-misra-c-2012-2.7", s->errorId);
2017+
s++;
2018+
ASSERT_EQUALS("premium-misra-c-2012-9.1", s->errorId);
2019+
}
2020+
2021+
void polyspaceMultiple2() const {
2022+
SuppressionList list;
2023+
polyspace::Parser parser;
2024+
parser.parse("/* polyspace MISRA2012 : 2.7 MISRA-CPP : 7-1-1 */", 1, "file.c");
2025+
parser.collect(list);
2026+
const auto &supprs = list.getSuppressions();
2027+
ASSERT_EQUALS(2, supprs.size());
2028+
auto s = supprs.cbegin();
2029+
ASSERT_EQUALS("premium-misra-c-2012-2.7", s->errorId);
2030+
s++;
2031+
ASSERT_EQUALS("premium-misra-cpp-2008-7-1-1", s->errorId);
2032+
}
2033+
2034+
void polyspaceMultiple3() const {
2035+
SuppressionList list;
2036+
polyspace::Parser parser;
2037+
parser.parse("/* polyspace MISRA2012 : 2.7 [Justified:Low] \"comment 1\" polyspace MISRA-CPP : 7-1-1 \"comment 2\"*/", 1, "file.c");
2038+
parser.collect(list);
2039+
const auto &supprs = list.getSuppressions();
2040+
ASSERT_EQUALS(2, supprs.size());
2041+
auto s = supprs.cbegin();
2042+
ASSERT_EQUALS("premium-misra-c-2012-2.7", s->errorId);
2043+
s++;
2044+
ASSERT_EQUALS("premium-misra-cpp-2008-7-1-1", s->errorId);
2045+
}
2046+
2047+
void polyspaceRange() const {
2048+
SuppressionList list;
2049+
polyspace::Parser parser;
2050+
parser.parse("/* polyspace +3 MISRA2012 : 2.7 */", 1, "file.c");
2051+
parser.collect(list);
2052+
const auto &supprs = list.getSuppressions();
2053+
ASSERT_EQUALS(1, supprs.size());
2054+
const auto s = supprs.cbegin();
2055+
ASSERT(s->isInline);
2056+
ASSERT_EQUALS("premium-misra-c-2012-2.7", s->errorId);
2057+
ASSERT_EQUALS(1, s->lineNumber);
2058+
ASSERT_EQUALS_ENUM(SuppressionList::Type::block, s->type);
2059+
ASSERT_EQUALS(1, s->lineBegin);
2060+
ASSERT_EQUALS(4, s->lineEnd);
2061+
}
2062+
2063+
void polyspaceBlock() const {
2064+
SuppressionList list;
2065+
polyspace::Parser parser;
2066+
parser.parse("/* polyspace-begin MISRA2012 : 2.7 */", 1, "file.c");
2067+
parser.parse("/* polyspace-end MISRA2012 : 2.7 */", 5, "file.c");
2068+
parser.collect(list);
2069+
const auto &supprs = list.getSuppressions();
2070+
ASSERT_EQUALS(1, supprs.size());
2071+
const auto s = supprs.cbegin();
2072+
ASSERT(s->isInline);
2073+
ASSERT_EQUALS("premium-misra-c-2012-2.7", s->errorId);
2074+
ASSERT_EQUALS(1, s->lineNumber);
2075+
ASSERT_EQUALS_ENUM(SuppressionList::Type::block, s->type);
2076+
ASSERT_EQUALS(1, s->lineBegin);
2077+
ASSERT_EQUALS(5, s->lineEnd);
2078+
}
18992079
};
19002080

19012081
REGISTER_TEST(TestSuppressions)

0 commit comments

Comments
 (0)