@@ -116,10 +116,23 @@ class TestCmdlineParser : public TestFixture {
116116 logger->destroy ();
117117 }
118118
119- void asPremium () {
120- // set this so we think it is the premium
121- settings->premium = true ;
122- }
119+ class AsPremium {
120+ public:
121+ AsPremium (Settings* settings): settings(settings), productName(settings->cppcheckCfgProductName), premium(settings->premium)
122+ {
123+ // set this so we think it is the premium
124+ settings->cppcheckCfgProductName = " Cppcheck Premium 0.0.0" ;
125+ settings->premium = true ;
126+ }
127+ ~AsPremium () {
128+ settings->cppcheckCfgProductName = productName;
129+ settings->premium = premium;
130+ }
131+ private:
132+ Settings* const settings;
133+ const std::string productName;
134+ const bool premium;
135+ };
123136
124137 template <size_t size>
125138 CmdLineParser::Result parseFromArgs (const char * const (&argv)[size]) {
@@ -1533,7 +1546,7 @@ class TestCmdlineParser : public TestFixture {
15331546
15341547 void premiumOptions1 () {
15351548 REDIRECT;
1536- asPremium ();
1549+ AsPremium asPremium (settings. get () );
15371550 const char * const argv[] = {" cppcheck" , " --premium=autosar" , " file.c" };
15381551 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
15391552 ASSERT (settings->severity .isEnabled (Severity::error));
@@ -1542,7 +1555,7 @@ class TestCmdlineParser : public TestFixture {
15421555
15431556 void premiumOptions2 () {
15441557 REDIRECT;
1545- asPremium ();
1558+ AsPremium asPremium (settings. get () );
15461559 const char * const argv[] = {" cppcheck" , " --premium=misra-c-2012" , " file.c" };
15471560 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
15481561 ASSERT (settings->severity .isEnabled (Severity::error));
@@ -1551,7 +1564,7 @@ class TestCmdlineParser : public TestFixture {
15511564
15521565 void premiumOptions3 () {
15531566 REDIRECT;
1554- asPremium ();
1567+ AsPremium asPremium (settings. get () );
15551568 const char * const argv[] = {" cppcheck" , " --premium=misra-c++-2023" , " file.c" };
15561569 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
15571570 ASSERT (settings->severity .isEnabled (Severity::error));
@@ -1560,7 +1573,7 @@ class TestCmdlineParser : public TestFixture {
15601573
15611574 void premiumOptions4 () {
15621575 REDIRECT;
1563- asPremium ();
1576+ AsPremium asPremium (settings. get () );
15641577 const char * const argv[] = {" cppcheck" , " --premium=cert-c++-2016" , " file.c" };
15651578 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
15661579 ASSERT (settings->severity .isEnabled (Severity::error));
@@ -1569,7 +1582,7 @@ class TestCmdlineParser : public TestFixture {
15691582
15701583 void premiumOptions5 () {
15711584 REDIRECT;
1572- asPremium ();
1585+ AsPremium asPremium (settings. get () );
15731586 const char * const argv[] = {" cppcheck" , " --premium=safety" , " file.c" };
15741587 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
15751588 ASSERT (settings->severity .isEnabled (Severity::error));
@@ -1578,7 +1591,7 @@ class TestCmdlineParser : public TestFixture {
15781591
15791592 void premiumOptionsAll () {
15801593 REDIRECT;
1581- asPremium ();
1594+ AsPremium asPremium (settings. get () );
15821595 const char * const argv[] = {
15831596 " cppcheck" ,
15841597 " --premium=autosar:all" ,
@@ -1595,7 +1608,7 @@ class TestCmdlineParser : public TestFixture {
15951608
15961609 void premiumOptionsMetrics () {
15971610 REDIRECT;
1598- asPremium ();
1611+ AsPremium asPremium (settings. get () );
15991612 const char * const argv[] = {" cppcheck" , " --premium=metrics" , " file.c" };
16001613 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
16011614 ASSERT_EQUALS (" --metrics" , settings->premiumArgs );
@@ -1606,47 +1619,47 @@ class TestCmdlineParser : public TestFixture {
16061619
16071620 void premiumOptionsCertCIntPrecision () {
16081621 REDIRECT;
1609- asPremium ();
1622+ AsPremium asPremium (settings. get () );
16101623 const char * const argv[] = {" cppcheck" , " --premium-cert-c-int-precision=12" , " file.c" };
16111624 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
16121625 ASSERT_EQUALS (" --cert-c-int-precision=12" , settings->premiumArgs );
16131626 }
16141627
16151628 void premiumOptionsLicenseFile () {
16161629 REDIRECT;
1617- asPremium ();
1630+ AsPremium asPremium (settings. get () );
16181631 const char * const argv[] = {" cppcheck" , " --premium-license-file=file.lic" , " file.c" };
16191632 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
16201633 ASSERT_EQUALS (" --license-file=file.lic" , settings->premiumArgs );
16211634 }
16221635
16231636 void premiumOptionsInvalid1 () {
16241637 REDIRECT;
1625- asPremium ();
1638+ AsPremium asPremium (settings. get () );
16261639 const char * const argv[] = {" cppcheck" , " --premium=misra" , " file.c" };
16271640 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parseFromArgs (argv));
16281641 ASSERT_EQUALS (" cppcheck: error: invalid --premium option 'misra'.\n " , logger->str ());
16291642 }
16301643
16311644 void premiumOptionsInvalid2 () {
16321645 REDIRECT;
1633- asPremium ();
1646+ AsPremium asPremium (settings. get () );
16341647 const char * const argv[] = {" cppcheck" , " --premium=cert" , " file.c" };
16351648 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parseFromArgs (argv));
16361649 ASSERT_EQUALS (" cppcheck: error: invalid --premium option 'cert'.\n " , logger->str ());
16371650 }
16381651
16391652 void premiumSafety () {
16401653 REDIRECT;
1641- asPremium ();
1654+ AsPremium asPremium (settings. get () );
16421655 const char * const argv[] = {" cppcheck" , " --premium=safety" , " file.cpp" };
16431656 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
16441657 ASSERT_EQUALS (true , settings->safety );
16451658 }
16461659
16471660 void premiumDebugProgress () {
16481661 REDIRECT;
1649- asPremium ();
1662+ AsPremium asPremium (settings. get () );
16501663 const char * const argv[] = {" cppcheck" , " --premium=debug-progress" , " file.cpp" };
16511664 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
16521665 ASSERT_EQUALS (" --debug-progress" , settings->premiumArgs );
0 commit comments