Skip to content

Commit 85d90bf

Browse files
committed
Fix #15025 (settings: match cert c premium options better)
1 parent 982b140 commit 85d90bf

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
@@ -795,16 +795,22 @@ bool Settings::isPremiumEnabled(const char id[]) const
795795
return false;
796796
if (premiumArgs.find("autosar") != std::string::npos && autosarCheckers.count(id))
797797
return true;
798-
if (premiumArgs.find("cert-c-") != std::string::npos && certCCheckers.count(id))
799-
return true;
800798
if (premiumArgs.find("cert-c++") != std::string::npos && certCppCheckers.count(id))
801799
return true;
800+
if (premiumArgs.find("cert-cpp") != std::string::npos && certCppCheckers.count(id))
801+
return true;
802+
if (premiumArgs.find("cert-c") != std::string::npos && certCCheckers.count(id))
803+
return true;
802804
if (premiumArgs.find("misra-c-") != std::string::npos && (misrac2012Checkers.count(id) || misrac2023Checkers.count(id) || misrac2025Checkers.count(id)))
803805
return true;
804806
if (premiumArgs.find("misra-c++-2008") != std::string::npos && misracpp2008Checkers.count(id))
805807
return true;
808+
if (premiumArgs.find("misra-cpp-2008") != std::string::npos && misracpp2008Checkers.count(id))
809+
return true;
806810
if (premiumArgs.find("misra-c++-2023") != std::string::npos && misracpp2023Checkers.count(id))
807811
return true;
812+
if (premiumArgs.find("misra-cpp-2023") != std::string::npos && misracpp2023Checkers.count(id))
813+
return true;
808814
return false;
809815
}
810816

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)