From fa081bd1db9e9daf5b4beaacb829807757c79216 Mon Sep 17 00:00:00 2001 From: firewave Date: Thu, 27 Jul 2023 13:43:58 +0200 Subject: [PATCH] CppCheckExecutor: report all addon loading failures at once --- cli/cppcheckexecutor.cpp | 6 ++++-- test/cli/test-other.py | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cli/cppcheckexecutor.cpp b/cli/cppcheckexecutor.cpp index 6a1a930aa2d1..24e93deb591f 100644 --- a/cli/cppcheckexecutor.cpp +++ b/cli/cppcheckexecutor.cpp @@ -411,16 +411,18 @@ bool CppCheckExecutor::loadLibraries(Settings& settings) bool CppCheckExecutor::loadAddons(Settings& settings) { + bool result = true; for (const std::string &addon: settings.addons) { AddonInfo addonInfo; const std::string failedToGetAddonInfo = addonInfo.getAddonInfo(addon, settings.exename); if (!failedToGetAddonInfo.empty()) { std::cout << failedToGetAddonInfo << std::endl; - return false; + result = false; + continue; } settings.addonInfos.emplace_back(std::move(addonInfo)); } - return true; + return result; } #ifdef _WIN32 diff --git a/test/cli/test-other.py b/test/cli/test-other.py index 2a27f96d521d..4a75ba619657 100644 --- a/test/cli/test-other.py +++ b/test/cli/test-other.py @@ -555,9 +555,14 @@ def test_showtime_top5_file(tmpdir): def test_missing_addon(tmpdir): - args = ['--addon=misra2', 'file.c'] + args = ['--addon=misra3', '--addon=misra', '--addon=misra2', 'file.c'] exitcode, stdout, stderr = cppcheck(args) assert exitcode == 1 - assert stdout == 'Did not find addon misra2.py\n' + lines = stdout.splitlines() + lines.sort() + assert lines == [ + 'Did not find addon misra2.py', + 'Did not find addon misra3.py' + ] assert stderr == ""