--min-duration is overriden by -d no

This commit is contained in:
Martin Hořeňovský 2020-07-06 20:33:08 +02:00
parent 4eb9d37e05
commit 6f7c191513
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
3 changed files with 20 additions and 6 deletions

View File

@ -42,10 +42,14 @@ namespace Catch {
} }
bool shouldShowDuration( IConfig const& config, double duration ) { bool shouldShowDuration( IConfig const& config, double duration ) {
if( config.showDurations() == ShowDurations::Always ) if ( config.showDurations() == ShowDurations::Always ) {
return true; return true;
double min = config.minDuration(); }
return min >= 0 && duration >= min; if ( config.showDurations() == ShowDurations::Never ) {
return false;
}
const double min = config.minDuration();
return min >= 0 && duration >= min;
} }
std::string serializeFilters( std::vector<std::string> const& container ) { std::string serializeFilters( std::vector<std::string> const& container ) {

View File

@ -25,7 +25,8 @@ namespace Catch {
// Returns double formatted as %.3f (format expected on output) // Returns double formatted as %.3f (format expected on output)
std::string getFormattedDuration( double duration ); std::string getFormattedDuration( double duration );
bool shouldShowDuration( IConfig const &, double duration ); //! Should the reporter show
bool shouldShowDuration( IConfig const& config, double duration );
std::string serializeFilters( std::vector<std::string> const& container ); std::string serializeFilters( std::vector<std::string> const& container );
@ -54,7 +55,7 @@ namespace Catch {
void noMatchingTestCases(std::string const&) override {} void noMatchingTestCases(std::string const&) override {}
void reportInvalidArguments(std::string const&) override {} void reportInvalidArguments(std::string const&) override {}
void testRunStarting(TestRunInfo const& _testRunInfo) override { void testRunStarting(TestRunInfo const& _testRunInfo) override {
currentTestRunInfo = _testRunInfo; currentTestRunInfo = _testRunInfo;
} }

View File

@ -32,6 +32,15 @@ set_tests_properties(
PASS_REGULAR_EXPRESSION "s: sleep_for_100ms" PASS_REGULAR_EXPRESSION "s: sleep_for_100ms"
) )
# -d no overrides the threshold, so we should never see any tests even
# with ridiculously low min duration threshold
add_test(NAME MinDuration::DurationOverrideNo COMMAND $<TARGET_FILE:SelfTest> --min-duration 0.0001 -d no [min_duration_test])
set_tests_properties(
MinDuration::DurationOverrideNo
PROPERTIES
FAIL_REGULAR_EXPRESSION "sleep_for_200ms"
)
# ------------ end of duration reporting tests # ------------ end of duration reporting tests