Skip to content

Commit b6f9037

Browse files
committed
testrunner: pass ErrorLogger into SimpleTokenizer
1 parent 49d703c commit b6f9037

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
@@ -290,8 +290,8 @@ class TestToken : public TestFixture {
290290
ASSERT_EQUALS(true, Token::Match(numparen.tokens(), "(| 100 %bool%|%name%| )|"));
291291
}
292292

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0 commit comments

Comments
 (0)