From bc996e0817d85c9dcfbf031480d22743aba697b2 Mon Sep 17 00:00:00 2001 From: Joshua Cannon Date: Thu, 10 Oct 2019 08:52:27 -0500 Subject: Made noexcept condition more exciting --- googlemock/test/gmock-function-mocker_test.cc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/googlemock/test/gmock-function-mocker_test.cc b/googlemock/test/gmock-function-mocker_test.cc index f493c72..4889d68 100644 --- a/googlemock/test/gmock-function-mocker_test.cc +++ b/googlemock/test/gmock-function-mocker_test.cc @@ -658,25 +658,29 @@ TEST(MockMethodMockFunctionTest, MockMethodSizeOverhead) { } void hasTwoParams(int, int); +void MaybeThrows(); +void DoesntThrow() noexcept; struct MockMethodNoexceptSpecifier { MOCK_METHOD(void, func1, (), (noexcept)); MOCK_METHOD(void, func2, (), (noexcept(true))); MOCK_METHOD(void, func3, (), (noexcept(false))); - MOCK_METHOD(void, func4, (), (noexcept(noexcept(1+1)))); - MOCK_METHOD(void, func5, (), (const, noexcept(noexcept(1+1)))); - MOCK_METHOD(void, func6, (), (noexcept(noexcept(1+1)), const)); + MOCK_METHOD(void, func4, (), (noexcept(noexcept(MaybeThrows())))); + MOCK_METHOD(void, func5, (), (noexcept(noexcept(DoesntThrow())))); + MOCK_METHOD(void, func6, (), (noexcept(noexcept(DoesntThrow())), const)); + MOCK_METHOD(void, func7, (), (const, noexcept(noexcept(DoesntThrow())))); // Put commas in the noexcept expression - MOCK_METHOD(void, func7, (), (noexcept(noexcept(hasTwoParams(1,2))), const)); + MOCK_METHOD(void, func8, (), (noexcept(noexcept(hasTwoParams(1,2))), const)); }; TEST(MockMethodMockFunctionTest, NoexceptSpecifierPreserved) { EXPECT_TRUE(noexcept(std::declval().func1())); EXPECT_TRUE(noexcept(std::declval().func2())); EXPECT_FALSE(noexcept(std::declval().func3())); - EXPECT_EQ(noexcept(std::declval().func4()), noexcept(1+1)); - EXPECT_EQ(noexcept(std::declval().func5()), noexcept(1+1)); - EXPECT_EQ(noexcept(std::declval().func6()), noexcept(1+1)); - EXPECT_EQ(noexcept(std::declval().func7()), noexcept(hasTwoParams(1,2))); + EXPECT_FALSE(noexcept(std::declval().func4())); + EXPECT_TRUE(noexcept(std::declval().func5())); + EXPECT_TRUE(noexcept(std::declval().func6())); + EXPECT_TRUE(noexcept(std::declval().func7())); + EXPECT_EQ(noexcept(std::declval().func8()), noexcept(hasTwoParams(1,2))); } } // namespace gmock_function_mocker_test -- cgit v0.12