Fix warnings in ExtraTests and Examples

This commit is contained in:
Martin Hořeňovský 2020-02-25 12:39:40 +01:00
parent 33b47f7309
commit d1ffaf55a1
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
8 changed files with 27 additions and 12 deletions

View File

@ -6,7 +6,7 @@
// And write tests in the same file: // And write tests in the same file:
#include <catch2/catch.hpp> #include <catch2/catch.hpp>
int Factorial( int number ) { static int Factorial( int number ) {
return number <= 1 ? number : Factorial( number - 1 ) * number; // fail return number <= 1 ? number : Factorial( number - 1 ) * number; // fail
// return number <= 1 ? 1 : Factorial( number - 1 ) * number; // pass // return number <= 1 ? 1 : Factorial( number - 1 ) * number; // pass
} }

View File

@ -4,7 +4,7 @@
#include <catch2/catch.hpp> #include <catch2/catch.hpp>
int Factorial( int number ) { static int Factorial( int number ) {
return number <= 1 ? number : Factorial( number - 1 ) * number; // fail return number <= 1 ? number : Factorial( number - 1 ) * number; // fail
// return number <= 1 ? 1 : Factorial( number - 1 ) * number; // pass // return number <= 1 ? 1 : Factorial( number - 1 ) * number; // pass
} }

View File

@ -12,7 +12,7 @@
#include <catch2/catch.hpp> #include <catch2/catch.hpp>
std::string one() { static std::string one() {
return "1"; return "1";
} }

View File

@ -19,6 +19,8 @@
// 1. Printing of listener data: // 1. Printing of listener data:
// //
namespace {
std::string ws(int const level) { std::string ws(int const level) {
return std::string( 2 * level, ' ' ); return std::string( 2 * level, ' ' );
} }
@ -34,7 +36,6 @@ std::ostream& operator<<( std::ostream& os, std::vector<T> const& v ) {
os << x << ", "; os << x << ", ";
return os << "}"; return os << "}";
} }
// struct SourceLineInfo { // struct SourceLineInfo {
// char const* file; // char const* file;
// std::size_t line; // std::size_t line;
@ -281,8 +282,8 @@ void print( std::ostream& os, int const level, std::string const& title, Catch::
print( os, level+1 , "- getSourceInfo(): ", info.getSourceInfo() ); print( os, level+1 , "- getSourceInfo(): ", info.getSourceInfo() );
os << ws(level+1) << "- getTestMacroName(): '" << info.getTestMacroName() << "'\n"; os << ws(level+1) << "- getTestMacroName(): '" << info.getTestMacroName() << "'\n";
// print( os, level+1 , "- *** m_info (AssertionInfo)", info.m_info ); print( os, level+1 , "- *** m_info (AssertionInfo)", info.m_info );
// print( os, level+1 , "- *** m_resultData (AssertionResultData)", info.m_resultData ); print( os, level+1 , "- *** m_resultData (AssertionResultData)", info.m_resultData );
} }
// struct AssertionStats { // struct AssertionStats {
@ -305,6 +306,7 @@ void print( std::ostream& os, int const level, std::string const& title, Catch::
char const * dashed_line = char const * dashed_line =
"--------------------------------------------------------------------------"; "--------------------------------------------------------------------------";
struct MyListener : Catch::TestEventListenerBase { struct MyListener : Catch::TestEventListenerBase {
using TestEventListenerBase::TestEventListenerBase; // inherit constructor using TestEventListenerBase::TestEventListenerBase; // inherit constructor
@ -375,6 +377,8 @@ struct MyListener : Catch::TestEventListenerBase {
} }
}; };
} // end anonymous namespace
CATCH_REGISTER_LISTENER( MyListener ) CATCH_REGISTER_LISTENER( MyListener )
// Get rid of Wweak-tables // Get rid of Wweak-tables

View File

@ -10,6 +10,8 @@
#include <random> #include <random>
namespace {
// This class shows how to implement a simple generator for Catch tests // This class shows how to implement a simple generator for Catch tests
class RandomIntGenerator : public Catch::Generators::IGenerator<int> { class RandomIntGenerator : public Catch::Generators::IGenerator<int> {
std::minstd_rand m_rand; std::minstd_rand m_rand;
@ -45,6 +47,8 @@ Catch::Generators::GeneratorWrapper<int> random(int low, int high) {
); );
} }
} // end anonymous namespaces
// The two sections in this test case are equivalent, but the first one // The two sections in this test case are equivalent, but the first one
// is much more readable/nicer to use // is much more readable/nicer to use
TEST_CASE("Generating random ints", "[example][generator]") { TEST_CASE("Generating random ints", "[example][generator]") {

View File

@ -8,6 +8,8 @@
#include <string> #include <string>
#include <sstream> #include <sstream>
namespace {
// Returns a line from a stream. You could have it e.g. read lines from // Returns a line from a stream. You could have it e.g. read lines from
// a file, but to avoid problems with paths in examples, we will use // a file, but to avoid problems with paths in examples, we will use
// a fixed stringstream. // a fixed stringstream.
@ -42,6 +44,7 @@ Catch::Generators::GeneratorWrapper<std::string> lines(std::string /* ignored fo
); );
} }
} // end anonymous namespace
TEST_CASE("filter can convert types inside the generator expression", "[example][generator]") { TEST_CASE("filter can convert types inside the generator expression", "[example][generator]") {

View File

@ -11,11 +11,13 @@
#include <type_traits> #include <type_traits>
#include <stdexcept> #include <stdexcept>
[[noreturn]] namespace {
void this_throws() { [[noreturn]]
void this_throws() {
throw std::runtime_error("Some msg"); throw std::runtime_error("Some msg");
}
void this_doesnt_throw() {}
} }
void this_doesnt_throw() {}
CATCH_TEST_CASE("PrefixedMacros") { CATCH_TEST_CASE("PrefixedMacros") {
using namespace Catch::Matchers; using namespace Catch::Matchers;

View File

@ -7,9 +7,11 @@
#include <catch2/catch_default_main.hpp> #include <catch2/catch_default_main.hpp>
#include <catch2/catch_test_macros.hpp> #include <catch2/catch_test_macros.hpp>
struct Hidden {}; namespace {
struct Hidden {};
bool operator==(Hidden, Hidden) { return true; } bool operator==(Hidden, Hidden) { return true; }
}
TEST_CASE("DisableStringification") { TEST_CASE("DisableStringification") {
REQUIRE( Hidden{} == Hidden{} ); REQUIRE( Hidden{} == Hidden{} );