From 1f1a576403f7cbf76f471563134fc4c44b908b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Fri, 30 May 2025 17:17:50 +0200 Subject: [PATCH] Fix #13799 (premium options to generate metrics report) --- cli/cmdlineparser.cpp | 1 + test/testcmdlineparser.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/cli/cmdlineparser.cpp b/cli/cmdlineparser.cpp index 1e43930ddb1..0af9d677b91 100644 --- a/cli/cmdlineparser.cpp +++ b/cli/cmdlineparser.cpp @@ -1136,6 +1136,7 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a "cert-c-2016", "cert-c++-2016", "cert-cpp-2016", + "metrics", "misra-c-2012", "misra-c-2023", "misra-c++-2008", diff --git a/test/testcmdlineparser.cpp b/test/testcmdlineparser.cpp index 1d9a7fd2c1c..349d690e4f5 100644 --- a/test/testcmdlineparser.cpp +++ b/test/testcmdlineparser.cpp @@ -234,6 +234,7 @@ class TestCmdlineParser : public TestFixture { TEST_CASE(premiumOptions3); TEST_CASE(premiumOptions4); TEST_CASE(premiumOptions5); + TEST_CASE(premiumOptionsMetrics); TEST_CASE(premiumOptionsCertCIntPrecision); TEST_CASE(premiumOptionsLicenseFile); TEST_CASE(premiumOptionsInvalid1); @@ -1437,6 +1438,17 @@ class TestCmdlineParser : public TestFixture { ASSERT_EQUALS(false, settings->severity.isEnabled(Severity::warning)); } + void premiumOptionsMetrics() { + REDIRECT; + asPremium(); + const char * const argv[] = {"cppcheck", "--premium=metrics", "file.c"}; + ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parseFromArgs(argv)); + ASSERT_EQUALS("--metrics", settings->premiumArgs); + ASSERT(settings->severity.isEnabled(Severity::error)); + ASSERT_EQUALS(false, settings->severity.isEnabled(Severity::warning)); + ASSERT_EQUALS(false, settings->severity.isEnabled(Severity::portability)); + } + void premiumOptionsCertCIntPrecision() { REDIRECT; asPremium();