Skip to content

Commit bed2cb6

Browse files
committed
actually only print the summary with --showtime=summary
1 parent aebb72c commit bed2cb6

6 files changed

Lines changed: 30 additions & 3 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -664,7 +664,7 @@ cli/singleexecutor.o: cli/singleexecutor.cpp cli/executor.h cli/singleexecutor.h
664664
cli/stacktrace.o: cli/stacktrace.cpp cli/stacktrace.h lib/config.h lib/utils.h
665665
$(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/stacktrace.cpp
666666

667-
cli/threadexecutor.o: cli/threadexecutor.cpp cli/cppcheckexecutor.h cli/executor.h cli/threadexecutor.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h
667+
cli/threadexecutor.o: cli/threadexecutor.cpp cli/cppcheckexecutor.h cli/executor.h cli/threadexecutor.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/utils.h
668668
$(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/threadexecutor.cpp
669669

670670
test/fixture.o: test/fixture.cpp externals/tinyxml2/tinyxml2.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/utils.h test/fixture.h test/options.h test/redirect.h

cli/threadexecutor.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "errorlogger.h"
2525
#include "importproject.h"
2626
#include "settings.h"
27+
#include "timer.h"
2728

2829
#include <algorithm>
2930
#include <cassert>
@@ -193,7 +194,12 @@ unsigned int ThreadExecutor::check()
193194
}
194195
}
195196

196-
return std::accumulate(threadFutures.begin(), threadFutures.end(), 0U, [](unsigned int v, std::future<unsigned int>& f) {
197+
unsigned int result = std::accumulate(threadFutures.begin(), threadFutures.end(), 0U, [](unsigned int v, std::future<unsigned int>& f) {
197198
return v + f.get();
198199
});
200+
201+
if (mSettings.showtime == SHOWTIME_MODES::SHOWTIME_SUMMARY)
202+
CppCheck::printTimerResultsSummary();
203+
204+
return result;
199205
}

lib/cppcheck.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,9 @@ CppCheck::~CppCheck()
404404
delete mFileInfo.back();
405405
mFileInfo.pop_back();
406406
}
407-
s_timerResults.showResults(mSettings.showtime);
407+
408+
if (mSettings.showtime != SHOWTIME_MODES::SHOWTIME_SUMMARY)
409+
s_timerResults.showResults(mSettings.showtime);
408410

409411
if (mPlistFile.is_open()) {
410412
mPlistFile << ErrorLogger::plistFooter();
@@ -1837,3 +1839,8 @@ void CppCheck::resetTimerResults()
18371839
{
18381840
s_timerResults.reset();
18391841
}
1842+
1843+
void CppCheck::printTimerResultsSummary()
1844+
{
1845+
s_timerResults.showResults(SHOWTIME_MODES::SHOWTIME_SUMMARY);
1846+
}

lib/cppcheck.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ class CPPCHECKLIB CppCheck : ErrorLogger {
142142
void removeCtuInfoFiles(const std::map<std::string, std::size_t>& files); // cppcheck-suppress functionConst // has side effects
143143

144144
static void resetTimerResults();
145+
static void printTimerResultsSummary();
145146

146147
private:
147148
#ifdef HAVE_RULES

releasenotes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ GUI:
99
Changed interface:
1010

1111
Other:
12+
- "--showtime=summary" will now show a single summary at the end instead of showing it after each file when using the thread execution (default on Windows)

test/testthreadexecutor.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ class TestThreadExecutor : public TestFixture {
107107
TEST_CASE(markup);
108108
TEST_CASE(showtime_top5);
109109
TEST_CASE(showtime_file);
110+
TEST_CASE(showtime_summary);
110111
}
111112

112113
void deadlock_with_many_errors() {
@@ -269,6 +270,17 @@ class TestThreadExecutor : public TestFixture {
269270
const std::string output_s = GET_REDIRECT_OUTPUT;
270271
ASSERT_EQUALS(2, find_all_of(output_s, "Overall time:"));
271272
}
273+
274+
void showtime_summary() {
275+
REDIRECT;
276+
check(1, 2, 0,
277+
"int main() {}",
278+
true, SHOWTIME_MODES::SHOWTIME_SUMMARY);
279+
const std::string output_s = GET_REDIRECT_OUTPUT;
280+
// should only report the actual summary once
281+
ASSERT(output_s.find("1 result(s)") == std::string::npos);
282+
ASSERT(output_s.find("2 result(s)") != std::string::npos);
283+
}
272284
};
273285

274286
REGISTER_TEST(TestThreadExecutor)

0 commit comments

Comments
 (0)