| 42 | class ErrorLogger; |
| 43 | |
| 44 | class TestTokenizer : public TestFixture { |
| 45 | public: |
| 46 | TestTokenizer() : TestFixture("TestTokenizer") {} |
| 47 | |
| 48 | private: |
| 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 |
nothing calls this directly
no test coverage detected