mirror of
https://github.com/catchorg/Catch2.git
synced 2025-08-02 05:15:39 +02:00
Provide 1 .hpp + 1 .cpp distribution of Catch2
This commits also adds a script that does the amalgamation of headers and .cpp files into the distributable version, removes the old `generateSingleHeader` script, and also adds a very simple compilation test for the amalgamated distribution.
This commit is contained in:
@@ -203,3 +203,24 @@ endforeach()
|
||||
list(FILTER EXTRA_TEST_BINARIES EXCLUDE REGEX "DisabledExceptions.*")
|
||||
list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES})
|
||||
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
||||
|
||||
|
||||
# This sets up a one-off executable that compiles against the amalgamated
|
||||
# files, and then runs it for a super simple check that the amalgamated
|
||||
# files are usable.
|
||||
add_executable(AmalgamatedTestCompilation
|
||||
${TESTS_DIR}/X91-AmalgamatedCatch.cpp
|
||||
${CATCH_DIR}/extras/catch_amalgamated.hpp
|
||||
${CATCH_DIR}/extras/catch_amalgamated.cpp
|
||||
)
|
||||
target_include_directories(AmalgamatedTestCompilation PRIVATE ${CATCH_DIR}/extras)
|
||||
set_property( TARGET AmalgamatedTestCompilation PROPERTY CXX_STANDARD 14 )
|
||||
set_property( TARGET AmalgamatedTestCompilation PROPERTY CXX_STANDARD_REQUIRED ON )
|
||||
set_property( TARGET AmalgamatedTestCompilation PROPERTY CXX_EXTENSIONS OFF )
|
||||
|
||||
add_test(NAME AmalgamatedFileTest COMMAND AmalgamatedTestCompilation)
|
||||
set_tests_properties(
|
||||
AmalgamatedFileTest
|
||||
PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION "All tests passed \\(14 assertions in 3 test cases\\)"
|
||||
)
|
||||
|
31
tests/ExtraTests/X91-AmalgamatedCatch.cpp
Normal file
31
tests/ExtraTests/X91-AmalgamatedCatch.cpp
Normal file
@@ -0,0 +1,31 @@
|
||||
/**\file
|
||||
*
|
||||
* This file serves as a simple compilation test against the amalgamated
|
||||
* version of Catch2.
|
||||
*/
|
||||
|
||||
#include "catch_amalgamated.hpp"
|
||||
|
||||
TEST_CASE("Just a dummy test") {
|
||||
auto i = GENERATE(1, 2, 3);
|
||||
SECTION("a") {
|
||||
REQUIRE(1 != 4);
|
||||
}
|
||||
SECTION("b") {
|
||||
CHECK(1 != 5);
|
||||
}
|
||||
REQUIRE_THAT(1,
|
||||
Catch::Matchers::Predicate<int>([](int i) {
|
||||
return i % 2 == 1;
|
||||
}));
|
||||
}
|
||||
|
||||
TEMPLATE_TEST_CASE("Trivial template test case", "", char, short) {
|
||||
STATIC_REQUIRE(sizeof(TestType) <= sizeof(int));
|
||||
}
|
||||
|
||||
TEST_CASE("Benchmark test", "[!benchmark]") {
|
||||
BENCHMARK("Allocation benchmark") {
|
||||
return std::vector<int>(10);
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user