Skip to content

Commit d745686

Browse files
committed
review, refactor
1 parent 72e573d commit d745686

1 file changed

Lines changed: 30 additions & 17 deletions

File tree

test/testcmdlineparser.cpp

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)