@@ -204,6 +204,8 @@ class TestCmdlineParser : public TestFixture {
204204 TEST_CASE (exitcodeSuppressionsOld);
205205 TEST_CASE (exitcodeSuppressions);
206206 TEST_CASE (exitcodeSuppressionsNoFile);
207+ TEST_CASE (fileFilterFileWithDetailsSimplifiedPath);
208+ TEST_CASE (fileFilterFileWithDetailsCase);
207209 TEST_CASE (fileFilterStdin);
208210 TEST_CASE (fileList);
209211 TEST_CASE (fileListNoFile);
@@ -1181,6 +1183,26 @@ class TestCmdlineParser : public TestFixture {
11811183 ASSERT_EQUALS (" cppcheck: error: unrecognized command line option: \" --exitcode-suppressions\" .\n " , logger->str ());
11821184 }
11831185
1186+ void fileFilterFileWithDetailsSimplifiedPath () {
1187+ // match against simplified path
1188+ const std::vector<std::string> fileFilters{" m1.c" };
1189+ const std::list<FileWithDetails> filesResolved{ FileWithDetails (" ./m1.c" , Standards::Language::C, 123 ) };
1190+ std::list<FileWithDetails> files = CmdLineParser::filterFiles (fileFilters, filesResolved);
1191+ ASSERT_EQUALS (1U , files.size ());
1192+ }
1193+
1194+ void fileFilterFileWithDetailsCase () {
1195+ // in windows, paths are case insensitive
1196+ const std::vector<std::string> fileFilters{" m1.c" };
1197+ const std::list<FileWithDetails> filesResolved{ FileWithDetails (" M1.C" , Standards::Language::C, 123 ) };
1198+ std::list<FileWithDetails> files = CmdLineParser::filterFiles (fileFilters, filesResolved);
1199+ #ifdef _WIN32
1200+ ASSERT_EQUALS (1U , files.size ());
1201+ #else
1202+ ASSERT_EQUALS (0U , files.size ());
1203+ #endif
1204+ }
1205+
11841206 void fileFilterStdin () {
11851207 REDIRECT;
11861208 RedirectInput input (" file1.c\n file2.cpp\n " );
0 commit comments