mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-25 06:46:10 +01:00
Remove catch_default_main.hpp
There are two reasons for this: 1) It is highly unlikely that someone has use for this header, which has no customization points and only provides simplest possible main, and cannot link the static library which also provides a default main implementation. 2) It being a header was causing extra complications with the convenience headers, and our checking script. This would either require special handling in the checking script, or would break user's of the main convenience header. All in all, it is simpler and better in the long term to remove it, than to fix its problems.
This commit is contained in:
parent
e78b4f6be7
commit
db32550898
@ -37,6 +37,14 @@ include(CTest)
|
|||||||
# than later in the install block
|
# than later in the install block
|
||||||
set(CATCH_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Catch2")
|
set(CATCH_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Catch2")
|
||||||
|
|
||||||
|
# We have some Windows builds that test `wmain` entry point,
|
||||||
|
# and we need this change to be present in all binaries that
|
||||||
|
# are built during these tests, so this is required here, before
|
||||||
|
# the subdirectories are added.
|
||||||
|
if(CATCH_TEST_USE_WMAIN)
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ENTRY:wmainCRTStartup")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# Basic paths
|
# Basic paths
|
||||||
set(CATCH_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
set(CATCH_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
@ -76,9 +84,6 @@ endif()
|
|||||||
#
|
#
|
||||||
#set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
#set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
#
|
#
|
||||||
#if(USE_WMAIN)
|
|
||||||
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ENTRY:wmainCRTStartup")
|
|
||||||
#endif()
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
// 010-TestCase.cpp
|
// 010-TestCase.cpp
|
||||||
|
|
||||||
// Let Catch provide main():
|
|
||||||
#include <catch2/internal/catch_default_main.hpp>
|
|
||||||
|
|
||||||
// And write tests in the same file:
|
// And write tests in the same file:
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
|
@ -1,11 +1,5 @@
|
|||||||
// 020-TestCase-1.cpp
|
// 020-TestCase-1.cpp
|
||||||
|
|
||||||
// In a Catch project with multiple files, dedicate one file to compile the
|
|
||||||
// source code of Catch itself and reuse the resulting object file for linking.
|
|
||||||
|
|
||||||
// Let Catch provide main():
|
|
||||||
#include <catch2/internal/catch_default_main.hpp>
|
|
||||||
|
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
TEST_CASE( "1: All test cases reside in other .cpp files (empty)", "[multi-file:1]" ) {
|
TEST_CASE( "1: All test cases reside in other .cpp files (empty)", "[multi-file:1]" ) {
|
||||||
|
@ -5,9 +5,6 @@
|
|||||||
// semantic, because it buffers the output. For most uses however,
|
// semantic, because it buffers the output. For most uses however,
|
||||||
// there is no important difference between having `std::cerr` buffered
|
// there is no important difference between having `std::cerr` buffered
|
||||||
// or unbuffered.
|
// or unbuffered.
|
||||||
|
|
||||||
#include <catch2/internal/catch_default_main.hpp>
|
|
||||||
|
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -55,7 +55,6 @@ set(INTERNAL_HEADERS
|
|||||||
${SOURCES_DIR}/internal/catch_debug_console.hpp
|
${SOURCES_DIR}/internal/catch_debug_console.hpp
|
||||||
${SOURCES_DIR}/internal/catch_debugger.hpp
|
${SOURCES_DIR}/internal/catch_debugger.hpp
|
||||||
${SOURCES_DIR}/internal/catch_decomposer.hpp
|
${SOURCES_DIR}/internal/catch_decomposer.hpp
|
||||||
${SOURCES_DIR}/internal/catch_default_main.hpp
|
|
||||||
${SOURCES_DIR}/internal/catch_enforce.hpp
|
${SOURCES_DIR}/internal/catch_enforce.hpp
|
||||||
${SOURCES_DIR}/internal/catch_enum_values_registry.hpp
|
${SOURCES_DIR}/internal/catch_enum_values_registry.hpp
|
||||||
${SOURCES_DIR}/internal/catch_errno_guard.hpp
|
${SOURCES_DIR}/internal/catch_errno_guard.hpp
|
||||||
@ -318,6 +317,8 @@ if (CATCH_BUILD_EXAMPLES OR CATCH_BUILD_EXTRA_TESTS)
|
|||||||
${INTERNAL_FILES}
|
${INTERNAL_FILES}
|
||||||
${BENCHMARK_HEADERS}
|
${BENCHMARK_HEADERS}
|
||||||
${BENCHMARK_SOURCES}
|
${BENCHMARK_SOURCES}
|
||||||
|
# Also include main entry point
|
||||||
|
${SOURCES_DIR}/internal/catch_main.cpp
|
||||||
)
|
)
|
||||||
target_include_directories(Catch2_buildall_interface
|
target_include_directories(Catch2_buildall_interface
|
||||||
INTERFACE
|
INTERFACE
|
||||||
|
@ -50,7 +50,6 @@
|
|||||||
#include <catch2/internal/catch_debug_console.hpp>
|
#include <catch2/internal/catch_debug_console.hpp>
|
||||||
#include <catch2/internal/catch_debugger.hpp>
|
#include <catch2/internal/catch_debugger.hpp>
|
||||||
#include <catch2/internal/catch_decomposer.hpp>
|
#include <catch2/internal/catch_decomposer.hpp>
|
||||||
#include <catch2/internal/catch_default_main.hpp>
|
|
||||||
#include <catch2/internal/catch_enforce.hpp>
|
#include <catch2/internal/catch_enforce.hpp>
|
||||||
#include <catch2/internal/catch_enum_values_registry.hpp>
|
#include <catch2/internal/catch_enum_values_registry.hpp>
|
||||||
#include <catch2/internal/catch_errno_guard.hpp>
|
#include <catch2/internal/catch_errno_guard.hpp>
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* Created by Phil on 20/05/2011.
|
|
||||||
* Copyright 2011 Two Blue Cubes Ltd. All rights reserved.
|
|
||||||
*
|
|
||||||
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
||||||
*/
|
|
||||||
#ifndef TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
|
|
||||||
#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
|
|
||||||
|
|
||||||
#include <catch2/catch_session.hpp>
|
|
||||||
#include <catch2/internal/catch_compiler_capabilities.hpp>
|
|
||||||
#include <catch2/internal/catch_leak_detector.hpp>
|
|
||||||
#include <catch2/internal/catch_platform.hpp>
|
|
||||||
|
|
||||||
namespace Catch {
|
|
||||||
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION
|
|
||||||
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS
|
|
||||||
LeakDetector leakDetector;
|
|
||||||
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(CATCH_CONFIG_WCHAR) && defined(CATCH_PLATFORM_WINDOWS) && defined(_UNICODE) && !defined(DO_NOT_USE_WMAIN)
|
|
||||||
// Standard C/C++ Win32 Unicode wmain entry point
|
|
||||||
extern "C" int wmain (int argc, wchar_t * argv[], wchar_t * []) {
|
|
||||||
#else
|
|
||||||
// Standard C/C++ main entry point
|
|
||||||
int main (int argc, char * argv[]) {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// We want to force the linker not to discard the global variable
|
|
||||||
// and its constructor, as it (optionally) registers leak detector
|
|
||||||
(void)&Catch::leakDetector;
|
|
||||||
|
|
||||||
return Catch::Session().run( argc, argv );
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
|
|
@ -3,4 +3,29 @@
|
|||||||
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <catch2/internal/catch_default_main.hpp>
|
#include <catch2/catch_session.hpp>
|
||||||
|
#include <catch2/internal/catch_compiler_capabilities.hpp>
|
||||||
|
#include <catch2/internal/catch_leak_detector.hpp>
|
||||||
|
#include <catch2/internal/catch_platform.hpp>
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION
|
||||||
|
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS
|
||||||
|
LeakDetector leakDetector;
|
||||||
|
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(CATCH_CONFIG_WCHAR) && defined(CATCH_PLATFORM_WINDOWS) && defined(_UNICODE) && !defined(DO_NOT_USE_WMAIN)
|
||||||
|
// Standard C/C++ Win32 Unicode wmain entry point
|
||||||
|
extern "C" int wmain (int argc, wchar_t * argv[], wchar_t * []) {
|
||||||
|
#else
|
||||||
|
// Standard C/C++ main entry point
|
||||||
|
int main (int argc, char * argv[]) {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// We want to force the linker not to discard the global variable
|
||||||
|
// and its constructor, as it (optionally) registers leak detector
|
||||||
|
(void)&Catch::leakDetector;
|
||||||
|
|
||||||
|
return Catch::Session().run( argc, argv );
|
||||||
|
}
|
||||||
|
@ -15,7 +15,7 @@ endif(MSVC) #Temporary workaround
|
|||||||
# define the sources of the self test
|
# define the sources of the self test
|
||||||
# Please keep these ordered alphabetically
|
# Please keep these ordered alphabetically
|
||||||
set(TEST_SOURCES
|
set(TEST_SOURCES
|
||||||
${SELF_TEST_DIR}/TestMain.cpp
|
${SELF_TEST_DIR}/TestRegistrations.cpp
|
||||||
${SELF_TEST_DIR}/IntrospectiveTests/CmdLine.tests.cpp
|
${SELF_TEST_DIR}/IntrospectiveTests/CmdLine.tests.cpp
|
||||||
${SELF_TEST_DIR}/IntrospectiveTests/Details.tests.cpp
|
${SELF_TEST_DIR}/IntrospectiveTests/Details.tests.cpp
|
||||||
${SELF_TEST_DIR}/IntrospectiveTests/GeneratorsImpl.tests.cpp
|
${SELF_TEST_DIR}/IntrospectiveTests/GeneratorsImpl.tests.cpp
|
||||||
@ -72,7 +72,7 @@ set(HEADERS
|
|||||||
include(CTest)
|
include(CTest)
|
||||||
|
|
||||||
add_executable(SelfTest ${TEST_SOURCES})
|
add_executable(SelfTest ${TEST_SOURCES})
|
||||||
target_link_libraries(SelfTest PRIVATE Catch2)
|
target_link_libraries(SelfTest PRIVATE Catch2WithMain)
|
||||||
|
|
||||||
if (CATCH_ENABLE_COVERAGE)
|
if (CATCH_ENABLE_COVERAGE)
|
||||||
set(ENABLE_COVERAGE ON CACHE BOOL "Enable coverage build." FORCE)
|
set(ENABLE_COVERAGE ON CACHE BOOL "Enable coverage build." FORCE)
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#include <catch2/internal/catch_default_main.hpp>
|
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
TEST_CASE("Tests that run") {
|
TEST_CASE("Tests that run") {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#include <catch2/internal/catch_default_main.hpp>
|
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
@ -24,5 +24,3 @@ struct TestListener : Catch::TestEventListenerBase {
|
|||||||
#include <catch2/catch_reporter_registrars.hpp>
|
#include <catch2/catch_reporter_registrars.hpp>
|
||||||
|
|
||||||
CATCH_REGISTER_LISTENER( TestListener )
|
CATCH_REGISTER_LISTENER( TestListener )
|
||||||
|
|
||||||
#include <catch2/internal/catch_default_main.hpp>
|
|
@ -10,12 +10,12 @@ if "%CONFIGURATION%"=="Debug" (
|
|||||||
@REM # coverage needs to build the special helper as well as the main
|
@REM # coverage needs to build the special helper as well as the main
|
||||||
cmake -Htools/misc -Bbuild-misc -A%PLATFORM% || exit /b !ERRORLEVEL!
|
cmake -Htools/misc -Bbuild-misc -A%PLATFORM% || exit /b !ERRORLEVEL!
|
||||||
cmake --build build-misc || exit /b !ERRORLEVEL!
|
cmake --build build-misc || exit /b !ERRORLEVEL!
|
||||||
cmake -H. -BBuild -A%PLATFORM% -DUSE_WMAIN=%wmain% -DMEMORYCHECK_COMMAND=build-misc\Debug\CoverageHelper.exe -DMEMORYCHECK_COMMAND_OPTIONS=--sep-- -DMEMORYCHECK_TYPE=Valgrind -DCATCH_BUILD_EXAMPLES=%examples% -DCATCH_BUILD_EXTRA_TESTS=%examples% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
cmake -H. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DMEMORYCHECK_COMMAND=build-misc\Debug\CoverageHelper.exe -DMEMORYCHECK_COMMAND_OPTIONS=--sep-- -DMEMORYCHECK_TYPE=Valgrind -DCATCH_BUILD_EXAMPLES=%examples% -DCATCH_BUILD_EXTRA_TESTS=%examples% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
||||||
) else (
|
) else (
|
||||||
@REM # We know that coverage is 0
|
@REM # We know that coverage is 0
|
||||||
cmake -H. -BBuild -A%PLATFORM% -DUSE_WMAIN=%wmain% -DCATCH_BUILD_EXAMPLES=%examples% -DCATCH_BUILD_EXTRA_TESTS=%examples% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
cmake -H. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DCATCH_BUILD_EXAMPLES=%examples% -DCATCH_BUILD_EXTRA_TESTS=%examples% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if "%CONFIGURATION%"=="Release" (
|
if "%CONFIGURATION%"=="Release" (
|
||||||
cmake -H. -BBuild -A%PLATFORM% -DUSE_WMAIN=%wmain% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
cmake -H. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user