Skip to content

Commit dafe678

Browse files
committed
testrunner: pass ErrorLogger into SimpleTokenizer
1 parent 794f1a6 commit dafe678

4 files changed

Lines changed: 48 additions & 46 deletions

File tree

test/helpers.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@
3232
class Token;
3333
class Preprocessor;
3434
class SuppressionList;
35+
class ErrorLogger;
3536
namespace simplecpp {
3637
struct DUI;
3738
}
3839

3940
class SimpleTokenizer {
4041
public:
41-
explicit SimpleTokenizer(const char sample[], bool cpp = true)
42+
SimpleTokenizer(ErrorLogger& errorlogger, const char sample[], bool cpp = true)
43+
: tokenizer{settings, &errorlogger}
4244
{
4345
std::istringstream iss(sample);
4446
if (!tokenizer.tokenize(iss, cpp ? "test.cpp" : "test.c"))
@@ -55,7 +57,7 @@ class SimpleTokenizer {
5557

5658
private:
5759
const Settings settings;
58-
Tokenizer tokenizer{settings, nullptr};
60+
Tokenizer tokenizer;
5961
};
6062

6163
class SimpleTokenList

test/testlibrary.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,7 @@ class TestLibrary : public TestFixture {
791791
}
792792
}
793793

794-
void container() const {
794+
void container() {
795795
constexpr char xmldata[] = "<?xml version=\"1.0\"?>\n"
796796
"<def>\n"
797797
" <container id=\"A\" startPattern=\"std :: A &lt;\" endPattern=\"&gt; !!::\" itEndPattern=\"&gt; :: iterator\">\n"
@@ -871,7 +871,7 @@ class TestLibrary : public TestFixture {
871871
ASSERT_EQUALS(C.arrayLike_indexOp, true);
872872

873873
{
874-
SimpleTokenizer var("std::A<int> a;");
874+
SimpleTokenizer var(*this, "std::A<int> a;");
875875
ASSERT_EQUALS(&A, library.detectContainer(var.tokens()));
876876
ASSERT(!library.detectIterator(var.tokens()));
877877
bool isIterator;
@@ -880,14 +880,14 @@ class TestLibrary : public TestFixture {
880880
}
881881

882882
{
883-
SimpleTokenizer var("std::A<int>::size_type a_s;");
883+
SimpleTokenizer var(*this, "std::A<int>::size_type a_s;");
884884
ASSERT(!library.detectContainer(var.tokens()));
885885
ASSERT(!library.detectIterator(var.tokens()));
886886
ASSERT(!library.detectContainerOrIterator(var.tokens()));
887887
}
888888

889889
{
890-
SimpleTokenizer var("std::A<int>::iterator a_it;");
890+
SimpleTokenizer var(*this, "std::A<int>::iterator a_it;");
891891
ASSERT(!library.detectContainer(var.tokens()));
892892
ASSERT_EQUALS(&A, library.detectIterator(var.tokens()));
893893
bool isIterator;
@@ -896,7 +896,7 @@ class TestLibrary : public TestFixture {
896896
}
897897

898898
{
899-
SimpleTokenizer var("std::B<int> b;");
899+
SimpleTokenizer var(*this, "std::B<int> b;");
900900
ASSERT_EQUALS(&B, library.detectContainer(var.tokens()));
901901
ASSERT(!library.detectIterator(var.tokens()));
902902
bool isIterator;
@@ -905,14 +905,14 @@ class TestLibrary : public TestFixture {
905905
}
906906

907907
{
908-
SimpleTokenizer var("std::B<int>::size_type b_s;");
908+
SimpleTokenizer var(*this, "std::B<int>::size_type b_s;");
909909
ASSERT(!library.detectContainer(var.tokens()));
910910
ASSERT(!library.detectIterator(var.tokens()));
911911
ASSERT(!library.detectContainerOrIterator(var.tokens()));
912912
}
913913

914914
{
915-
SimpleTokenizer var("std::B<int>::iterator b_it;");
915+
SimpleTokenizer var(*this, "std::B<int>::iterator b_it;");
916916
ASSERT(!library.detectContainer(var.tokens()));
917917
ASSERT_EQUALS(&B, library.detectIterator(var.tokens()));
918918
bool isIterator;
@@ -921,14 +921,14 @@ class TestLibrary : public TestFixture {
921921
}
922922

923923
{
924-
SimpleTokenizer var("C c;");
924+
SimpleTokenizer var(*this, "C c;");
925925
ASSERT(!library.detectContainer(var.tokens()));
926926
ASSERT(!library.detectIterator(var.tokens()));
927927
ASSERT(!library.detectContainerOrIterator(var.tokens()));
928928
}
929929

930930
{
931-
SimpleTokenizer var("D d;");
931+
SimpleTokenizer var(*this, "D d;");
932932
ASSERT(!library.detectContainer(var.tokens()));
933933
ASSERT(!library.detectIterator(var.tokens()));
934934
ASSERT(!library.detectContainerOrIterator(var.tokens()));

test/testsymboldatabase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,7 @@ class TestSymbolDatabase : public TestFixture {
816816
}
817817
{
818818
reset();
819-
SimpleTokenizer constpointer("const int* p;");
819+
SimpleTokenizer constpointer(*this, "const int* p;");
820820
Variable v2(constpointer.tokens()->tokAt(3), constpointer.tokens()->next(), constpointer.tokens()->tokAt(2), 0, AccessControl::Public, nullptr, nullptr, &settings1);
821821
ASSERT(false == v2.isArray());
822822
ASSERT(true == v2.isPointer());

test/testtoken.cpp

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,8 @@ class TestToken : public TestFixture {
289289
ASSERT_EQUALS(true, Token::Match(numparen.tokens(), "(| 100 %bool%|%name%| )|"));
290290
}
291291

292-
void multiCompare4() const {
293-
SimpleTokenizer var("std :: queue < int > foo ;");
292+
void multiCompare4() {
293+
SimpleTokenizer var(*this, "std :: queue < int > foo ;");
294294

295295
ASSERT_EQUALS(Token::eBracket, var.tokens()->tokAt(3)->tokType());
296296
ASSERT_EQUALS(Token::eBracket, var.tokens()->tokAt(5)->tokType());
@@ -545,18 +545,18 @@ class TestToken : public TestFixture {
545545
ASSERT_EQUALS(true, *tokensFront == &tok);
546546
}
547547

548-
void nextArgument() const {
549-
SimpleTokenizer example1("foo(1, 2, 3, 4);");
548+
void nextArgument() {
549+
SimpleTokenizer example1(*this, "foo(1, 2, 3, 4);");
550550
ASSERT_EQUALS(true, Token::simpleMatch(example1.tokens()->tokAt(2)->nextArgument(), "2 , 3"));
551551
ASSERT_EQUALS(true, Token::simpleMatch(example1.tokens()->tokAt(4)->nextArgument(), "3 , 4"));
552552

553-
SimpleTokenizer example2("foo();");
553+
SimpleTokenizer example2(*this, "foo();");
554554
ASSERT_EQUALS(true, example2.tokens()->tokAt(2)->nextArgument() == nullptr);
555555

556-
SimpleTokenizer example3("foo(bar(a, b), 2, 3);");
556+
SimpleTokenizer example3(*this, "foo(bar(a, b), 2, 3);");
557557
ASSERT_EQUALS(true, Token::simpleMatch(example3.tokens()->tokAt(2)->nextArgument(), "2 , 3"));
558558

559-
SimpleTokenizer example4("foo(x.i[1], \"\", 3);");
559+
SimpleTokenizer example4(*this, "foo(x.i[1], \"\", 3);");
560560
ASSERT_EQUALS(true, Token::simpleMatch(example4.tokens()->tokAt(2)->nextArgument(), "\"\" , 3"));
561561
}
562562

@@ -604,11 +604,11 @@ class TestToken : public TestFixture {
604604
ASSERT_EQUALS(false, Token::Match(ifSemicolonElse.tokens(), "if ; !!else"));
605605
}
606606

607-
void matchType() const {
607+
void matchType() {
608608
SimpleTokenList type("abc");
609609
ASSERT_EQUALS(true, Token::Match(type.tokens(), "%type%"));
610610

611-
SimpleTokenizer isVar("int a = 3 ;");
611+
SimpleTokenizer isVar(*this, "int a = 3 ;");
612612
ASSERT_EQUALS(true, Token::Match(isVar.tokens(), "%type%"));
613613
ASSERT_EQUALS(true, Token::Match(isVar.tokens(), "%type% %name%"));
614614
ASSERT_EQUALS(false, Token::Match(isVar.tokens(), "%type% %type%"));
@@ -660,8 +660,8 @@ class TestToken : public TestFixture {
660660
ASSERT_EQUALS(true, Token::Match(emptyStr.tokens(), "%str%"));
661661
}
662662

663-
void matchVarid() const {
664-
SimpleTokenizer var("int a ; int b ;");
663+
void matchVarid() {
664+
SimpleTokenizer var(*this, "int a ; int b ;");
665665

666666
// Varid == 0 should throw exception
667667
ASSERT_THROW((void)Token::Match(var.tokens(), "%type% %varid% ; %type% %name%", 0),InternalError);
@@ -742,15 +742,15 @@ class TestToken : public TestFixture {
742742
ASSERT_EQUALS(true, Token::Match(negative.tokens(), "%bool%"));
743743
}
744744

745-
void matchOr() const {
745+
void matchOr() {
746746
SimpleTokenList bitwiseOr(";|;");
747747
// cppcheck-suppress simplePatternError - this is intentional
748748
ASSERT_EQUALS(true, Token::Match(bitwiseOr.tokens(), "; %or%"));
749749
ASSERT_EQUALS(true, Token::Match(bitwiseOr.tokens(), "; %op%"));
750750
// cppcheck-suppress simplePatternError - this is intentional
751751
ASSERT_EQUALS(false, Token::Match(bitwiseOr.tokens(), "; %oror%"));
752752

753-
SimpleTokenizer bitwiseOrAssignment(";|=;");
753+
SimpleTokenizer bitwiseOrAssignment(*this, ";|=;");
754754
// cppcheck-suppress simplePatternError - this is intentional
755755
ASSERT_EQUALS(false, Token::Match(bitwiseOrAssignment.tokens(), "; %or%"));
756756
ASSERT_EQUALS(true, Token::Match(bitwiseOrAssignment.tokens(), "; %op%"));
@@ -1105,39 +1105,39 @@ class TestToken : public TestFixture {
11051105
ASSERT_EQUALS(true, tok.isName());
11061106
}
11071107

1108-
void canFindMatchingBracketsNeedsOpen() const {
1109-
SimpleTokenizer var("std::deque<std::set<int> > intsets;");
1108+
void canFindMatchingBracketsNeedsOpen() {
1109+
SimpleTokenizer var(*this, "std::deque<std::set<int> > intsets;");
11101110

11111111
const Token* const t = var.tokens()->findClosingBracket();
11121112
ASSERT(t == nullptr);
11131113
}
11141114

1115-
void canFindMatchingBracketsInnerPair() const {
1116-
SimpleTokenizer var("std::deque<std::set<int> > intsets;");
1115+
void canFindMatchingBracketsInnerPair() {
1116+
SimpleTokenizer var(*this, "std::deque<std::set<int> > intsets;");
11171117

11181118
const Token * const t = var.tokens()->tokAt(7)->findClosingBracket();
11191119
ASSERT_EQUALS(">", t->str());
11201120
ASSERT(var.tokens()->tokAt(9) == t);
11211121
}
11221122

1123-
void canFindMatchingBracketsOuterPair() const {
1124-
SimpleTokenizer var("std::deque<std::set<int> > intsets;");
1123+
void canFindMatchingBracketsOuterPair() {
1124+
SimpleTokenizer var(*this, "std::deque<std::set<int> > intsets;");
11251125

11261126
const Token* const t = var.tokens()->tokAt(3)->findClosingBracket();
11271127
ASSERT_EQUALS(">", t->str());
11281128
ASSERT(var.tokens()->tokAt(10) == t);
11291129
}
11301130

1131-
void canFindMatchingBracketsWithTooManyClosing() const {
1132-
SimpleTokenizer var("X< 1>2 > x1;");
1131+
void canFindMatchingBracketsWithTooManyClosing() {
1132+
SimpleTokenizer var(*this, "X< 1>2 > x1;");
11331133

11341134
const Token* const t = var.tokens()->next()->findClosingBracket();
11351135
ASSERT_EQUALS(">", t->str());
11361136
ASSERT(var.tokens()->tokAt(3) == t);
11371137
}
11381138

1139-
void canFindMatchingBracketsWithTooManyOpening() const {
1140-
SimpleTokenizer var("X < (2 < 1) > x1;");
1139+
void canFindMatchingBracketsWithTooManyOpening() {
1140+
SimpleTokenizer var(*this, "X < (2 < 1) > x1;");
11411141

11421142
const Token* t = var.tokens()->next()->findClosingBracket();
11431143
ASSERT(t != nullptr && t->str() == ">");
@@ -1146,39 +1146,39 @@ class TestToken : public TestFixture {
11461146
ASSERT(t == nullptr);
11471147
}
11481148

1149-
void findClosingBracket() const {
1150-
SimpleTokenizer var("template<typename X, typename...Y> struct S : public Fred<Wilma<Y...>> {}");
1149+
void findClosingBracket() {
1150+
SimpleTokenizer var(*this, "template<typename X, typename...Y> struct S : public Fred<Wilma<Y...>> {}");
11511151

11521152
const Token* const t = var.tokens()->next()->findClosingBracket();
11531153
ASSERT(Token::simpleMatch(t, "> struct"));
11541154
}
11551155

1156-
void findClosingBracket2() const {
1157-
SimpleTokenizer var("const auto g = []<typename T>() {};\n"); // #11275
1156+
void findClosingBracket2() {
1157+
SimpleTokenizer var(*this, "const auto g = []<typename T>() {};\n"); // #11275
11581158

11591159
const Token* const t = Token::findsimplematch(var.tokens(), "<");
11601160
ASSERT(t && Token::simpleMatch(t->findClosingBracket(), ">"));
11611161
}
11621162

1163-
void expressionString() const {
1164-
SimpleTokenizer var1("void f() { *((unsigned long long *)x) = 0; }");
1163+
void expressionString() {
1164+
SimpleTokenizer var1(*this, "void f() { *((unsigned long long *)x) = 0; }");
11651165
const Token *const tok1 = Token::findsimplematch(var1.tokens(), "*");
11661166
ASSERT_EQUALS("*((unsigned long long*)x)", tok1->expressionString());
11671167

1168-
SimpleTokenizer var2("typedef unsigned long long u64; void f() { *((u64 *)x) = 0; }");
1168+
SimpleTokenizer var2(*this, "typedef unsigned long long u64; void f() { *((u64 *)x) = 0; }");
11691169
const Token *const tok2 = Token::findsimplematch(var2.tokens(), "*");
11701170
ASSERT_EQUALS("*((unsigned long long*)x)", tok2->expressionString());
11711171

1172-
SimpleTokenizer data3("void f() { return (t){1,2}; }");
1172+
SimpleTokenizer data3(*this, "void f() { return (t){1,2}; }");
11731173
ASSERT_EQUALS("return(t){1,2}", data3.tokens()->tokAt(5)->expressionString());
11741174

1175-
SimpleTokenizer data4("void f() { return L\"a\"; }");
1175+
SimpleTokenizer data4(*this, "void f() { return L\"a\"; }");
11761176
ASSERT_EQUALS("returnL\"a\"", data4.tokens()->tokAt(5)->expressionString());
11771177

1178-
SimpleTokenizer data5("void f() { return U\"a\"; }");
1178+
SimpleTokenizer data5(*this, "void f() { return U\"a\"; }");
11791179
ASSERT_EQUALS("returnU\"a\"", data5.tokens()->tokAt(5)->expressionString());
11801180

1181-
SimpleTokenizer data6("x = \"\\0\\x1\\x2\\x3\\x4\\x5\\x6\\x7\";");
1181+
SimpleTokenizer data6(*this, "x = \"\\0\\x1\\x2\\x3\\x4\\x5\\x6\\x7\";");
11821182
ASSERT_EQUALS("x=\"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\"", data6.tokens()->next()->expressionString());
11831183
}
11841184

0 commit comments

Comments
 (0)