MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / TestTokenizer

Class TestTokenizer

test/testtokenize.cpp:44–9083  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42class ErrorLogger;
43
44class TestTokenizer : public TestFixture {
45public:
46 TestTokenizer() : TestFixture("TestTokenizer") {}
47
48private:
49 const Settings settings1 = settingsBuilder().library("std.cfg").debugwarnings().build();
50 const Settings settings2 = settingsBuilder(settings1).cpp(Standards::CPP11).c(Standards::C11).build();
51 const Settings settings2_win32a = settingsBuilder(settings2).platform(Platform::Type::Win32A).build();
52 const Settings settings2_win32w = settingsBuilder(settings2).platform(Platform::Type::Win32W).build();
53 const Settings settings2_win64 = settingsBuilder(settings2).platform(Platform::Type::Win64).build();
54 const Settings settings2_unix32 = settingsBuilder(settings2).platform(Platform::Type::Unix32).build();
55 const Settings settings2_unix64 = settingsBuilder(settings2).platform(Platform::Type::Unix64).build();
56 const Settings settings3 = settingsBuilder().c(Standards::C89).cpp(Standards::CPP03).build();
57 const Settings settings_windows = settingsBuilder().library("windows.cfg").debugwarnings().cpp(Standards::CPP11).build();
58 const Settings settings_win32a = settingsBuilder(settings_windows).platform(Platform::Type::Win32A).build();
59 const Settings settings_win32w = settingsBuilder(settings_windows).platform(Platform::Type::Win32W).build();
60
61 void run() override {
62 mNewTemplate = true;
63 TEST_CASE(tokenize1);
64 TEST_CASE(tokenize2);
65 TEST_CASE(tokenize4);
66 TEST_CASE(tokenize5);
67 TEST_CASE(tokenize7);
68 TEST_CASE(tokenize8);
69 TEST_CASE(tokenize9);
70 TEST_CASE(tokenize11);
71 TEST_CASE(tokenize13); // bailout if the code contains "@" - that is not handled well.
72 TEST_CASE(tokenize14); // tokenize "0X10" => 16
73 TEST_CASE(tokenizeHexWithSuffix); // tokenize 0xFFFFFFul
74 TEST_CASE(tokenize15); // tokenize ".123"
75 TEST_CASE(tokenize17); // #2759
76 TEST_CASE(tokenize18); // tokenize "(X&&Y)" into "( X && Y )" instead of "( X & & Y )"
77 TEST_CASE(tokenize19); // #3006 (segmentation fault)
78 TEST_CASE(tokenize21); // tokenize 0x0E-7
79 TEST_CASE(tokenize22); // special marker $ from preprocessor
80 TEST_CASE(tokenize25); // #4239 (segmentation fault)
81 TEST_CASE(tokenize26); // #4245 (segmentation fault)
82 TEST_CASE(tokenize27); // #4525 (segmentation fault)
83 TEST_CASE(tokenize31); // #3503 (Wrong handling of member function taking function pointer as argument)
84 TEST_CASE(tokenize32); // #5884 (fsanitize=undefined: left shift of negative value -10000 in lib/templatesimplifier.cpp:852:46)
85 TEST_CASE(tokenize33); // #5780 Various crashes on valid template code
86 TEST_CASE(tokenize34); // #8031
87 TEST_CASE(tokenize35); // #8361
88 TEST_CASE(tokenize36); // #8436
89 TEST_CASE(tokenize37); // #8550
90 TEST_CASE(tokenize38); // #9569
91 TEST_CASE(tokenize39); // #9771
92 TEST_CASE(tokenize40); // #13181
93 TEST_CASE(tokenize41); // #13847
94 TEST_CASE(tokenize42); // #13861
95
96 TEST_CASE(validate);
97
98 TEST_CASE(objectiveC); // Syntax error should be written for objective C/C++ code.
99
100 TEST_CASE(syntax_case_default);
101

Callers

nothing calls this directly

Calls 4

buildMethod · 0.80
debugwarningsMethod · 0.80
libraryMethod · 0.80
cppMethod · 0.80

Tested by

no test coverage detected