Use the verbatim noexcept spec in MOCKED_METHOD

This commit is contained in:
Joshua Cannon
2019-10-07 14:30:10 -05:00
parent 76a560c81c
commit 10c1d8c4fa
2 changed files with 35 additions and 10 deletions

View File

@@ -656,5 +656,26 @@ TEST(MockMethodMockFunctionTest, MockMethodSizeOverhead) {
EXPECT_EQ(sizeof(MockMethodSizes0), sizeof(MockMethodSizes4));
}
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));
// Put commas in the noexcept expression
MOCK_METHOD(void, func7, (), (noexcept(noexcept(1,2,3)), const));
};
TEST(MockMethodMockFunctionTest, NoexceptSpecifierPreserved) {
EXPECT_TRUE(noexcept(MockMethodNoexceptSpecifier{}.func1()));
EXPECT_TRUE(noexcept(MockMethodNoexceptSpecifier{}.func2()));
EXPECT_FALSE(noexcept(MockMethodNoexceptSpecifier{}.func3()));
EXPECT_EQ(noexcept(MockMethodNoexceptSpecifier{}.func4()), noexcept(1+1));
EXPECT_EQ(noexcept(MockMethodNoexceptSpecifier{}.func5()), noexcept(1+1));
EXPECT_EQ(noexcept(MockMethodNoexceptSpecifier{}.func6()), noexcept(1+1));
EXPECT_EQ(noexcept(MockMethodNoexceptSpecifier{}.func7()), noexcept(1,2,3));
}
} // namespace gmock_function_mocker_test
} // namespace testing