Skip to content

Commit 3f3090b

Browse files
committed
testrunner: extracted TokenList path from TokenizedCode into TokenListCode
1 parent 21118f1 commit 3f3090b

File tree

6 files changed

+188
-208
lines changed

6 files changed

+188
-208
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -845,10 +845,10 @@ test/testtoken.o: test/testtoken.cpp lib/check.h lib/color.h lib/config.h lib/er
845845
test/testtokenize.o: test/testtokenize.cpp externals/simplecpp/simplecpp.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
846846
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtokenize.cpp
847847

848-
test/testtokenlist.o: test/testtokenlist.cpp lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h
848+
test/testtokenlist.o: test/testtokenlist.cpp lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
849849
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtokenlist.cpp
850850

851-
test/testtokenrange.o: test/testtokenrange.cpp lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/tokenrange.h lib/utils.h lib/vfvalue.h test/fixture.h
851+
test/testtokenrange.o: test/testtokenrange.cpp lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/tokenrange.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
852852
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtokenrange.cpp
853853

854854
test/testtype.o: test/testtype.cpp lib/check.h lib/checktype.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h

test/helpers.h

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,10 @@ class TokenizedCode {
3636
const Settings settings;
3737

3838
public:
39-
explicit TokenizedCode(const char sample[], bool createOnly = false, bool cpp = true)
39+
explicit TokenizedCode(const char sample[], bool cpp = true)
4040
: tokenizer(&settings, nullptr) {
4141
std::istringstream iss(sample);
42-
if (createOnly)
43-
tokenizer.list.createTokens(iss, cpp ? "test.cpp" : "test.c");
44-
else
45-
tokenizer.tokenize(iss, cpp ? "test.cpp" : "test.c");
42+
tokenizer.tokenize(iss, cpp ? "test.cpp" : "test.c");
4643
}
4744

4845
Token* tokens() {
@@ -54,6 +51,26 @@ class TokenizedCode {
5451
}
5552
};
5653

54+
class TokenListCode {
55+
private:
56+
TokenList tokenList;
57+
58+
public:
59+
explicit TokenListCode(const char sample[], bool cpp = true)
60+
: tokenList(nullptr) {
61+
std::istringstream iss(sample);
62+
tokenList.createTokens(iss, cpp ? "test.cpp" : "test.c");
63+
}
64+
65+
Token* front() {
66+
return tokenList.front();
67+
}
68+
69+
const Token* front() const {
70+
return tokenList.front();
71+
}
72+
};
73+
5774

5875
class ScopedFile {
5976
public:

test/testlibrary.cpp

Lines changed: 10 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -139,16 +139,12 @@ class TestLibrary : public TestFixture {
139139
Library library;
140140
ASSERT(loadxmldata(library, xmldata, sizeof(xmldata)));
141141
{
142-
TokenList tokenList(nullptr);
143-
std::istringstream istr("fred.foo(123);"); // <- wrong scope, not library function
144-
tokenList.createTokens(istr);
142+
const TokenListCode tokenList("fred.foo(123);");// <- wrong scope, not library function
145143

146144
ASSERT(library.isNotLibraryFunction(tokenList.front()->tokAt(2)));
147145
}
148146
{
149-
TokenList tokenList(nullptr);
150-
std::istringstream istr("Fred::foo(123);"); // <- wrong scope, not library function
151-
tokenList.createTokens(istr);
147+
const TokenListCode tokenList("Fred::foo(123);"); // <- wrong scope, not library function
152148

153149
ASSERT(library.isNotLibraryFunction(tokenList.front()->tokAt(2)));
154150
}
@@ -231,9 +227,7 @@ class TestLibrary : public TestFixture {
231227
" </function>\n"
232228
"</def>";
233229

234-
TokenList tokenList(nullptr);
235-
std::istringstream istr("Fred foo(123);"); // <- Variable declaration, not library function
236-
tokenList.createTokens(istr);
230+
TokenListCode tokenList("Fred foo(123);"); // <- Variable declaration, not library function
237231
tokenList.front()->next()->astOperand1(tokenList.front());
238232
tokenList.front()->next()->varId(1);
239233

@@ -291,9 +285,7 @@ class TestLibrary : public TestFixture {
291285
ASSERT(loadxmldata(library, xmldata, sizeof(xmldata)));
292286
ASSERT_EQUALS(0, library.functions["foo"].argumentChecks[-1].notuninit);
293287

294-
TokenList tokenList(nullptr);
295-
std::istringstream istr("foo(a,b,c,d,e);");
296-
tokenList.createTokens(istr);
288+
TokenListCode tokenList("foo(a,b,c,d,e);");
297289
tokenList.front()->next()->astOperand1(tokenList.front());
298290

299291
ASSERT_EQUALS(false, library.isuninitargbad(tokenList.front(), 1));
@@ -316,9 +308,7 @@ class TestLibrary : public TestFixture {
316308
Library library;
317309
ASSERT(loadxmldata(library, xmldata, sizeof(xmldata)));
318310

319-
TokenList tokenList(nullptr);
320-
std::istringstream istr("foo(a,b,c,d);");
321-
tokenList.createTokens(istr);
311+
TokenListCode tokenList("foo(a,b,c,d);");
322312
tokenList.front()->next()->astOperand1(tokenList.front());
323313

324314
ASSERT(Library::ArgumentChecks::Direction::DIR_IN == library.getArgDirection(tokenList.front(), 1));
@@ -348,9 +338,7 @@ class TestLibrary : public TestFixture {
348338
Library library;
349339
ASSERT(loadxmldata(library, xmldata, sizeof(xmldata)));
350340

351-
TokenList tokenList(nullptr);
352-
std::istringstream istr("foo(a,b,c,d,e,f,g,h,i,j,k);");
353-
tokenList.createTokens(istr);
341+
TokenListCode tokenList("foo(a,b,c,d,e,f,g,h,i,j,k);");
354342
tokenList.front()->next()->astOperand1(tokenList.front());
355343

356344
// 1-
@@ -490,9 +478,7 @@ class TestLibrary : public TestFixture {
490478
Library library;
491479
ASSERT(loadxmldata(library, xmldata, sizeof(xmldata)));
492480

493-
TokenList tokenList(nullptr);
494-
std::istringstream istr("foo(a,b,c,d,e);");
495-
tokenList.createTokens(istr);
481+
TokenListCode tokenList("foo(a,b,c,d,e);");
496482
tokenList.front()->next()->astOperand1(tokenList.front());
497483

498484
// arg1: type=strlen arg2
@@ -553,16 +539,12 @@ class TestLibrary : public TestFixture {
553539
ASSERT(library.functions.at("bar").argumentChecks.empty());
554540

555541
{
556-
TokenList tokenList(nullptr);
557-
std::istringstream istr("Foo::foo();");
558-
tokenList.createTokens(istr);
542+
const TokenListCode tokenList("Foo::foo();");
559543
ASSERT(library.isnotnoreturn(tokenList.front()->tokAt(2)));
560544
}
561545

562546
{
563-
TokenList tokenList(nullptr);
564-
std::istringstream istr("bar();");
565-
tokenList.createTokens(istr);
547+
const TokenListCode tokenList("bar();");
566548
ASSERT(library.isnotnoreturn(tokenList.front()));
567549
}
568550
}
@@ -634,9 +616,7 @@ class TestLibrary : public TestFixture {
634616
Library library;
635617
ASSERT(loadxmldata(library, xmldata, sizeof(xmldata)));
636618

637-
TokenList tokenList(nullptr);
638-
std::istringstream istr("a(); b();");
639-
tokenList.createTokens(istr);
619+
const TokenListCode tokenList("a(); b();");
640620

641621
const Library::WarnInfo* a = library.getWarnInfo(tokenList.front());
642622
const Library::WarnInfo* b = library.getWarnInfo(tokenList.front()->tokAt(4));

0 commit comments

Comments
 (0)