Skip to content

Commit 33d856a

Browse files
committed
TestTokenizer: reduced amount of settingsBuilder().build() calls
1 parent c331d49 commit 33d856a

1 file changed

Lines changed: 48 additions & 45 deletions

File tree

test/testtokenize.cpp

Lines changed: 48 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,13 @@ class TestTokenizer : public TestFixture {
4747

4848
private:
4949
const Settings settings0 = settingsBuilder().library("qt.cfg").build();
50-
const Settings settings1 = settingsBuilder().library("qt.cfg").library("std.cfg").debugwarnings().build();
50+
const Settings settings1 = settingsBuilder().library("std.cfg").library("qt.cfg").debugwarnings().build();
5151
const Settings settings2 = settingsBuilder(settings1).cpp(Standards::CPP11).c(Standards::C11).build();
52+
const Settings settings2_win32a = settingsBuilder(settings2).platform(Platform::Type::Win32A).build();
53+
const Settings settings2_win32w = settingsBuilder(settings2).platform(Platform::Type::Win32W).build();
54+
const Settings settings2_win64 = settingsBuilder(settings2).platform(Platform::Type::Win64).build();
55+
const Settings settings2_unix32 = settingsBuilder(settings2).platform(Platform::Type::Unix32).build();
56+
const Settings settings2_unix64 = settingsBuilder(settings2).platform(Platform::Type::Unix64).build();
5257
const Settings settings3 = settingsBuilder(settings0).c(Standards::C89).cpp(Standards::CPP03).build();
5358
const Settings settings_windows = settingsBuilder().library("windows.cfg").debugwarnings().cpp(Standards::CPP11).build();
5459

@@ -535,19 +540,14 @@ class TestTokenizer : public TestFixture {
535540
struct TokenizeOptions
536541
{
537542
bool expand = true;
538-
Platform::Type platform = Platform::Type::Native;
539543
bool cpp = true;
540-
Standards::cppstd_t cppstd = Standards::CPP11;
541-
Standards::cstd_t cstd = Standards::C11;
542544
};
543545

544546
#define tokenizeAndStringify(...) tokenizeAndStringify_(__FILE__, __LINE__, __VA_ARGS__)
545547
template<size_t size>
546548
std::string tokenizeAndStringify_(const char* file, int linenr, const char (&code)[size], const TokenizeOptions& opt = make_default_obj{}) {
547-
const Settings settings = settingsBuilder(settings1).cpp(opt.cppstd).c(opt.cstd).platform(opt.platform).build();
548-
549549
// tokenize..
550-
SimpleTokenizer tokenizer(settings, *this, opt.cpp);
550+
SimpleTokenizer tokenizer(settings2, *this, opt.cpp);
551551
ASSERT_LOC(tokenizer.tokenize(code), file, linenr);
552552

553553
if (tokenizer.tokens())
@@ -566,13 +566,13 @@ class TestTokenizer : public TestFixture {
566566
}
567567

568568
template<size_t size>
569-
std::string tokenizeAndStringify_(const char* file, int line, const char (&code)[size], const Settings &settings, bool cpp = true) {
569+
std::string tokenizeAndStringify_(const char* file, int line, const char (&code)[size], const Settings &settings, bool cpp = true, bool expand = true) {
570570
// tokenize..
571571
SimpleTokenizer tokenizer(settings, *this, cpp);
572572
ASSERT_LOC(tokenizer.tokenize(code), file, line);
573573
if (!tokenizer.tokens())
574574
return "";
575-
return tokenizer.tokens()->stringifyList(false, true, false, true, false, nullptr, nullptr);
575+
return tokenizer.tokens()->stringifyList(false, expand, false, true, false, nullptr, nullptr);
576576
}
577577

578578
#define tokenizeAndStringifyWindows(...) tokenizeAndStringifyWindows_(__FILE__, __LINE__, __VA_ARGS__)
@@ -2032,7 +2032,7 @@ class TestTokenizer : public TestFixture {
20322032
const char code[] = "struct foo {\n"
20332033
" void operator delete(void *obj, size_t sz);\n"
20342034
"}\n";
2035-
const std::string actual(tokenizeAndStringify(code, dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
2035+
const std::string actual(tokenizeAndStringify(code, settings2_win32a));
20362036

20372037
const char expected[] = "struct foo {\n"
20382038
"void operatordelete ( void * obj , unsigned long sz ) ;\n"
@@ -2568,8 +2568,9 @@ class TestTokenizer : public TestFixture {
25682568
}
25692569

25702570
void vardecl14() {
2571+
const Settings s = settingsBuilder(settings1).cpp(Standards::CPP03).build();
25712572
const char code[] = "::std::tr1::shared_ptr<int> pNum1, pNum2;\n";
2572-
ASSERT_EQUALS(":: std :: tr1 :: shared_ptr < int > pNum1 ; :: std :: tr1 :: shared_ptr < int > pNum2 ;", tokenizeAndStringify(code, dinit(TokenizeOptions, $.expand = false, $.cppstd = Standards::CPP03)));
2573+
ASSERT_EQUALS(":: std :: tr1 :: shared_ptr < int > pNum1 ; :: std :: tr1 :: shared_ptr < int > pNum2 ;", tokenizeAndStringify(code, s, true, false));
25732574
}
25742575

25752576
void vardecl15() {
@@ -5301,72 +5302,72 @@ class TestTokenizer : public TestFixture {
53015302

53025303
void microsoftMemory() {
53035304
const char code1a[] = "void foo() { int a[10], b[10]; CopyMemory(a, b, sizeof(a)); }";
5304-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memcpy ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code1a,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5305+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memcpy ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code1a,settings2_win32a));
53055306

53065307
const char code1b[] = "void foo() { int a[10], b[10]; RtlCopyMemory(a, b, sizeof(a)); }";
5307-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memcpy ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code1b,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5308+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memcpy ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code1b,settings2_win32a));
53085309

53095310
const char code1c[] = "void foo() { int a[10], b[10]; RtlCopyBytes(a, b, sizeof(a)); }";
5310-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memcpy ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code1c,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5311+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memcpy ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code1c,settings2_win32a));
53115312

53125313
const char code2a[] = "void foo() { int a[10]; FillMemory(a, sizeof(a), 255); }";
5313-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 255 , sizeof ( a ) ) ; }", tokenizeAndStringify(code2a,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5314+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 255 , sizeof ( a ) ) ; }", tokenizeAndStringify(code2a,settings2_win32a));
53145315
const char code2b[] = "void foo() { int a[10]; RtlFillMemory(a, sizeof(a), 255); }";
5315-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 255 , sizeof ( a ) ) ; }", tokenizeAndStringify(code2b,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5316+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 255 , sizeof ( a ) ) ; }", tokenizeAndStringify(code2b,settings2_win32a));
53165317
const char code2c[] = "void foo() { int a[10]; RtlFillBytes(a, sizeof(a), 255); }";
5317-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 255 , sizeof ( a ) ) ; }", tokenizeAndStringify(code2c,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5318+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 255 , sizeof ( a ) ) ; }", tokenizeAndStringify(code2c,settings2_win32a));
53185319

53195320
const char code3a[] = "void foo() { int a[10], b[10]; MoveMemory(a, b, sizeof(a)); }";
5320-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memmove ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code3a,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5321+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memmove ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code3a,settings2_win32a));
53215322
const char code3b[] = "void foo() { int a[10], b[10]; RtlMoveMemory(a, b, sizeof(a)); }";
5322-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memmove ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code3b,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5323+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memmove ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code3b,settings2_win32a));
53235324

53245325
const char code4a[] = "void foo() { int a[10]; ZeroMemory(a, sizeof(a)); }";
5325-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 0 , sizeof ( a ) ) ; }", tokenizeAndStringify(code4a,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5326+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 0 , sizeof ( a ) ) ; }", tokenizeAndStringify(code4a,settings2_win32a));
53265327
const char code4b[] = "void foo() { int a[10]; RtlZeroMemory(a, sizeof(a)); }";
5327-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 0 , sizeof ( a ) ) ; }", tokenizeAndStringify(code4b,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5328+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 0 , sizeof ( a ) ) ; }", tokenizeAndStringify(code4b,settings2_win32a));
53285329
const char code4c[] = "void foo() { int a[10]; RtlZeroBytes(a, sizeof(a)); }";
5329-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 0 , sizeof ( a ) ) ; }", tokenizeAndStringify(code4c,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5330+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 0 , sizeof ( a ) ) ; }", tokenizeAndStringify(code4c,settings2_win32a));
53305331
const char code4d[] = "void foo() { int a[10]; RtlSecureZeroMemory(a, sizeof(a)); }";
5331-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 0 , sizeof ( a ) ) ; }", tokenizeAndStringify(code4d,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5332+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; memset ( a , 0 , sizeof ( a ) ) ; }", tokenizeAndStringify(code4d,settings2_win32a));
53325333

53335334
const char code5[] = "void foo() { int a[10], b[10]; RtlCompareMemory(a, b, sizeof(a)); }";
5334-
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memcmp ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code5,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5335+
ASSERT_EQUALS("void foo ( ) { int a [ 10 ] ; int b [ 10 ] ; memcmp ( a , b , sizeof ( a ) ) ; }", tokenizeAndStringify(code5,settings2_win32a));
53355336

53365337
const char code6[] = "void foo() { ZeroMemory(f(1, g(a, b)), h(i, j(0, 1))); }";
5337-
ASSERT_EQUALS("void foo ( ) { memset ( f ( 1 , g ( a , b ) ) , 0 , h ( i , j ( 0 , 1 ) ) ) ; }", tokenizeAndStringify(code6,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5338+
ASSERT_EQUALS("void foo ( ) { memset ( f ( 1 , g ( a , b ) ) , 0 , h ( i , j ( 0 , 1 ) ) ) ; }", tokenizeAndStringify(code6,settings2_win32a));
53385339

53395340
const char code7[] = "void foo() { FillMemory(f(1, g(a, b)), h(i, j(0, 1)), 255); }";
5340-
ASSERT_EQUALS("void foo ( ) { memset ( f ( 1 , g ( a , b ) ) , 255 , h ( i , j ( 0 , 1 ) ) ) ; }", tokenizeAndStringify(code7,dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5341+
ASSERT_EQUALS("void foo ( ) { memset ( f ( 1 , g ( a , b ) ) , 255 , h ( i , j ( 0 , 1 ) ) ) ; }", tokenizeAndStringify(code7,settings2_win32a));
53415342
}
53425343

53435344
void microsoftString() {
53445345
const char code1a[] = "void foo() { _tprintf (_T(\"test\") _T(\"1\")); }";
5345-
ASSERT_EQUALS("void foo ( ) { printf ( \"test1\" ) ; }", tokenizeAndStringify(code1a, dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5346+
ASSERT_EQUALS("void foo ( ) { printf ( \"test1\" ) ; }", tokenizeAndStringify(code1a, settings2_win32a));
53465347
const char code1b[] = "void foo() { _tprintf (_TEXT(\"test\") _TEXT(\"2\")); }";
5347-
ASSERT_EQUALS("void foo ( ) { printf ( \"test2\" ) ; }", tokenizeAndStringify(code1b, dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5348+
ASSERT_EQUALS("void foo ( ) { printf ( \"test2\" ) ; }", tokenizeAndStringify(code1b, settings2_win32a));
53485349
const char code1c[] = "void foo() { _tprintf (TEXT(\"test\") TEXT(\"3\")); }";
5349-
ASSERT_EQUALS("void foo ( ) { printf ( \"test3\" ) ; }", tokenizeAndStringify(code1c, dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5350+
ASSERT_EQUALS("void foo ( ) { printf ( \"test3\" ) ; }", tokenizeAndStringify(code1c, settings2_win32a));
53505351

53515352
const char code2a[] = "void foo() { _tprintf (_T(\"test\") _T(\"1\")); }";
5352-
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test1\" ) ; }", tokenizeAndStringify(code2a, dinit(TokenizeOptions, $.platform = Platform::Type::Win32W)));
5353-
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test1\" ) ; }", tokenizeAndStringify(code2a, dinit(TokenizeOptions, $.platform = Platform::Type::Win64)));
5353+
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test1\" ) ; }", tokenizeAndStringify(code2a, settings2_win32w));
5354+
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test1\" ) ; }", tokenizeAndStringify(code2a, settings2_win64));
53545355
const char code2b[] = "void foo() { _tprintf (_TEXT(\"test\") _TEXT(\"2\")); }";
5355-
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test2\" ) ; }", tokenizeAndStringify(code2b, dinit(TokenizeOptions, $.platform = Platform::Type::Win32W)));
5356-
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test2\" ) ; }", tokenizeAndStringify(code2b, dinit(TokenizeOptions, $.platform = Platform::Type::Win64)));
5356+
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test2\" ) ; }", tokenizeAndStringify(code2b, settings2_win32w));
5357+
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test2\" ) ; }", tokenizeAndStringify(code2b, settings2_win64));
53575358
const char code2c[] = "void foo() { _tprintf (TEXT(\"test\") TEXT(\"3\")); }";
5358-
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test3\" ) ; }", tokenizeAndStringify(code2c, dinit(TokenizeOptions, $.platform = Platform::Type::Win32W)));
5359-
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test3\" ) ; }", tokenizeAndStringify(code2c, dinit(TokenizeOptions, $.platform = Platform::Type::Win64)));
5359+
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test3\" ) ; }", tokenizeAndStringify(code2c, settings2_win32w));
5360+
ASSERT_EQUALS("void foo ( ) { wprintf ( L\"test3\" ) ; }", tokenizeAndStringify(code2c, settings2_win64));
53605361
}
53615362

53625363
void borland() {
53635364
// __closure
53645365
ASSERT_EQUALS("int ( * a ) ( ) ;", // TODO VarId
5365-
tokenizeAndStringify("int (__closure *a)();", dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5366+
tokenizeAndStringify("int (__closure *a)();", settings2_win32a));
53665367

53675368
// __property
53685369
ASSERT_EQUALS("class Fred { ; __property ; } ;",
5369-
tokenizeAndStringify("class Fred { __property int x = { } };", dinit(TokenizeOptions, $.platform = Platform::Type::Win32A)));
5370+
tokenizeAndStringify("class Fred { __property int x = { } };", settings2_win32a));
53705371
}
53715372

53725373
void simplifySQL() {
@@ -6417,8 +6418,9 @@ class TestTokenizer : public TestFixture {
64176418
ASSERT_EQUALS("int func1 ( ) ;",
64186419
tokenizeAndStringify("[[clang::optnone]] [[nodiscard]] int func1();"));
64196420

6421+
const Settings s = settingsBuilder(settings1).c(Standards::C23).build();
64206422
ASSERT_EQUALS("void f ( int i ) { exit ( i ) ; }",
6421-
tokenizeAndStringify("[[noreturn]] void f(int i) { exit(i); }", dinit(TokenizeOptions, $.cpp = false, $.cstd = Standards::C23)));
6423+
tokenizeAndStringify("[[noreturn]] void f(int i) { exit(i); }", s, false));
64226424
}
64236425

64246426
void simplifyCaseRange() {
@@ -7308,6 +7310,7 @@ class TestTokenizer : public TestFixture {
73087310
ASSERT_EQUALS("", errout_str());
73097311

73107312
// #11128
7313+
const Settings s = settingsBuilder(settings1).cpp(Standards::CPP17).build();
73117314
ASSERT_NO_THROW(tokenizeAndStringify("template <typename T>\n"
73127315
"struct S;\n"
73137316
"struct R;\n"
@@ -7317,7 +7320,7 @@ class TestTokenizer : public TestFixture {
73177320
" return y;\n"
73187321
" else\n"
73197322
" return z;\n"
7320-
"}\n", dinit(TokenizeOptions, $.cppstd = Standards::CPP17)));
7323+
"}\n", s));
73217324
ignore_errout();
73227325

73237326
// #10079 - createInnerAST bug..
@@ -8926,18 +8929,18 @@ class TestTokenizer : public TestFixture {
89268929
void simplifyPlatformTypes() {
89278930
{
89288931
const char code[] = "size_t f();";
8929-
ASSERT_EQUALS("unsigned long f ( ) ;", tokenizeAndStringify(code, dinit(TokenizeOptions, $.platform = Platform::Type::Unix32)));
8930-
ASSERT_EQUALS("unsigned long f ( ) ;", tokenizeAndStringify(code, dinit(TokenizeOptions, $.platform = Platform::Type::Unix64)));
8932+
ASSERT_EQUALS("unsigned long f ( ) ;", tokenizeAndStringify(code, settings2_unix32));
8933+
ASSERT_EQUALS("unsigned long f ( ) ;", tokenizeAndStringify(code, settings2_unix64));
89318934
}
89328935
{
89338936
const char code[] = "ssize_t f();";
8934-
ASSERT_EQUALS("long f ( ) ;", tokenizeAndStringify(code, dinit(TokenizeOptions, $.platform = Platform::Type::Unix32)));
8935-
ASSERT_EQUALS("long f ( ) ;", tokenizeAndStringify(code, dinit(TokenizeOptions, $.platform = Platform::Type::Unix64)));
8937+
ASSERT_EQUALS("long f ( ) ;", tokenizeAndStringify(code, settings2_unix32));
8938+
ASSERT_EQUALS("long f ( ) ;", tokenizeAndStringify(code, settings2_unix64));
89368939
}
89378940
{
89388941
const char code[] = "std::ptrdiff_t f();";
8939-
ASSERT_EQUALS("long f ( ) ;", tokenizeAndStringify(code, dinit(TokenizeOptions, $.platform = Platform::Type::Unix32)));
8940-
ASSERT_EQUALS("long f ( ) ;", tokenizeAndStringify(code, dinit(TokenizeOptions, $.platform = Platform::Type::Unix64)));
8942+
ASSERT_EQUALS("long f ( ) ;", tokenizeAndStringify(code, settings2_unix32));
8943+
ASSERT_EQUALS("long f ( ) ;", tokenizeAndStringify(code, settings2_unix64));
89418944
}
89428945
}
89438946

0 commit comments

Comments
 (0)