@@ -121,6 +121,7 @@ class TestSuppressions : public TestFixture {
121121
122122 TEST_CASE (suppressionWildcard);
123123
124+ TEST_CASE (polyspaceParseRange);
124125 TEST_CASE (polyspaceParseIds);
125126
126127 TEST_CASE (polyspaceMisraC2012);
@@ -1928,6 +1929,36 @@ class TestSuppressions : public TestFixture {
19281929 return ret.empty () ? ret : ret.substr (1 );
19291930 }
19301931
1932+ void polyspaceParseRange () const {
1933+ std::string::size_type pos;
1934+
1935+ // Happy case
1936+ pos = 0 ;
1937+ ASSERT_EQUALS (12 , polyspace::Parser::parseRange (" +12 " ,pos));
1938+ ASSERT_EQUALS (4U , pos);
1939+
1940+ // Invalid range => pos will point at the token
1941+ pos = 0 ;
1942+ ASSERT_EQUALS (0 , polyspace::Parser::parseRange (" " ,pos));
1943+ ASSERT_EQUALS (std::string::npos, pos);
1944+
1945+ pos = 0 ;
1946+ ASSERT_EQUALS (0 , polyspace::Parser::parseRange (" test " ,pos));
1947+ ASSERT_EQUALS (1U , pos);
1948+
1949+ pos = 0 ;
1950+ ASSERT_EQUALS (0 , polyspace::Parser::parseRange (" +" ,pos));
1951+ ASSERT_EQUALS (1U , pos);
1952+
1953+ pos = 0 ;
1954+ ASSERT_EQUALS (0 , polyspace::Parser::parseRange (" +12" ,pos));
1955+ ASSERT_EQUALS (1U , pos);
1956+
1957+ pos = 0 ;
1958+ ASSERT_EQUALS (0 , polyspace::Parser::parseRange (" +A " ,pos));
1959+ ASSERT_EQUALS (1U , pos);
1960+ }
1961+
19311962 void polyspaceParseIds () const {
19321963 ASSERT_EQUALS (" test:12" , polyspaceParseIdsResults (" abc test:12" ,3 ));
19331964 ASSERT_EQUALS (" test:12" , polyspaceParseIdsResults (" abc test:12 [12]" ,3 ));
0 commit comments