From 96824f11c6362baa4e061aaefd8eedd67c88bb9c Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 24 Oct 2018 12:03:07 +0800 Subject: Fix -std=c++11 flag --- CMakeLists.txt | 7 ++++++- googletest/cmake/internal_utils.cmake | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 572dac00..e4c09717 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,10 @@ cmake_minimum_required(VERSION 2.8.8) -add_definitions(-std=c++11) + +if (CMAKE_VERSION VERSION_LESS "3.1") + add_definitions(-std=c++11) +else() + set(CMAKE_CXX_STANDARD 11) +endif() if (POLICY CMP0048) cmake_policy(SET CMP0048 NEW) diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake index 98674367..2e6b2393 100644 --- a/googletest/cmake/internal_utils.cmake +++ b/googletest/cmake/internal_utils.cmake @@ -98,6 +98,10 @@ macro(config_compiler_and_linker) set(cxx_exception_flags "-EHsc -D_HAS_EXCEPTIONS=1") set(cxx_no_exception_flags "-EHs-c- -D_HAS_EXCEPTIONS=0") set(cxx_no_rtti_flags "-GR-") + + if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + set(cxx_base_flags "${cxx_base_flags} -Wno-unknown-argument") + endif() elseif (CMAKE_COMPILER_IS_GNUCXX) set(cxx_base_flags "-Wall -Wshadow -Werror") if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0) -- cgit v1.2.3 From f6dadcf1f1727b087ac28fdd98d02356695d6a66 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 24 Oct 2018 12:06:00 +0800 Subject: Revert previous changes --- googletest/cmake/internal_utils.cmake | 4 ---- 1 file changed, 4 deletions(-) diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake index 2e6b2393..98674367 100644 --- a/googletest/cmake/internal_utils.cmake +++ b/googletest/cmake/internal_utils.cmake @@ -98,10 +98,6 @@ macro(config_compiler_and_linker) set(cxx_exception_flags "-EHsc -D_HAS_EXCEPTIONS=1") set(cxx_no_exception_flags "-EHs-c- -D_HAS_EXCEPTIONS=0") set(cxx_no_rtti_flags "-GR-") - - if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") - set(cxx_base_flags "${cxx_base_flags} -Wno-unknown-argument") - endif() elseif (CMAKE_COMPILER_IS_GNUCXX) set(cxx_base_flags "-Wall -Wshadow -Werror") if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0) -- cgit v1.2.3 From 478a518590901cf3da0868ae553c4ed7f7cf54e1 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 24 Oct 2018 12:17:06 +0800 Subject: Disable extensions and force standard --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e4c09717..be14229e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,8 @@ if (CMAKE_VERSION VERSION_LESS "3.1") add_definitions(-std=c++11) else() set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) endif() if (POLICY CMP0048) -- cgit v1.2.3 From 59f90a338bce2376b540ee239cf4e269bf6d68ad Mon Sep 17 00:00:00 2001 From: durandal Date: Tue, 23 Oct 2018 15:31:17 -0400 Subject: Googletest export Honor GTEST_SKIP() in SetUp(). PiperOrigin-RevId: 218387359 --- googletest/src/gtest.cc | 10 ++++++---- googletest/test/gtest_skip_test.cc | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index 4a9c3817..332b3e9b 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -2520,8 +2520,9 @@ void Test::Run() { internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); impl->os_stack_trace_getter()->UponLeavingGTest(); internal::HandleExceptionsInMethodIfSupported(this, &Test::SetUp, "SetUp()"); - // We will run the test only if SetUp() was successful. - if (!HasFatalFailure()) { + // We will run the test only if SetUp() was successful and didn't call + // GTEST_SKIP(). + if (!HasFatalFailure() && !IsSkipped()) { impl->os_stack_trace_getter()->UponLeavingGTest(); internal::HandleExceptionsInMethodIfSupported( this, &Test::TestBody, "the test body"); @@ -2698,9 +2699,10 @@ void TestInfo::Run() { factory_, &internal::TestFactoryBase::CreateTest, "the test fixture's constructor"); - // Runs the test if the constructor didn't generate a fatal failure. + // Runs the test if the constructor didn't generate a fatal failure or invoke + // GTEST_SKIP(). // Note that the object will not be null - if (!Test::HasFatalFailure()) { + if (!Test::HasFatalFailure() && !Test::IsSkipped()) { // This doesn't throw as all user code that can throw are wrapped into // exception handling code. test->Run(); diff --git a/googletest/test/gtest_skip_test.cc b/googletest/test/gtest_skip_test.cc index ee810933..717e105e 100644 --- a/googletest/test/gtest_skip_test.cc +++ b/googletest/test/gtest_skip_test.cc @@ -32,7 +32,24 @@ #include "gtest/gtest.h" +using ::testing::Test; + TEST(SkipTest, DoesSkip) { GTEST_SKIP(); EXPECT_EQ(0, 1); } + +class Fixture : public Test { + protected: + void SetUp() override { + GTEST_SKIP() << "skipping all tests for this fixture"; + } +}; + +TEST_F(Fixture, SkipsOneTest) { + EXPECT_EQ(5, 7); +} + +TEST_F(Fixture, SkipsAnotherTest) { + EXPECT_EQ(99, 100); +} -- cgit v1.2.3 From c45631823c983935d228557b124eff05263b2660 Mon Sep 17 00:00:00 2001 From: Jeff VanDyke Date: Wed, 24 Oct 2018 16:41:14 -0400 Subject: Change CMake googletest download location in docs Change CMAKE_BINARY_DIR to CMAKE_CURRENT_BINARY_DIR Able to use in a subfolder's CMakeLists.txt --- googletest/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/googletest/README.md b/googletest/README.md index 133f6859..626fd7b0 100644 --- a/googletest/README.md +++ b/googletest/README.md @@ -124,8 +124,8 @@ include(ExternalProject) ExternalProject_Add(googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG master - SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src" - BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build" + SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" @@ -140,13 +140,13 @@ Existing build's `CMakeLists.txt`: configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt) execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download ) + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download ) if(result) message(FATAL_ERROR "CMake step for googletest failed: ${result}") endif() execute_process(COMMAND ${CMAKE_COMMAND} --build . RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download ) + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download ) if(result) message(FATAL_ERROR "Build step for googletest failed: ${result}") endif() @@ -157,8 +157,8 @@ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) # Add googletest directly to our build. This defines # the gtest and gtest_main targets. -add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src - ${CMAKE_BINARY_DIR}/googletest-build +add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src + ${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL) # The gtest/gtest_main targets carry header search path -- cgit v1.2.3