Skip to content

Commit e35e9cb

Browse files
committed
Fix #15025 (settings: match cert c premium options better)
1 parent f81f6f0 commit e35e9cb

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

‎lib/settings.cpp‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -759,16 +759,22 @@ bool Settings::isPremiumEnabled(const char id[]) const
759759
return false;
760760
if (premiumArgs.find("autosar") != std::string::npos && autosarCheckers.count(id))
761761
return true;
762-
if (premiumArgs.find("cert-c-") != std::string::npos && certCCheckers.count(id))
763-
return true;
764762
if (premiumArgs.find("cert-c++") != std::string::npos && certCppCheckers.count(id))
765763
return true;
764+
if (premiumArgs.find("cert-cpp") != std::string::npos && certCppCheckers.count(id))
765+
return true;
766+
if (premiumArgs.find("cert-c") != std::string::npos && certCCheckers.count(id))
767+
return true;
766768
if (premiumArgs.find("misra-c-") != std::string::npos && (misrac2012Checkers.count(id) || misrac2023Checkers.count(id) || misrac2025Checkers.count(id)))
767769
return true;
768770
if (premiumArgs.find("misra-c++-2008") != std::string::npos && misracpp2008Checkers.count(id))
769771
return true;
772+
if (premiumArgs.find("misra-cpp-2008") != std::string::npos && misracpp2008Checkers.count(id))
773+
return true;
770774
if (premiumArgs.find("misra-c++-2023") != std::string::npos && misracpp2023Checkers.count(id))
771775
return true;
776+
if (premiumArgs.find("misra-cpp-2023") != std::string::npos && misracpp2023Checkers.count(id))
777+
return true;
772778
return false;
773779
}
774780

‎test/testsettings.cpp‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ class TestSettings : public TestFixture {
4242
TEST_CASE(getMaxConfigsDefines);
4343
TEST_CASE(getMaxConfigsDefinesAndOpt);
4444
TEST_CASE(getMaxConfigsOptAndProject);
45+
46+
TEST_CASE(isPremiumEnabledCert);
4547
}
4648

4749
void simpleEnableGroup() const {
@@ -356,6 +358,14 @@ class TestSettings : public TestFixture {
356358
s.maxConfigsProject = 10;
357359
ASSERT_EQUALS(3, s.getMaxConfigs());
358360
}
361+
362+
void isPremiumEnabledCert() const {
363+
Settings s;
364+
s.premiumArgs = "cert-c-2016";
365+
ASSERT(s.isPremiumEnabled("uninitvar"));
366+
s.premiumArgs = "cert-c";
367+
ASSERT(s.isPremiumEnabled("uninitvar"));
368+
}
359369
};
360370

361371
REGISTER_TEST(TestSettings)

0 commit comments

Comments
 (0)