@@ -499,6 +499,8 @@ class TestCmdlineParser : public TestFixture {
499499 TEST_CASE (noSafetyOverride);
500500 TEST_CASE (debugAnalyzerinfo);
501501 TEST_CASE (debugIpc);
502+ TEST_CASE (wholeProgram);
503+ TEST_CASE (noWholeProgram);
502504
503505 TEST_CASE (ignorepaths1);
504506 TEST_CASE (ignorepaths2);
@@ -1381,13 +1383,15 @@ class TestCmdlineParser : public TestFixture {
13811383 const char * const argv[] = {" cppcheck" , " -j" , " 3" , " file.cpp" };
13821384 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
13831385 ASSERT_EQUALS (3 , settings->jobs );
1386+ ASSERT_EQUALS (" cppcheck: disabling whole program analysis as it requires --cppcheck-build-dir to be active with -j.\n " , logger->str ());
13841387 }
13851388
13861389 void jobs2 () {
13871390 REDIRECT;
13881391 const char * const argv[] = {" cppcheck" , " -j3" , " file.cpp" };
13891392 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
13901393 ASSERT_EQUALS (3 , settings->jobs );
1394+ ASSERT_EQUALS (" cppcheck: disabling whole program analysis as it requires --cppcheck-build-dir to be active with -j.\n " , logger->str ());
13911395 }
13921396
13931397 void jobsMissingCount () {
@@ -3057,6 +3061,7 @@ class TestCmdlineParser : public TestFixture {
30573061#elif defined(HAS_THREADING_MODEL_THREAD)
30583062 ASSERT_EQUALS_ENUM (Settings::ExecutorType::Thread, settings->executor );
30593063#endif
3064+ ASSERT_EQUALS (" cppcheck: disabling whole program analysis as it requires --cppcheck-build-dir to be active with -j.\n " , logger->str ());
30603065 }
30613066
30623067 void executorAutoNoJobs () {
@@ -3076,6 +3081,7 @@ class TestCmdlineParser : public TestFixture {
30763081 const char * const argv[] = {" cppcheck" , " -j2" , " --executor=thread" , " file.cpp" };
30773082 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
30783083 ASSERT_EQUALS_ENUM (Settings::ExecutorType::Thread, settings->executor );
3084+ ASSERT_EQUALS (" cppcheck: disabling whole program analysis as it requires --cppcheck-build-dir to be active with -j.\n " , logger->str ());
30793085 }
30803086
30813087 void executorThreadNoJobs () {
@@ -3100,6 +3106,7 @@ class TestCmdlineParser : public TestFixture {
31003106 const char * const argv[] = {" cppcheck" , " -j2" , " --executor=process" , " file.cpp" };
31013107 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
31023108 ASSERT_EQUALS_ENUM (Settings::ExecutorType::Process, settings->executor );
3109+ ASSERT_EQUALS (" cppcheck: disabling whole program analysis as it requires --cppcheck-build-dir to be active with -j.\n " , logger->str ());
31033110 }
31043111
31053112 void executorProcessNoJobs () {
@@ -3495,6 +3502,20 @@ class TestCmdlineParser : public TestFixture {
34953502 ASSERT_EQUALS (true , settings->debugipc );
34963503 }
34973504
3505+ void wholeProgram () {
3506+ REDIRECT;
3507+ const char * const argv[] = {" cppcheck" , " --whole-program" , " file.cpp" };
3508+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
3509+ ASSERT_EQUALS (true , settings->wholeProgram );
3510+ }
3511+
3512+ void noWholeProgram () {
3513+ REDIRECT;
3514+ const char * const argv[] = {" cppcheck" , " --no-whole-program" , " file.cpp" };
3515+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
3516+ ASSERT_EQUALS (false , settings->wholeProgram );
3517+ }
3518+
34983519 void ignorepaths1 () {
34993520 REDIRECT;
35003521 const char * const argv[] = {" cppcheck" , " -isrc" , " file.cpp" };
0 commit comments